1
- import { useMemo } from "react" ;
1
+ import { useCallback , useMemo } from "react" ;
2
2
import { useCoordinator } from "../../hooks/useCoordinator" ;
3
3
import { Button } from "@aragon/ods" ;
4
4
import { PleaseWaitSpinner } from "@/components/please-wait" ;
5
5
import { If } from "@/components/if" ;
6
+ import { useRouter } from "next/router" ;
6
7
7
8
interface IFinalizeActionProps {
8
9
pollId : number ;
9
10
}
10
11
11
12
export const FinalizeAction : React . FC < IFinalizeActionProps > = ( { pollId } ) => {
13
+ const router = useRouter ( ) ;
12
14
const { finalizeStatus, finalizeProposal } = useCoordinator ( ) ;
13
15
14
16
const finalizationMessage = useMemo ( ( ) => {
@@ -28,13 +30,18 @@ export const FinalizeAction: React.FC<IFinalizeActionProps> = ({ pollId }) => {
28
30
}
29
31
} , [ finalizeStatus ] ) ;
30
32
33
+ const onClickFinalize = useCallback ( async ( ) => {
34
+ await finalizeProposal ( pollId ) ;
35
+ router . reload ( ) ;
36
+ } , [ finalizeProposal , pollId , router ] ) ;
37
+
31
38
return (
32
39
< div className = "overflow-hidden rounded-xl bg-neutral-0 pb-2 shadow-neutral" >
33
40
< If condition = { finalizeStatus !== "submitted" } >
34
41
< div className = "flex flex-col gap-y-2 px-4 py-4 md:gap-y-3 md:px-6 md:py-6" >
35
42
< div className = "flex justify-between gap-x-2 gap-y-2" >
36
43
< p className = "text-xl leading-tight text-neutral-800 md:text-2xl" > Finalize Poll</ p >
37
- < Button size = "md" disabled = { finalizeStatus !== "notStarted" } onClick = { ( ) => finalizeProposal ( pollId ) } >
44
+ < Button size = "md" disabled = { finalizeStatus !== "notStarted" } onClick = { onClickFinalize } >
38
45
Finalize
39
46
</ Button >
40
47
</ div >
0 commit comments