diff options
Diffstat (limited to 'frontend/src/hooks/UseMessage.tsx')
| -rw-r--r-- | frontend/src/hooks/UseMessage.tsx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/frontend/src/hooks/UseMessage.tsx b/frontend/src/hooks/UseMessage.tsx index 249a3bf..0d2799c 100644 --- a/frontend/src/hooks/UseMessage.tsx +++ b/frontend/src/hooks/UseMessage.tsx | |||
| @@ -3,18 +3,24 @@ import MessageDialog from "../components/MessageDialog"; | |||
| 3 | 3 | ||
| 4 | const useMessage = () => { | 4 | const useMessage = () => { |
| 5 | const [isOpen, setIsOpen] = useState(false); | 5 | const [isOpen, setIsOpen] = useState(false); |
| 6 | |||
| 7 | const [title, setTitle] = useState<string>(""); | 6 | const [title, setTitle] = useState<string>(""); |
| 8 | const [subtitle, setSubtitle] = useState<string>(""); | 7 | const [subtitle, setSubtitle] = useState<string>(""); |
| 8 | const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(null); | ||
| 9 | 9 | ||
| 10 | const message = (title: string, subtitle: string) => { | 10 | const message = (title: string, subtitle: string) => { |
| 11 | setIsOpen(true); | 11 | setIsOpen(true); |
| 12 | setTitle(title); | 12 | setTitle(title); |
| 13 | setSubtitle(subtitle); | 13 | setSubtitle(subtitle); |
| 14 | return new Promise<void>((resolve) => { | ||
| 15 | setResolvePromise(() => resolve); | ||
| 16 | }) | ||
| 14 | }; | 17 | }; |
| 15 | 18 | ||
| 16 | const handleClose = () => { | 19 | const handleClose = () => { |
| 17 | setIsOpen(false); | 20 | setIsOpen(false); |
| 21 | if (resolvePromise) { | ||
| 22 | setResolvePromise(null); | ||
| 23 | } | ||
| 18 | }; | 24 | }; |
| 19 | 25 | ||
| 20 | const MessageDialogComponent = isOpen && ( | 26 | const MessageDialogComponent = isOpen && ( |