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.tsx35
1 files changed, 35 insertions, 0 deletions
diff --git a/frontend/src/hooks/UseMessageLoad.tsx b/frontend/src/hooks/UseMessageLoad.tsx
new file mode 100644
index 0000000..defd2b3
--- /dev/null
+++ b/frontend/src/hooks/UseMessageLoad.tsx
@@ -0,0 +1,35 @@
1import React, { useState } from 'react';
2import MessageDialogLoad from "../components/MessageDialogLoad";
3
4const useMessageLoad = () => {
5 const [isOpen, setIsOpen] = useState(false);
6
7 const [title, setTitle] = useState<string>("");
8 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(null);
9
10 const messageLoad = (title: string) => {
11 setIsOpen(true);
12 setTitle(title);
13 return new Promise((resolve) => {
14 setResolvePromise(() => resolve);
15 });
16 };
17
18 const messageLoadClose = () => {
19 setIsOpen(false);
20 if (resolvePromise) {
21 resolvePromise();
22 setResolvePromise(null);
23 }
24 };
25
26 const MessageDialogLoadComponent = isOpen && (
27 <div className="dialog-container">
28 <MessageDialogLoad title={title} onClose={messageLoadClose}></MessageDialogLoad>
29 </div>
30 );
31
32 return { messageLoad, messageLoadClose, MessageDialogLoadComponent };
33}
34
35export default useMessageLoad;