aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/hooks/UseMessageLoad.tsx
diff options
context:
space:
mode:
authorWolfboy248 <georgejvindkarlsen@gmail.com>2024-10-29 11:45:00 +0100
committerWolfboy248 <georgejvindkarlsen@gmail.com>2024-10-29 11:45:00 +0100
commit4d842995f4067058b21729aab6139cd388c36353 (patch)
tree31fc780b4c1981a72f8dd67c6c116b051bee404d /frontend/src/hooks/UseMessageLoad.tsx
parentrefactor: upload run dialog, useMessage update, added loader spinner (diff)
downloadlphub-4d842995f4067058b21729aab6139cd388c36353.tar.gz
lphub-4d842995f4067058b21729aab6139cd388c36353.tar.bz2
lphub-4d842995f4067058b21729aab6139cd388c36353.zip
refactor: loader dialog, uploadrundialog update, touchups
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;