aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/hooks/UseMessageLoad.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/hooks/UseMessageLoad.tsx')
-rw-r--r--frontend/src/hooks/UseMessageLoad.tsx55
1 files changed, 30 insertions, 25 deletions
diff --git a/frontend/src/hooks/UseMessageLoad.tsx b/frontend/src/hooks/UseMessageLoad.tsx
index 228c2b4..4cbd0f7 100644
--- a/frontend/src/hooks/UseMessageLoad.tsx
+++ b/frontend/src/hooks/UseMessageLoad.tsx
@@ -1,35 +1,40 @@
1import React, { useState } from 'react'; 1import React, { useState } from "react";
2import MessageDialogLoad from "@components/MessageDialogLoad"; 2import MessageDialogLoad from "@components/MessageDialogLoad";
3 3
4const useMessageLoad = () => { 4const useMessageLoad = () => {
5 const [isOpen, setIsOpen] = useState(false); 5 const [isOpen, setIsOpen] = useState(false);
6 6
7 const [title, setTitle] = useState<string>(""); 7 const [title, setTitle] = useState<string>("");
8 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(null); 8 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(
9 null
10 );
9 11
10 const messageLoad = (title: string) => { 12 const messageLoad = (title: string) => {
11 setIsOpen(true); 13 setIsOpen(true);
12 setTitle(title); 14 setTitle(title);
13 return new Promise((resolve) => { 15 return new Promise(resolve => {
14 setResolvePromise(() => resolve); 16 setResolvePromise(() => resolve);
15 }); 17 });
16 }; 18 };
17 19
18 const messageLoadClose = () => { 20 const messageLoadClose = () => {
19 setIsOpen(false); 21 setIsOpen(false);
20 if (resolvePromise) { 22 if (resolvePromise) {
21 resolvePromise(); 23 resolvePromise();
22 setResolvePromise(null); 24 setResolvePromise(null);
23 } 25 }
24 }; 26 };
25 27
26 const MessageDialogLoadComponent = isOpen && ( 28 const MessageDialogLoadComponent = isOpen && (
27 <div className="dialog-container"> 29 <div className="dialog-container">
28 <MessageDialogLoad title={title} onClose={messageLoadClose}></MessageDialogLoad> 30 <MessageDialogLoad
29 </div> 31 title={title}
30 ); 32 onClose={messageLoadClose}
33 ></MessageDialogLoad>
34 </div>
35 );
31 36
32 return { messageLoad, messageLoadClose, MessageDialogLoadComponent }; 37 return { messageLoad, messageLoadClose, MessageDialogLoadComponent };
33} 38};
34 39
35export default useMessageLoad; 40export default useMessageLoad;