@react-spectrum/dialog 3.9.7 → 3.10.0
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.
- package/dist/import.mjs +5 -7
- package/dist/main.js +9 -11
- package/dist/main.js.map +1 -1
- package/dist/module.js +5 -7
- package/dist/module.js.map +1 -1
- package/dist/types/src/index.d.ts +8 -0
- package/package.json +12 -43
- package/src/index.ts +8 -7
- package/dist/AlertDialog.main.js +0 -97
- package/dist/AlertDialog.main.js.map +0 -1
- package/dist/AlertDialog.mjs +0 -92
- package/dist/AlertDialog.module.js +0 -92
- package/dist/AlertDialog.module.js.map +0 -1
- package/dist/Dialog.main.js +0 -131
- package/dist/Dialog.main.js.map +0 -1
- package/dist/Dialog.mjs +0 -126
- package/dist/Dialog.module.js +0 -126
- package/dist/Dialog.module.js.map +0 -1
- package/dist/DialogContainer.main.js +0 -63
- package/dist/DialogContainer.main.js.map +0 -1
- package/dist/DialogContainer.mjs +0 -54
- package/dist/DialogContainer.module.js +0 -54
- package/dist/DialogContainer.module.js.map +0 -1
- package/dist/DialogTrigger.main.js +0 -161
- package/dist/DialogTrigger.main.js.map +0 -1
- package/dist/DialogTrigger.mjs +0 -152
- package/dist/DialogTrigger.module.js +0 -152
- package/dist/DialogTrigger.module.js.map +0 -1
- package/dist/ar-AE.main.js +0 -7
- package/dist/ar-AE.main.js.map +0 -1
- package/dist/ar-AE.mjs +0 -9
- package/dist/ar-AE.module.js +0 -9
- package/dist/ar-AE.module.js.map +0 -1
- package/dist/bg-BG.main.js +0 -7
- package/dist/bg-BG.main.js.map +0 -1
- package/dist/bg-BG.mjs +0 -9
- package/dist/bg-BG.module.js +0 -9
- package/dist/bg-BG.module.js.map +0 -1
- package/dist/context.main.js +0 -27
- package/dist/context.main.js.map +0 -1
- package/dist/context.mjs +0 -18
- package/dist/context.module.js +0 -18
- package/dist/context.module.js.map +0 -1
- package/dist/cs-CZ.main.js +0 -7
- package/dist/cs-CZ.main.js.map +0 -1
- package/dist/cs-CZ.mjs +0 -9
- package/dist/cs-CZ.module.js +0 -9
- package/dist/cs-CZ.module.js.map +0 -1
- package/dist/da-DK.main.js +0 -7
- package/dist/da-DK.main.js.map +0 -1
- package/dist/da-DK.mjs +0 -9
- package/dist/da-DK.module.js +0 -9
- package/dist/da-DK.module.js.map +0 -1
- package/dist/de-DE.main.js +0 -7
- package/dist/de-DE.main.js.map +0 -1
- package/dist/de-DE.mjs +0 -9
- package/dist/de-DE.module.js +0 -9
- package/dist/de-DE.module.js.map +0 -1
- package/dist/dialog.1f91a33b.css +0 -519
- package/dist/dialog.1f91a33b.css.map +0 -1
- package/dist/dialog_vars_css.main.js +0 -161
- package/dist/dialog_vars_css.main.js.map +0 -1
- package/dist/dialog_vars_css.mjs +0 -163
- package/dist/dialog_vars_css.module.js +0 -163
- package/dist/dialog_vars_css.module.js.map +0 -1
- package/dist/el-GR.main.js +0 -7
- package/dist/el-GR.main.js.map +0 -1
- package/dist/el-GR.mjs +0 -9
- package/dist/el-GR.module.js +0 -9
- package/dist/el-GR.module.js.map +0 -1
- package/dist/en-US.main.js +0 -7
- package/dist/en-US.main.js.map +0 -1
- package/dist/en-US.mjs +0 -9
- package/dist/en-US.module.js +0 -9
- package/dist/en-US.module.js.map +0 -1
- package/dist/es-ES.main.js +0 -7
- package/dist/es-ES.main.js.map +0 -1
- package/dist/es-ES.mjs +0 -9
- package/dist/es-ES.module.js +0 -9
- package/dist/es-ES.module.js.map +0 -1
- package/dist/et-EE.main.js +0 -7
- package/dist/et-EE.main.js.map +0 -1
- package/dist/et-EE.mjs +0 -9
- package/dist/et-EE.module.js +0 -9
- package/dist/et-EE.module.js.map +0 -1
- package/dist/fi-FI.main.js +0 -7
- package/dist/fi-FI.main.js.map +0 -1
- package/dist/fi-FI.mjs +0 -9
- package/dist/fi-FI.module.js +0 -9
- package/dist/fi-FI.module.js.map +0 -1
- package/dist/fr-FR.main.js +0 -7
- package/dist/fr-FR.main.js.map +0 -1
- package/dist/fr-FR.mjs +0 -9
- package/dist/fr-FR.module.js +0 -9
- package/dist/fr-FR.module.js.map +0 -1
- package/dist/he-IL.main.js +0 -7
- package/dist/he-IL.main.js.map +0 -1
- package/dist/he-IL.mjs +0 -9
- package/dist/he-IL.module.js +0 -9
- package/dist/he-IL.module.js.map +0 -1
- package/dist/hr-HR.main.js +0 -7
- package/dist/hr-HR.main.js.map +0 -1
- package/dist/hr-HR.mjs +0 -9
- package/dist/hr-HR.module.js +0 -9
- package/dist/hr-HR.module.js.map +0 -1
- package/dist/hu-HU.main.js +0 -7
- package/dist/hu-HU.main.js.map +0 -1
- package/dist/hu-HU.mjs +0 -9
- package/dist/hu-HU.module.js +0 -9
- package/dist/hu-HU.module.js.map +0 -1
- package/dist/intlStrings.main.js +0 -108
- package/dist/intlStrings.main.js.map +0 -1
- package/dist/intlStrings.mjs +0 -110
- package/dist/intlStrings.module.js +0 -110
- package/dist/intlStrings.module.js.map +0 -1
- package/dist/it-IT.main.js +0 -7
- package/dist/it-IT.main.js.map +0 -1
- package/dist/it-IT.mjs +0 -9
- package/dist/it-IT.module.js +0 -9
- package/dist/it-IT.module.js.map +0 -1
- package/dist/ja-JP.main.js +0 -7
- package/dist/ja-JP.main.js.map +0 -1
- package/dist/ja-JP.mjs +0 -9
- package/dist/ja-JP.module.js +0 -9
- package/dist/ja-JP.module.js.map +0 -1
- package/dist/ko-KR.main.js +0 -7
- package/dist/ko-KR.main.js.map +0 -1
- package/dist/ko-KR.mjs +0 -9
- package/dist/ko-KR.module.js +0 -9
- package/dist/ko-KR.module.js.map +0 -1
- package/dist/lt-LT.main.js +0 -7
- package/dist/lt-LT.main.js.map +0 -1
- package/dist/lt-LT.mjs +0 -9
- package/dist/lt-LT.module.js +0 -9
- package/dist/lt-LT.module.js.map +0 -1
- package/dist/lv-LV.main.js +0 -7
- package/dist/lv-LV.main.js.map +0 -1
- package/dist/lv-LV.mjs +0 -9
- package/dist/lv-LV.module.js +0 -9
- package/dist/lv-LV.module.js.map +0 -1
- package/dist/nb-NO.main.js +0 -7
- package/dist/nb-NO.main.js.map +0 -1
- package/dist/nb-NO.mjs +0 -9
- package/dist/nb-NO.module.js +0 -9
- package/dist/nb-NO.module.js.map +0 -1
- package/dist/nl-NL.main.js +0 -7
- package/dist/nl-NL.main.js.map +0 -1
- package/dist/nl-NL.mjs +0 -9
- package/dist/nl-NL.module.js +0 -9
- package/dist/nl-NL.module.js.map +0 -1
- package/dist/pl-PL.main.js +0 -7
- package/dist/pl-PL.main.js.map +0 -1
- package/dist/pl-PL.mjs +0 -9
- package/dist/pl-PL.module.js +0 -9
- package/dist/pl-PL.module.js.map +0 -1
- package/dist/pt-BR.main.js +0 -7
- package/dist/pt-BR.main.js.map +0 -1
- package/dist/pt-BR.mjs +0 -9
- package/dist/pt-BR.module.js +0 -9
- package/dist/pt-BR.module.js.map +0 -1
- package/dist/pt-PT.main.js +0 -7
- package/dist/pt-PT.main.js.map +0 -1
- package/dist/pt-PT.mjs +0 -9
- package/dist/pt-PT.module.js +0 -9
- package/dist/pt-PT.module.js.map +0 -1
- package/dist/ro-RO.main.js +0 -7
- package/dist/ro-RO.main.js.map +0 -1
- package/dist/ro-RO.mjs +0 -9
- package/dist/ro-RO.module.js +0 -9
- package/dist/ro-RO.module.js.map +0 -1
- package/dist/ru-RU.main.js +0 -7
- package/dist/ru-RU.main.js.map +0 -1
- package/dist/ru-RU.mjs +0 -9
- package/dist/ru-RU.module.js +0 -9
- package/dist/ru-RU.module.js.map +0 -1
- package/dist/sk-SK.main.js +0 -7
- package/dist/sk-SK.main.js.map +0 -1
- package/dist/sk-SK.mjs +0 -9
- package/dist/sk-SK.module.js +0 -9
- package/dist/sk-SK.module.js.map +0 -1
- package/dist/sl-SI.main.js +0 -7
- package/dist/sl-SI.main.js.map +0 -1
- package/dist/sl-SI.mjs +0 -9
- package/dist/sl-SI.module.js +0 -9
- package/dist/sl-SI.module.js.map +0 -1
- package/dist/sr-SP.main.js +0 -7
- package/dist/sr-SP.main.js.map +0 -1
- package/dist/sr-SP.mjs +0 -9
- package/dist/sr-SP.module.js +0 -9
- package/dist/sr-SP.module.js.map +0 -1
- package/dist/sv-SE.main.js +0 -7
- package/dist/sv-SE.main.js.map +0 -1
- package/dist/sv-SE.mjs +0 -9
- package/dist/sv-SE.module.js +0 -9
- package/dist/sv-SE.module.js.map +0 -1
- package/dist/tr-TR.main.js +0 -7
- package/dist/tr-TR.main.js.map +0 -1
- package/dist/tr-TR.mjs +0 -9
- package/dist/tr-TR.module.js +0 -9
- package/dist/tr-TR.module.js.map +0 -1
- package/dist/types.d.ts +0 -32
- package/dist/types.d.ts.map +0 -1
- package/dist/uk-UA.main.js +0 -7
- package/dist/uk-UA.main.js.map +0 -1
- package/dist/uk-UA.mjs +0 -9
- package/dist/uk-UA.module.js +0 -9
- package/dist/uk-UA.module.js.map +0 -1
- package/dist/useDialogContainer.main.js +0 -34
- package/dist/useDialogContainer.main.js.map +0 -1
- package/dist/useDialogContainer.mjs +0 -29
- package/dist/useDialogContainer.module.js +0 -29
- package/dist/useDialogContainer.module.js.map +0 -1
- package/dist/zh-CN.main.js +0 -7
- package/dist/zh-CN.main.js.map +0 -1
- package/dist/zh-CN.mjs +0 -9
- package/dist/zh-CN.module.js +0 -9
- package/dist/zh-CN.module.js.map +0 -1
- package/dist/zh-TW.main.js +0 -7
- package/dist/zh-TW.main.js.map +0 -1
- package/dist/zh-TW.mjs +0 -9
- package/dist/zh-TW.module.js +0 -9
- package/dist/zh-TW.module.js.map +0 -1
- package/src/AlertDialog.tsx +0 -115
- package/src/Dialog.tsx +0 -118
- package/src/DialogContainer.tsx +0 -79
- package/src/DialogTrigger.tsx +0 -207
- package/src/context.ts +0 -21
- package/src/useDialogContainer.ts +0 -33
package/src/DialogTrigger.tsx
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
-
*
|
|
7
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
-
* governing permissions and limitations under the License.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {DialogContext} from './context';
|
|
14
|
-
import {Modal, Popover, Tray} from '@react-spectrum/overlays';
|
|
15
|
-
import {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';
|
|
16
|
-
import {PressResponder} from '@react-aria/interactions';
|
|
17
|
-
import React, {Fragment, JSX, ReactElement, useEffect, useRef} from 'react';
|
|
18
|
-
import {SpectrumDialogClose, SpectrumDialogProps, SpectrumDialogTriggerProps} from '@react-types/dialog';
|
|
19
|
-
import {useIsMobileDevice} from '@react-spectrum/utils';
|
|
20
|
-
import {useOverlayTrigger} from '@react-aria/overlays';
|
|
21
|
-
|
|
22
|
-
function DialogTrigger(props: SpectrumDialogTriggerProps) {
|
|
23
|
-
let {
|
|
24
|
-
children,
|
|
25
|
-
type = 'modal',
|
|
26
|
-
mobileType = type === 'popover' ? 'modal' : type,
|
|
27
|
-
hideArrow,
|
|
28
|
-
targetRef,
|
|
29
|
-
isDismissable,
|
|
30
|
-
isKeyboardDismissDisabled,
|
|
31
|
-
...positionProps
|
|
32
|
-
} = props;
|
|
33
|
-
if (!Array.isArray(children) || children.length > 2) {
|
|
34
|
-
throw new Error('DialogTrigger must have exactly 2 children');
|
|
35
|
-
}
|
|
36
|
-
// if a function is passed as the second child, it won't appear in toArray
|
|
37
|
-
let [trigger, content] = children as [ReactElement, SpectrumDialogClose];
|
|
38
|
-
|
|
39
|
-
// On small devices, show a modal or tray instead of a popover.
|
|
40
|
-
let isMobile = useIsMobileDevice();
|
|
41
|
-
if (isMobile) {
|
|
42
|
-
// handle cases where desktop popovers need a close button for the mobile modal view
|
|
43
|
-
if (type !== 'modal' && mobileType === 'modal') {
|
|
44
|
-
isDismissable = true;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
type = mobileType;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
let state = useOverlayTriggerState(props);
|
|
51
|
-
let wasOpen = useRef(false);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
wasOpen.current = state.isOpen;
|
|
54
|
-
}, [state.isOpen]);
|
|
55
|
-
|
|
56
|
-
let isExiting = useRef(false);
|
|
57
|
-
let onExiting = () => isExiting.current = true;
|
|
58
|
-
let onExited = () => isExiting.current = false;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
return () => {
|
|
63
|
-
if ((wasOpen.current || isExiting.current) && type !== 'popover' && type !== 'tray' && process.env.NODE_ENV !== 'production') {
|
|
64
|
-
console.warn('A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.');
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
68
|
-
}, []);
|
|
69
|
-
|
|
70
|
-
if (type === 'popover') {
|
|
71
|
-
return (
|
|
72
|
-
<PopoverTrigger
|
|
73
|
-
{...positionProps}
|
|
74
|
-
state={state}
|
|
75
|
-
targetRef={targetRef}
|
|
76
|
-
trigger={trigger}
|
|
77
|
-
content={content}
|
|
78
|
-
isKeyboardDismissDisabled={isKeyboardDismissDisabled}
|
|
79
|
-
hideArrow={hideArrow} />
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
let renderOverlay = () => {
|
|
84
|
-
switch (type) {
|
|
85
|
-
case 'fullscreen':
|
|
86
|
-
case 'fullscreenTakeover':
|
|
87
|
-
case 'modal':
|
|
88
|
-
return (
|
|
89
|
-
<Modal
|
|
90
|
-
state={state}
|
|
91
|
-
isDismissable={type === 'modal' ? isDismissable : false}
|
|
92
|
-
type={type}
|
|
93
|
-
isKeyboardDismissDisabled={isKeyboardDismissDisabled}
|
|
94
|
-
onExiting={onExiting}
|
|
95
|
-
onExited={onExited}>
|
|
96
|
-
{typeof content === 'function' ? content(state.close) : content}
|
|
97
|
-
</Modal>
|
|
98
|
-
);
|
|
99
|
-
case 'tray':
|
|
100
|
-
return (
|
|
101
|
-
<Tray
|
|
102
|
-
state={state}
|
|
103
|
-
isKeyboardDismissDisabled={isKeyboardDismissDisabled}>
|
|
104
|
-
{typeof content === 'function' ? content(state.close) : content}
|
|
105
|
-
</Tray>
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
return (
|
|
111
|
-
<DialogTriggerBase
|
|
112
|
-
type={type}
|
|
113
|
-
state={state}
|
|
114
|
-
isDismissable={isDismissable}
|
|
115
|
-
trigger={trigger}
|
|
116
|
-
overlay={renderOverlay()} />
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Support DialogTrigger inside components using CollectionBuilder.
|
|
121
|
-
DialogTrigger.getCollectionNode = function* (props: SpectrumDialogTriggerProps) {
|
|
122
|
-
// @ts-ignore - seems like types are wrong. Function children work fine.
|
|
123
|
-
let [trigger] = React.Children.toArray(props.children);
|
|
124
|
-
let [, content] = props.children as [ReactElement, SpectrumDialogClose];
|
|
125
|
-
yield {
|
|
126
|
-
element: trigger,
|
|
127
|
-
wrapper: (element) => (
|
|
128
|
-
<DialogTrigger key={element.key} {...props}>
|
|
129
|
-
{element}
|
|
130
|
-
{content}
|
|
131
|
-
</DialogTrigger>
|
|
132
|
-
)
|
|
133
|
-
};
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's
|
|
138
|
-
* open state with the trigger's press state. Additionally, it allows you to customize the type and
|
|
139
|
-
* positioning of the Dialog.
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
// We don't want getCollectionNode to show up in the type definition
|
|
143
|
-
let _DialogTrigger = DialogTrigger as (props: SpectrumDialogTriggerProps) => JSX.Element;
|
|
144
|
-
export {_DialogTrigger as DialogTrigger};
|
|
145
|
-
|
|
146
|
-
function PopoverTrigger({state, targetRef, trigger, content, hideArrow, ...props}) {
|
|
147
|
-
let triggerRef = useRef<HTMLElement>(null);
|
|
148
|
-
let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, triggerRef);
|
|
149
|
-
|
|
150
|
-
let triggerPropsWithRef = {
|
|
151
|
-
...triggerProps,
|
|
152
|
-
ref: targetRef ? undefined : triggerRef
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
let overlay = (
|
|
156
|
-
<Popover
|
|
157
|
-
{...props}
|
|
158
|
-
hideArrow={hideArrow}
|
|
159
|
-
triggerRef={targetRef || triggerRef}
|
|
160
|
-
state={state}>
|
|
161
|
-
{typeof content === 'function' ? content(state.close) : content}
|
|
162
|
-
</Popover>
|
|
163
|
-
);
|
|
164
|
-
|
|
165
|
-
return (
|
|
166
|
-
<DialogTriggerBase
|
|
167
|
-
type="popover"
|
|
168
|
-
state={state}
|
|
169
|
-
triggerProps={triggerPropsWithRef}
|
|
170
|
-
dialogProps={overlayProps}
|
|
171
|
-
trigger={trigger}
|
|
172
|
-
overlay={overlay} />
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
interface SpectrumDialogTriggerBase {
|
|
177
|
-
type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
|
|
178
|
-
state: OverlayTriggerState,
|
|
179
|
-
isDismissable?: boolean,
|
|
180
|
-
dialogProps?: SpectrumDialogProps | {},
|
|
181
|
-
triggerProps?: any,
|
|
182
|
-
overlay?: ReactElement,
|
|
183
|
-
trigger: ReactElement
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
function DialogTriggerBase({type, state, isDismissable, dialogProps = {}, triggerProps = {}, overlay, trigger}: SpectrumDialogTriggerBase) {
|
|
187
|
-
let context = {
|
|
188
|
-
type,
|
|
189
|
-
onClose: state.close,
|
|
190
|
-
isDismissable,
|
|
191
|
-
...dialogProps
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
return (
|
|
195
|
-
<Fragment>
|
|
196
|
-
<PressResponder
|
|
197
|
-
{...triggerProps}
|
|
198
|
-
onPress={state.toggle}
|
|
199
|
-
isPressed={state.isOpen && type !== 'modal' && type !== 'fullscreen' && type !== 'fullscreenTakeover'}>
|
|
200
|
-
{trigger}
|
|
201
|
-
</PressResponder>
|
|
202
|
-
<DialogContext.Provider value={context}>
|
|
203
|
-
{overlay}
|
|
204
|
-
</DialogContext.Provider>
|
|
205
|
-
</Fragment>
|
|
206
|
-
);
|
|
207
|
-
}
|
package/src/context.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
-
*
|
|
7
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
-
* governing permissions and limitations under the License.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import React, {HTMLAttributes} from 'react';
|
|
14
|
-
|
|
15
|
-
export interface DialogContextValue extends HTMLAttributes<HTMLElement> {
|
|
16
|
-
type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
|
|
17
|
-
isDismissable?: boolean,
|
|
18
|
-
onClose: () => void
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const DialogContext = React.createContext<DialogContextValue | null>(null);
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
-
*
|
|
7
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
-
* governing permissions and limitations under the License.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {DialogContext} from './context';
|
|
14
|
-
import {useContext} from 'react';
|
|
15
|
-
|
|
16
|
-
export interface DialogContainerValue {
|
|
17
|
-
type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
|
|
18
|
-
dismiss(): void
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function useDialogContainer(): DialogContainerValue {
|
|
22
|
-
let context = useContext(DialogContext);
|
|
23
|
-
if (!context) {
|
|
24
|
-
throw new Error('Cannot call useDialogContext outside a <DialogTrigger> or <DialogContainer>.');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
type: context.type,
|
|
29
|
-
dismiss() {
|
|
30
|
-
context?.onClose();
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|