MCPcopy
hub / github.com/marimo-team/marimo / useFileState

Function useFileState

frontend/src/components/chat/chat-utils.ts:193–219  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

191}
192
193export function useFileState() {
194 const [files, setFiles] = useState<File[]>([]);
195
196 const addFiles = useEvent((newFiles: File[]) => {
197 if (newFiles.length === 0) {
198 return;
199 }
200
201 const totalSize = newFiles.reduce((size, file) => size + file.size, 0);
202 if (totalSize > MAX_ATTACHMENT_SIZE) {
203 toast({
204 title: "File size exceeded",
205 description: "Attachments must be under 50 MB",
206 variant: "danger",
207 });
208 return;
209 }
210
211 setFiles((prev) => [...prev, ...newFiles]);
212 });
213
214 const clearFiles = () => setFiles([]);
215 const removeFile = (fileToRemove: File) =>
216 setFiles((prev) => prev.filter((f) => f !== fileToRemove));
217
218 return { files, addFiles, clearFiles, removeFile };
219}

Callers 4

ChatPanelBodyFunction · 0.90
AgentPanelFunction · 0.90
AddCellWithAIFunction · 0.90

Calls 2

toastFunction · 0.90
reduceMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…