Make prompt() to return null on cancel

This commit is contained in:
Gregory Schier
2024-10-02 05:54:44 -07:00
parent 89ff25cd54
commit 4160e5b1c4
26 changed files with 436 additions and 108 deletions

View File

@@ -9,24 +9,30 @@ export function useCreateFolder() {
const workspace = useActiveWorkspace();
const prompt = usePrompt();
return useMutation<Folder, unknown, Partial<Pick<Folder, 'name' | 'sortPriority' | 'folderId'>>>({
return useMutation<void, unknown, Partial<Pick<Folder, 'name' | 'sortPriority' | 'folderId'>>>({
mutationKey: ['create_folder'],
mutationFn: async (patch) => {
if (workspace === null) {
throw new Error("Cannot create folder when there's no active workspace");
}
patch.name =
patch.name ||
(await prompt({
if (!patch.name) {
const name = await prompt({
id: 'new-folder',
label: 'Name',
defaultValue: 'Folder',
title: 'New Folder',
confirmText: 'Create',
placeholder: 'Name',
}));
});
if (name == null) {
return;
}
patch.name = name;
}
patch.sortPriority = patch.sortPriority || -Date.now();
return invokeCmd('cmd_create_folder', { workspaceId: workspace.id, ...patch });
await invokeCmd('cmd_create_folder', { workspaceId: workspace.id, ...patch });
},
onSettled: () => trackEvent('folder', 'create'),
});