diff --git a/frontend/src/lib/label/framework/ui/CreateLabelDialog.svelte b/frontend/src/lib/label/framework/ui/CreateLabelDialog.svelte index dc455dc..e1190bd 100644 --- a/frontend/src/lib/label/framework/ui/CreateLabelDialog.svelte +++ b/frontend/src/lib/label/framework/ui/CreateLabelDialog.svelte @@ -30,7 +30,7 @@ onSubmit: createLabel, }: { disabled: boolean; - onSubmit: (params: FormParams) => Promise; + onSubmit: (params: FormParams) => Promise; } = $props(); let open = $state(false); @@ -62,7 +62,11 @@ return; } - await createLabel(formData); + const isSuccess = await createLabel(formData); + if (!isSuccess) { + return; + } + formData = { name: '', color: '#dddddd', diff --git a/frontend/src/lib/label/framework/ui/LabelManagementPage.svelte b/frontend/src/lib/label/framework/ui/LabelManagementPage.svelte index a2f8926..4920a1a 100644 --- a/frontend/src/lib/label/framework/ui/LabelManagementPage.svelte +++ b/frontend/src/lib/label/framework/ui/LabelManagementPage.svelte @@ -23,7 +23,7 @@ const labelsListedState = $derived($labelsListedStore); const { trigger: loadLabels } = labelsListedStore; - async function onCreateLabelDialogSubmit(params: CreateLabelDialogFormParams) { + async function onCreateLabelDialogSubmit(params: CreateLabelDialogFormParams): Promise { const colorViewModel = ColorViewModel.fromHex(params.color); const color = colorViewModel.toEntity(); @@ -39,7 +39,10 @@ toast.error('Failed to create label', { description: state.error.message, }); + return false; } + + return true; } onMount(() => loadLabels()); diff --git a/frontend/src/lib/post/framework/ui/CreatePostDialog.svelte b/frontend/src/lib/post/framework/ui/CreatePostDialog.svelte index c5f3c05..f51a845 100644 --- a/frontend/src/lib/post/framework/ui/CreatePostDialog.svelte +++ b/frontend/src/lib/post/framework/ui/CreatePostDialog.svelte @@ -30,7 +30,7 @@ onSubmit: createPost, }: { disabled: boolean; - onSubmit: (params: FormParams) => Promise; + onSubmit: (params: FormParams) => Promise; } = $props(); let open = $state(false); @@ -50,7 +50,11 @@ return; } - await createPost(formData); + const isSuccess = await createPost(formData); + if (!isSuccess) { + return; + } + formData = { semanticId: '', title: '' }; open = false; } diff --git a/frontend/src/lib/post/framework/ui/PostManagementPage.svelte b/frontend/src/lib/post/framework/ui/PostManagementPage.svelte index 554b96f..d1a0c3b 100644 --- a/frontend/src/lib/post/framework/ui/PostManagementPage.svelte +++ b/frontend/src/lib/post/framework/ui/PostManagementPage.svelte @@ -22,7 +22,7 @@ const postsListedState = $derived($postsListedStore); const { trigger: loadPosts } = postsListedStore; - async function onCreatePostDialogSubmit(params: CreatePostDialogFormParams) { + async function onCreatePostDialogSubmit(params: CreatePostDialogFormParams): Promise { const state = await createPost(params); if (state.isSuccess()) { @@ -32,7 +32,10 @@ toast.error('Failed to create post', { description: state.error.message, }); + return false; } + + return true; } onMount(() => loadPosts({ showUnpublished: true }));