Skip to content

Commit e2901b0

Browse files
committed
fix: close form on successful proposal submission
1 parent cd75179 commit e2901b0

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/features/voting/ProposalFormButton.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export default function AddProposalButton({
5555
}) {
5656
const session = useSession();
5757
const [loading, setLoading] = useState(false);
58+
const [open, setOpen] = useState(false);
5859

5960
const form = useForm<z.infer<typeof formSchema>>({
6061
resolver: zodResolver(formSchema),
@@ -92,15 +93,19 @@ export default function AddProposalButton({
9293
type: undefined,
9394
isDraft: true,
9495
});
96+
97+
// Stay open after draft submit, in case the user wants to create another
98+
if (!isDraft) setOpen(false);
99+
95100
return isDraft ? 'Draft Saved' : 'Proposal Submitted!';
96-
}, [form]);
101+
}, [form, setOpen]);
97102

98103
const error = useCallback(
99104
(err: unknown) => {
100105
form.reset({ ...form.getValues(), isDraft: true });
101106

102107
return err instanceof TypeError ?
103-
new ProposalFormFetchError().render()
108+
new ProposalFormFetchError().render()
104109
: new ProposalFormError(err).render();
105110
},
106111
[form],
@@ -119,7 +124,7 @@ export default function AddProposalButton({
119124
);
120125

121126
return (
122-
<Dialog>
127+
<Dialog open={open} onOpenChange={setOpen}>
123128
<ProtectedTrigger type="dialog">{renderTrigger()}</ProtectedTrigger>
124129

125130
<DialogContent>

0 commit comments

Comments
 (0)