Download client/src/hooks/Files/useUpdateFiles.ts from Zhitomir/chat: direct link, hf CLI and curl.
- Browser
- Download file 1.98 kB
-
https://huggingface.co/spaces/Zhitomir/chat/resolve/main/client/src/hooks/Files/useUpdateFiles.ts
- Command line
-
hf download hf://spaces/Zhitomir/chat/client/src/hooks/Files/useUpdateFiles.ts
-
curl -L -o useUpdateFiles.ts https://huggingface.co/spaces/Zhitomir/chat/resolve/main/client/src/hooks/Files/useUpdateFiles.ts
1.98 kB
| import type { ExtendedFile, FileSetter } from '~/common'; | |
| import useSetFilesToDelete from './useSetFilesToDelete'; | |
| export default function useUpdateFiles(setFiles: FileSetter) { | |
| const setFilesToDelete = useSetFilesToDelete(); | |
| const addFile = (newFile: ExtendedFile) => { | |
| setFiles((currentFiles) => { | |
| const updatedFiles = new Map(currentFiles); | |
| updatedFiles.set(newFile.file_id, newFile); | |
| return updatedFiles; | |
| }); | |
| }; | |
| const replaceFile = (newFile: ExtendedFile) => { | |
| setFiles((currentFiles) => { | |
| const updatedFiles = new Map(currentFiles); | |
| updatedFiles.set(newFile.file_id, newFile); | |
| return updatedFiles; | |
| }); | |
| }; | |
| const updateFileById = ( | |
| fileId: string, | |
| updates: Partial<ExtendedFile>, | |
| isAssistantFile?: boolean, | |
| ) => { | |
| setFiles((currentFiles) => { | |
| if (!currentFiles.has(fileId)) { | |
| console.warn(`File with id ${fileId} not found.`); | |
| return currentFiles; | |
| } | |
| const updatedFiles = new Map(currentFiles); | |
| const currentFile = updatedFiles.get(fileId); | |
| if (!currentFile) { | |
| console.warn(`File with id ${fileId} not found.`); | |
| return currentFiles; | |
| } | |
| updatedFiles.set(fileId, { ...currentFile, ...updates }); | |
| if (updates['filepath'] && updates['progress'] !== 1 && !isAssistantFile) { | |
| const files = Object.fromEntries(updatedFiles); | |
| setFilesToDelete(files); | |
| } | |
| return updatedFiles; | |
| }); | |
| }; | |
| const deleteFileById = (fileId: string) => { | |
| setFiles((currentFiles) => { | |
| const updatedFiles = new Map(currentFiles); | |
| if (updatedFiles.has(fileId)) { | |
| updatedFiles.delete(fileId); | |
| } else { | |
| console.warn(`File with id ${fileId} not found.`); | |
| } | |
| const files = Object.fromEntries(updatedFiles); | |
| setFilesToDelete(files); | |
| return updatedFiles; | |
| }); | |
| }; | |
| return { | |
| addFile, | |
| replaceFile, | |
| updateFileById, | |
| deleteFileById, | |
| }; | |
| } | |