MCPcopy Index your code
hub / github.com/simstudioai/sim / useDeleteWorkspaceFile

Function useDeleteWorkspaceFile

apps/sim/hooks/queries/workspace-files.ts:528–575  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

526}
527
528export function useDeleteWorkspaceFile() {
529 const queryClient = useQueryClient()
530
531 return useMutation({
532 mutationFn: async ({ workspaceId, fileId }: DeleteFileParams) =>
533 requestJson(deleteWorkspaceFileContract, {
534 params: { id: workspaceId, fileId },
535 }),
536 onMutate: async ({ workspaceId, fileId }) => {
537 await queryClient.cancelQueries({ queryKey: workspaceFilesKeys.workspaceLists(workspaceId) })
538
539 const previousFiles = queryClient.getQueryData<WorkspaceFileRecord[]>(
540 workspaceFilesKeys.list(workspaceId, 'active')
541 )
542
543 if (previousFiles) {
544 queryClient.setQueryData<WorkspaceFileRecord[]>(
545 workspaceFilesKeys.list(workspaceId, 'active'),
546 previousFiles.filter((f) => f.id !== fileId)
547 )
548 }
549
550 return { previousFiles }
551 },
552 onError: (_err, variables, context) => {
553 if (context?.previousFiles) {
554 queryClient.setQueryData(
555 workspaceFilesKeys.list(variables.workspaceId, 'active'),
556 context.previousFiles
557 )
558 }
559 logger.error('Failed to delete file')
560 toast.error(toError(_err).message)
561 },
562 onSuccess: () => {
563 toast.success('File moved to trash')
564 },
565 onSettled: (_data, _error, variables) => {
566 queryClient.invalidateQueries({
567 queryKey: workspaceFilesKeys.workspaceLists(variables.workspaceId),
568 })
569 queryClient.removeQueries({
570 queryKey: workspaceFilesKeys.contentFile(variables.workspaceId, variables.fileId),
571 })
572 queryClient.invalidateQueries({ queryKey: workspaceFilesKeys.storageInfo() })
573 },
574 })
575}
576
577export function useRestoreWorkspaceFile() {
578 const queryClient = useQueryClient()

Callers 1

FilesFunction · 0.90

Calls 3

requestJsonFunction · 0.90
toErrorFunction · 0.90
errorMethod · 0.80

Tested by

no test coverage detected