@vuu-ui/vuu-ui-controls 4.0.0-alpha.2 → 4.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,147 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Dialog, DialogActions, DialogCloseButton, DialogContent, DialogHeader } from "@salt-ds/core";
3
- import { createContext, useCallback, useContext, useMemo, useState } from "react";
4
- import { Prompt } from "../prompt/Prompt.js";
5
- const useDialogHost = ()=>{
6
- const [dialogState, setDialogState] = useState();
7
- const [promptState, setPromptState] = useState();
8
- const closePrompt = useCallback(()=>{
9
- setPromptState(void 0);
10
- }, []);
11
- const closeDialog = useCallback(()=>{
12
- setDialogState(void 0);
13
- }, []);
14
- const handleOpenChange = useCallback((open)=>{
15
- if (true !== open) closeDialog();
16
- }, [
17
- closeDialog
18
- ]);
19
- const dialog = dialogState ? /*#__PURE__*/ jsxs(Dialog, {
20
- open: true,
21
- onOpenChange: handleOpenChange,
22
- children: [
23
- /*#__PURE__*/ jsx(DialogHeader, {
24
- header: dialogState.title
25
- }),
26
- /*#__PURE__*/ jsx(DialogContent, {
27
- children: dialogState.content
28
- }),
29
- true !== dialogState.hideCloseButton ? /*#__PURE__*/ jsx(DialogCloseButton, {
30
- "data-embedded": true,
31
- "data-icon": "close",
32
- onClick: closeDialog
33
- }) : null,
34
- dialogState.actions ? /*#__PURE__*/ jsx(DialogActions, {
35
- children: dialogState.actions
36
- }) : null
37
- ]
38
- }) : null;
39
- const handleOpenChangePrompt = useCallback((open)=>{
40
- if (true !== open) closePrompt();
41
- promptState?.promptProps.onOpenChange?.(open);
42
- }, [
43
- closePrompt,
44
- promptState
45
- ]);
46
- const prompt = promptState ? /*#__PURE__*/ jsx(Prompt, {
47
- ...promptState.promptProps,
48
- onClose: closePrompt,
49
- onOpenChange: handleOpenChangePrompt,
50
- open: true,
51
- children: promptState.content
52
- }) : null;
53
- return {
54
- dialog,
55
- prompt,
56
- setDialogState,
57
- setPromptState
58
- };
59
- };
60
- const defaultShowDialog = ()=>{
61
- console.warn("No DialogProvider in place");
62
- };
63
- const defaultCloseDialog = ()=>{
64
- console.warn("No DialogProvider in place");
65
- };
66
- const defaultShowPrompt = ()=>{
67
- console.warn("No DialogProvider in place");
68
- };
69
- const defaultClosePrompt = ()=>{
70
- console.warn("No DialogProvider in place");
71
- };
72
- class DialogContextObject {
73
- showDialog = defaultShowDialog;
74
- closeDialog = defaultCloseDialog;
75
- showPrompt = defaultShowPrompt;
76
- closePrompt = defaultClosePrompt;
77
- setDispatchers = (showDialog, closeDialog, showPrompt, closePrompt)=>{
78
- this.showDialog = showDialog;
79
- this.closeDialog = closeDialog;
80
- this.showPrompt = showPrompt;
81
- this.closePrompt = closePrompt;
82
- };
83
- }
84
- const DialogContext = /*#__PURE__*/ createContext(new DialogContextObject());
85
- const DialogHost = ({ context })=>{
86
- const { dialog, setDialogState, prompt, setPromptState } = useDialogHost();
87
- const showDialog = useCallback((dialogContent, title, actionButtons, hideCloseButton)=>{
88
- setDialogState({
89
- actions: actionButtons,
90
- content: dialogContent,
91
- title,
92
- hideCloseButton
93
- });
94
- }, [
95
- setDialogState
96
- ]);
97
- const closeDialog = useCallback(()=>{
98
- setDialogState(void 0);
99
- }, [
100
- setDialogState
101
- ]);
102
- const showPrompt = useCallback((content, promptProps)=>{
103
- setPromptState({
104
- content,
105
- promptProps
106
- });
107
- }, [
108
- setPromptState
109
- ]);
110
- const closePrompt = useCallback(()=>{
111
- setPromptState(void 0);
112
- }, [
113
- setPromptState
114
- ]);
115
- useMemo(()=>{
116
- context.setDispatchers(showDialog, closeDialog, showPrompt, closePrompt);
117
- }, [
118
- closeDialog,
119
- closePrompt,
120
- context,
121
- showDialog,
122
- showPrompt
123
- ]);
124
- return dialog ?? prompt;
125
- };
126
- const ModalProvider = ({ children })=>{
127
- const context = useContext(DialogContext);
128
- return /*#__PURE__*/ jsxs(DialogContext.Provider, {
129
- value: context,
130
- children: [
131
- /*#__PURE__*/ jsx(DialogHost, {
132
- context: context
133
- }),
134
- children
135
- ]
136
- });
137
- };
138
- const useModal = ()=>{
139
- const { closeDialog, closePrompt, showDialog, showPrompt } = useContext(DialogContext);
140
- return {
141
- showDialog,
142
- closeDialog,
143
- showPrompt,
144
- closePrompt
145
- };
146
- };
147
- export { ModalProvider, useModal };