@veracity/vui 1.2.0-beta.2 → 1.2.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/cjs/core/types.d.ts +10 -1
- package/dist/cjs/core/types.d.ts.map +1 -1
- package/dist/cjs/core/vuiProvider/context.d.ts +2 -1
- package/dist/cjs/core/vuiProvider/context.d.ts.map +1 -1
- package/dist/cjs/core/vuiProvider/reducers.d.ts +3 -2
- package/dist/cjs/core/vuiProvider/reducers.d.ts.map +1 -1
- package/dist/cjs/core/vuiProvider/reducers.js +5 -3
- package/dist/cjs/core/vuiProvider/vuiProvider.d.ts.map +1 -1
- package/dist/cjs/core/vuiProvider/vuiProvider.js +6 -4
- package/dist/cjs/dialog/index.d.ts +1 -2
- package/dist/cjs/dialog/index.d.ts.map +1 -1
- package/dist/cjs/dialog/index.js +1 -2
- package/dist/cjs/dialog/useDialog.d.ts +5 -0
- package/dist/cjs/dialog/useDialog.d.ts.map +1 -0
- package/dist/cjs/dialog/useDialog.js +46 -0
- package/dist/cjs/toast/useToast.d.ts +1 -1
- package/dist/cjs/utils/dom.d.ts +0 -5
- package/dist/cjs/utils/dom.d.ts.map +1 -1
- package/dist/cjs/utils/dom.js +1 -28
- package/dist/cjs/utils/react.d.ts +1 -3
- package/dist/cjs/utils/react.d.ts.map +1 -1
- package/dist/cjs/utils/react.js +1 -13
- package/dist/esm/core/types.d.ts +10 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/vuiProvider/context.d.ts +2 -1
- package/dist/esm/core/vuiProvider/context.d.ts.map +1 -1
- package/dist/esm/core/vuiProvider/reducers.d.ts +3 -2
- package/dist/esm/core/vuiProvider/reducers.d.ts.map +1 -1
- package/dist/esm/core/vuiProvider/reducers.js +3 -2
- package/dist/esm/core/vuiProvider/vuiProvider.d.ts.map +1 -1
- package/dist/esm/core/vuiProvider/vuiProvider.js +7 -5
- package/dist/esm/dialog/index.d.ts +1 -2
- package/dist/esm/dialog/index.d.ts.map +1 -1
- package/dist/esm/dialog/index.js +1 -2
- package/dist/esm/dialog/useDialog.d.ts +5 -0
- package/dist/esm/dialog/useDialog.d.ts.map +1 -0
- package/dist/esm/dialog/useDialog.js +39 -0
- package/dist/esm/toast/useToast.d.ts +1 -1
- package/dist/esm/utils/dom.d.ts +0 -5
- package/dist/esm/utils/dom.d.ts.map +1 -1
- package/dist/esm/utils/dom.js +0 -19
- package/dist/esm/utils/react.d.ts +1 -3
- package/dist/esm/utils/react.d.ts.map +1 -1
- package/dist/esm/utils/react.js +0 -8
- package/package.json +1 -1
- package/src/core/types.ts +10 -1
- package/src/core/vuiProvider/context.ts +2 -1
- package/src/core/vuiProvider/reducers.ts +4 -2
- package/src/core/vuiProvider/vuiProvider.tsx +7 -5
- package/src/dialog/index.ts +1 -2
- package/src/dialog/useDialog.tsx +69 -0
- package/src/utils/dom.ts +0 -22
- package/src/utils/react.ts +0 -9
- package/dist/cjs/dialog/showConfirm.d.ts +0 -2
- package/dist/cjs/dialog/showConfirm.d.ts.map +0 -1
- package/dist/cjs/dialog/showConfirm.js +0 -37
- package/dist/cjs/dialog/showPrompt.d.ts +0 -2
- package/dist/cjs/dialog/showPrompt.d.ts.map +0 -1
- package/dist/cjs/dialog/showPrompt.js +0 -42
- package/dist/esm/dialog/showConfirm.d.ts +0 -2
- package/dist/esm/dialog/showConfirm.d.ts.map +0 -1
- package/dist/esm/dialog/showConfirm.js +0 -30
- package/dist/esm/dialog/showPrompt.d.ts +0 -2
- package/dist/esm/dialog/showPrompt.d.ts.map +0 -1
- package/dist/esm/dialog/showPrompt.js +0 -35
- package/src/dialog/showConfirm.tsx +0 -45
- package/src/dialog/showPrompt.tsx +0 -55
package/dist/cjs/core/types.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import { Dispatch, ReactNode } from 'react';
|
|
2
|
+
import { ToastListItem } from '../toast/toast.types';
|
|
2
3
|
export interface ChildrenProp {
|
|
3
4
|
children?: ReactNode;
|
|
4
5
|
}
|
|
6
|
+
export interface VuiContext {
|
|
7
|
+
toasts: {
|
|
8
|
+
list: ToastListItem[];
|
|
9
|
+
};
|
|
10
|
+
addToast: (toast: ToastListItem) => void;
|
|
11
|
+
removeToast: (id: string) => void;
|
|
12
|
+
setPortalSlot: Dispatch<ReactNode>;
|
|
13
|
+
}
|
|
5
14
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,aAAa,EAAE,CAAA;KAAE,CAAA;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CACnC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
2
|
+
import { VuiContext } from '../types';
|
|
3
|
+
declare const VuiContextProvider: import("react").Provider<VuiContext>, useVuiContext: () => VuiContext;
|
|
3
4
|
export { VuiContextProvider, useVuiContext };
|
|
4
5
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/context.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/context.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,QAAA,MAAO,kBAAkB,wCAAE,aAAa,kBAAmD,CAAA;AAE3F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ToastListItem } from '../../toast/toast.types';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const toastsReducer: (state: {
|
|
3
3
|
list: ToastListItem[];
|
|
4
4
|
}, action: {
|
|
5
5
|
type: 'add' | 'remove';
|
|
6
6
|
toast: ToastListItem;
|
|
7
|
-
})
|
|
7
|
+
}) => {
|
|
8
8
|
list: ToastListItem[];
|
|
9
9
|
};
|
|
10
|
+
export declare const genericReducer: (state: any, action: any) => any;
|
|
10
11
|
//# sourceMappingURL=reducers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/reducers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,
|
|
1
|
+
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/reducers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,eAAO,MAAM,aAAa,UACjB;IAAE,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,UACxB;IAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE;;CAazD,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,GAAG,UAAU,GAAG,QAAqB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toastsReducer = void 0;
|
|
4
|
-
|
|
3
|
+
exports.genericReducer = exports.toastsReducer = void 0;
|
|
4
|
+
const toastsReducer = (state, action) => {
|
|
5
5
|
switch (action.type) {
|
|
6
6
|
case 'add': {
|
|
7
7
|
return { list: [action.toast, ...state.list] };
|
|
@@ -13,5 +13,7 @@ function toastsReducer(state, action) {
|
|
|
13
13
|
throw new Error(`Unhandled action type: ${action.type}`);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
}
|
|
16
|
+
};
|
|
17
17
|
exports.toastsReducer = toastsReducer;
|
|
18
|
+
const genericReducer = (state, action) => (state = action);
|
|
19
|
+
exports.genericReducer = genericReducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vuiProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/vuiProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAA;AAM7C,OAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAMvC,aAAK,gBAAgB,GAAG;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,oGAAoG;AACpG,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"vuiProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/vuiProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAA;AAM7C,OAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAMvC,aAAK,gBAAgB,GAAG;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,oGAAoG;AACpG,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,YAAY,CA+BpD,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -39,10 +39,11 @@ const reducers_1 = require("./reducers");
|
|
|
39
39
|
const resetCSS_1 = __importDefault(require("./resetCSS"));
|
|
40
40
|
/** Provides theme to all wrapped components and by default includes CSS reset and global styles. */
|
|
41
41
|
const VuiProvider = ({ children, globalStyle = true, resetCSS = true, theme = theme_1.default }) => {
|
|
42
|
-
const [toasts,
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
42
|
+
const [toasts, toastsDispatch] = (0, react_1.useReducer)(reducers_1.toastsReducer, { list: [] });
|
|
43
|
+
const [portalSlot, setPortalSlot] = (0, react_1.useReducer)(reducers_1.genericReducer, null);
|
|
44
|
+
const addToast = (toast) => toastsDispatch({ type: 'add', toast });
|
|
45
|
+
const removeToast = (id) => toastsDispatch({ type: 'remove', toast: { id } });
|
|
46
|
+
const context = { toasts, addToast, removeToast, setPortalSlot };
|
|
46
47
|
return (react_1.default.createElement(context_1.VuiContextProvider, { value: context },
|
|
47
48
|
react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
|
|
48
49
|
react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -52,6 +53,7 @@ const VuiProvider = ({ children, globalStyle = true, resetCSS = true, theme = th
|
|
|
52
53
|
react_1.default.createElement(popoverStyle_1.default, null),
|
|
53
54
|
children,
|
|
54
55
|
react_1.default.createElement(portal_1.Portal, null,
|
|
56
|
+
portalSlot,
|
|
55
57
|
react_1.default.createElement(toast_1.Toaster, null))))));
|
|
56
58
|
};
|
|
57
59
|
exports.default = VuiProvider;
|
|
@@ -11,6 +11,5 @@ export * from './dialogHeader';
|
|
|
11
11
|
export * from './dialogIcon';
|
|
12
12
|
export * from './dialogSubmitButton';
|
|
13
13
|
export * from './dialogTitle';
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './showPrompt';
|
|
14
|
+
export * from './useDialog';
|
|
16
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|
package/dist/cjs/dialog/index.js
CHANGED
|
@@ -32,5 +32,4 @@ __exportStar(require("./dialogHeader"), exports);
|
|
|
32
32
|
__exportStar(require("./dialogIcon"), exports);
|
|
33
33
|
__exportStar(require("./dialogSubmitButton"), exports);
|
|
34
34
|
__exportStar(require("./dialogTitle"), exports);
|
|
35
|
-
__exportStar(require("./
|
|
36
|
-
__exportStar(require("./showPrompt"), exports);
|
|
35
|
+
__exportStar(require("./useDialog"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDialog.d.ts","sourceRoot":"","sources":["../../../src/dialog/useDialog.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS;yBAGQ,MAAM,WAAW,MAAM,KAAG,QAAQ,OAAO,CAAC;wBA0B3C,MAAM,qBAAe,QAAQ,MAAM,GAAG,KAAK,CAAC;CAgCxE,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useDialog = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const box_1 = require("../box");
|
|
9
|
+
const core_1 = require("../core");
|
|
10
|
+
const dialog_1 = require("../dialog");
|
|
11
|
+
const input_1 = require("../input");
|
|
12
|
+
const useDialog = () => {
|
|
13
|
+
const { setPortalSlot } = (0, core_1.useVuiContext)();
|
|
14
|
+
const showConfirm = (title, message) => new Promise(resolve => setPortalSlot(react_1.default.createElement(dialog_1.Dialog, { body: message, cancelButton: {
|
|
15
|
+
onClick: () => {
|
|
16
|
+
resolve(false);
|
|
17
|
+
setPortalSlot(null);
|
|
18
|
+
},
|
|
19
|
+
text: 'Cancel'
|
|
20
|
+
}, closeButton: false, isOpen: true, submitButton: {
|
|
21
|
+
onClick: () => {
|
|
22
|
+
resolve(true);
|
|
23
|
+
setPortalSlot(null);
|
|
24
|
+
},
|
|
25
|
+
text: 'Confirm'
|
|
26
|
+
}, title: title })));
|
|
27
|
+
const showPrompt = (title, value = '') => new Promise(resolve => {
|
|
28
|
+
let inputValue = value;
|
|
29
|
+
setPortalSlot(react_1.default.createElement(dialog_1.Dialog, { body: react_1.default.createElement(box_1.Box, { px: 3, py: 2 },
|
|
30
|
+
react_1.default.createElement(input_1.Input, { defaultValue: value, onChange: e => (inputValue = e.target.value) })), cancelButton: {
|
|
31
|
+
onClick: () => {
|
|
32
|
+
resolve(false);
|
|
33
|
+
setPortalSlot(null);
|
|
34
|
+
},
|
|
35
|
+
text: 'Cancel'
|
|
36
|
+
}, closeButton: false, isOpen: true, submitButton: {
|
|
37
|
+
onClick: () => {
|
|
38
|
+
resolve(inputValue);
|
|
39
|
+
setPortalSlot(null);
|
|
40
|
+
},
|
|
41
|
+
text: 'Submit'
|
|
42
|
+
}, title: title }));
|
|
43
|
+
});
|
|
44
|
+
return { showConfirm, showPrompt };
|
|
45
|
+
};
|
|
46
|
+
exports.useDialog = useDialog;
|
|
@@ -2,7 +2,7 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ToastOptions } from './toast.types';
|
|
3
3
|
export declare const useToast: () => {
|
|
4
4
|
showToast: (options?: ToastOptions | undefined) => void;
|
|
5
|
-
hideToast: (id: string) =>
|
|
5
|
+
hideToast: (id: string) => void;
|
|
6
6
|
showInfo: (text: ReactNode) => void;
|
|
7
7
|
showSuccess: (text: ReactNode) => void;
|
|
8
8
|
showWarning: (text: ReactNode) => void;
|
package/dist/cjs/utils/dom.d.ts
CHANGED
|
@@ -2,9 +2,4 @@ export declare const addElement: (id: string) => HTMLElement;
|
|
|
2
2
|
export declare const removeElement: (id: string) => void;
|
|
3
3
|
export declare const addBodyClass: (className: string) => void;
|
|
4
4
|
export declare const removeBodyClass: (className: string) => void;
|
|
5
|
-
export declare const removeElements: (className: string) => void;
|
|
6
|
-
export declare const addElementClass: (id: string, className: string) => void;
|
|
7
|
-
export declare const removeElementClass: (id: string, className: string) => void;
|
|
8
|
-
export declare const appendToBody: (rootElem: HTMLElement) => HTMLElement;
|
|
9
|
-
export declare const addContainer: (id: string) => void;
|
|
10
5
|
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,OAAQ,MAAM,KAAG,WAIvC,CAAA;AAED,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,IAG1C,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,IAA8C,CAAA;AAE/F,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,IAAiD,CAAA
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,OAAQ,MAAM,KAAG,WAIvC,CAAA;AAED,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,IAG1C,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,IAA8C,CAAA;AAE/F,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,IAAiD,CAAA"}
|
package/dist/cjs/utils/dom.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.removeBodyClass = exports.addBodyClass = exports.removeElement = exports.addElement = void 0;
|
|
4
4
|
const addElement = (id) => {
|
|
5
5
|
const element = document.createElement('div');
|
|
6
6
|
element.setAttribute('id', id);
|
|
@@ -17,30 +17,3 @@ const addBodyClass = (className) => document.body.classList.add(className);
|
|
|
17
17
|
exports.addBodyClass = addBodyClass;
|
|
18
18
|
const removeBodyClass = (className) => document.body.classList.remove(className);
|
|
19
19
|
exports.removeBodyClass = removeBodyClass;
|
|
20
|
-
const removeElements = (className) => {
|
|
21
|
-
var _a, _b;
|
|
22
|
-
const elements = document.getElementsByClassName(className);
|
|
23
|
-
for (let i = 0, len = elements.length; i < len; i++)
|
|
24
|
-
(_b = (_a = elements[i]) === null || _a === void 0 ? void 0 : _a.remove) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
25
|
-
};
|
|
26
|
-
exports.removeElements = removeElements;
|
|
27
|
-
const addElementClass = (id, className) => {
|
|
28
|
-
var _a, _b;
|
|
29
|
-
const element = document.getElementById(id);
|
|
30
|
-
(_b = (_a = element === null || element === void 0 ? void 0 : element.classList) === null || _a === void 0 ? void 0 : _a.add) === null || _b === void 0 ? void 0 : _b.call(_a, className);
|
|
31
|
-
};
|
|
32
|
-
exports.addElementClass = addElementClass;
|
|
33
|
-
const removeElementClass = (id, className) => {
|
|
34
|
-
var _a, _b;
|
|
35
|
-
const element = document.getElementById(id);
|
|
36
|
-
(_b = (_a = element === null || element === void 0 ? void 0 : element.classList) === null || _a === void 0 ? void 0 : _a.remove) === null || _b === void 0 ? void 0 : _b.call(_a, className);
|
|
37
|
-
};
|
|
38
|
-
exports.removeElementClass = removeElementClass;
|
|
39
|
-
const appendToBody = (rootElem) => document.body.appendChild(rootElem);
|
|
40
|
-
exports.appendToBody = appendToBody;
|
|
41
|
-
const addContainer = (id) => {
|
|
42
|
-
const toastContainer = document.getElementById(id);
|
|
43
|
-
if (!toastContainer)
|
|
44
|
-
(0, exports.appendToBody)((0, exports.addElement)(id));
|
|
45
|
-
};
|
|
46
|
-
exports.addContainer = addContainer;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { DependencyList,
|
|
1
|
+
import React, { DependencyList, RefObject } from 'react';
|
|
2
2
|
import { AnyFunction, CreateContextOptions, CreateContextReturn } from './types';
|
|
3
3
|
declare type ReactRef<T> = React.Ref<T> | React.RefObject<T> | React.MutableRefObject<T>;
|
|
4
4
|
/**
|
|
@@ -36,7 +36,5 @@ export declare function useIds(id: string, prefixes: string[]): string[];
|
|
|
36
36
|
* Provides a function, which can be called to check if component using the hook is mounted or unmounted.
|
|
37
37
|
*/
|
|
38
38
|
export declare function useIsMounted(): () => boolean;
|
|
39
|
-
/** A resolver to render a DOM node depending on React major version. */
|
|
40
|
-
export declare function reactDomRender(id: string, content: ReactElement): void;
|
|
41
39
|
export {};
|
|
42
40
|
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/utils/react.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,cAAc,EAEd,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/utils/react.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,cAAc,EAEd,SAAS,EAMV,MAAM,OAAO,CAAA;AAId,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhF,aAAK,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAEhF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,QAcxE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAE,oBAAyB,oCAoB5E;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,UACjD,CAAC,GAAG,IAAI,UAGvB;AAGD,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAE,cAAmB,KAM5F;AAKD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EACjC,MAAM,GAAE,MAAM,EAAkB,QAoBjC;AAED,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IAClC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,CAAC,CAAA;CACV,CAAA;AAGD,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;kBAwBzC,OAAO;WAAS,MAAM,IAAI;GAE7C;AAED,4GAA4G;AAC5G,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAEpD;AAGD;;GAEG;AACH,wBAAgB,YAAY,kBAY3B"}
|
package/dist/cjs/utils/react.js
CHANGED
|
@@ -23,13 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
__setModuleDefault(result, mod);
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
-
};
|
|
29
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
27
|
+
exports.useIsMounted = exports.useIds = exports.useControlled = exports.useClickOutside = exports.useCallbackRef = exports.mergeRefs = exports.createContext = exports.assignRef = void 0;
|
|
31
28
|
const react_1 = __importStar(require("react"));
|
|
32
|
-
const react_dom_1 = __importDefault(require("react-dom"));
|
|
33
29
|
const assertion_1 = require("./assertion");
|
|
34
30
|
const function_1 = require("./function");
|
|
35
31
|
/**
|
|
@@ -148,11 +144,3 @@ function useIsMounted() {
|
|
|
148
144
|
return (0, react_1.useCallback)(() => isMounted.current, []);
|
|
149
145
|
}
|
|
150
146
|
exports.useIsMounted = useIsMounted;
|
|
151
|
-
/** A resolver to render a DOM node depending on React major version. */
|
|
152
|
-
function reactDomRender(id, content) {
|
|
153
|
-
const wrapper = document.getElementById(id);
|
|
154
|
-
if (!wrapper)
|
|
155
|
-
return;
|
|
156
|
-
react_dom_1.default.render(content, wrapper);
|
|
157
|
-
}
|
|
158
|
-
exports.reactDomRender = reactDomRender;
|
package/dist/esm/core/types.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import { Dispatch, ReactNode } from 'react';
|
|
2
|
+
import { ToastListItem } from '../toast/toast.types';
|
|
2
3
|
export interface ChildrenProp {
|
|
3
4
|
children?: ReactNode;
|
|
4
5
|
}
|
|
6
|
+
export interface VuiContext {
|
|
7
|
+
toasts: {
|
|
8
|
+
list: ToastListItem[];
|
|
9
|
+
};
|
|
10
|
+
addToast: (toast: ToastListItem) => void;
|
|
11
|
+
removeToast: (id: string) => void;
|
|
12
|
+
setPortalSlot: Dispatch<ReactNode>;
|
|
13
|
+
}
|
|
5
14
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,aAAa,EAAE,CAAA;KAAE,CAAA;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CACnC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
2
|
+
import { VuiContext } from '../types';
|
|
3
|
+
declare const VuiContextProvider: import("react").Provider<VuiContext>, useVuiContext: () => VuiContext;
|
|
3
4
|
export { VuiContextProvider, useVuiContext };
|
|
4
5
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/context.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/context.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,QAAA,MAAO,kBAAkB,wCAAE,aAAa,kBAAmD,CAAA;AAE3F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ToastListItem } from '../../toast/toast.types';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const toastsReducer: (state: {
|
|
3
3
|
list: ToastListItem[];
|
|
4
4
|
}, action: {
|
|
5
5
|
type: 'add' | 'remove';
|
|
6
6
|
toast: ToastListItem;
|
|
7
|
-
})
|
|
7
|
+
}) => {
|
|
8
8
|
list: ToastListItem[];
|
|
9
9
|
};
|
|
10
|
+
export declare const genericReducer: (state: any, action: any) => any;
|
|
10
11
|
//# sourceMappingURL=reducers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/reducers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,
|
|
1
|
+
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/reducers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,eAAO,MAAM,aAAa,UACjB;IAAE,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,UACxB;IAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE;;CAazD,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,GAAG,UAAU,GAAG,QAAqB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const toastsReducer = (state, action) => {
|
|
2
2
|
switch (action.type) {
|
|
3
3
|
case 'add': {
|
|
4
4
|
return { list: [action.toast, ...state.list] };
|
|
@@ -10,4 +10,5 @@ export function toastsReducer(state, action) {
|
|
|
10
10
|
throw new Error(`Unhandled action type: ${action.type}`);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
}
|
|
13
|
+
};
|
|
14
|
+
export const genericReducer = (state, action) => (state = action);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vuiProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/vuiProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAA;AAM7C,OAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAMvC,aAAK,gBAAgB,GAAG;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,oGAAoG;AACpG,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"vuiProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/vuiProvider/vuiProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAA;AAM7C,OAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAMvC,aAAK,gBAAgB,GAAG;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,oGAAoG;AACpG,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,GAAG,YAAY,CA+BpD,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -7,14 +7,15 @@ import defaultTheme from '../../theme';
|
|
|
7
7
|
import { Toaster } from '../../toast';
|
|
8
8
|
import { VuiContextProvider } from './context';
|
|
9
9
|
import GlobalStyle from './globalStyle';
|
|
10
|
-
import { toastsReducer } from './reducers';
|
|
10
|
+
import { genericReducer, toastsReducer } from './reducers';
|
|
11
11
|
import ResetCSS from './resetCSS';
|
|
12
12
|
/** Provides theme to all wrapped components and by default includes CSS reset and global styles. */
|
|
13
13
|
const VuiProvider = ({ children, globalStyle = true, resetCSS = true, theme = defaultTheme }) => {
|
|
14
|
-
const [toasts,
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
14
|
+
const [toasts, toastsDispatch] = useReducer(toastsReducer, { list: [] });
|
|
15
|
+
const [portalSlot, setPortalSlot] = useReducer(genericReducer, null);
|
|
16
|
+
const addToast = (toast) => toastsDispatch({ type: 'add', toast });
|
|
17
|
+
const removeToast = (id) => toastsDispatch({ type: 'remove', toast: { id } });
|
|
18
|
+
const context = { toasts, addToast, removeToast, setPortalSlot };
|
|
18
19
|
return (React.createElement(VuiContextProvider, { value: context },
|
|
19
20
|
React.createElement(ThemeProvider, { theme: theme },
|
|
20
21
|
React.createElement(React.Fragment, null,
|
|
@@ -24,6 +25,7 @@ const VuiProvider = ({ children, globalStyle = true, resetCSS = true, theme = de
|
|
|
24
25
|
React.createElement(PopoverStyle, null),
|
|
25
26
|
children,
|
|
26
27
|
React.createElement(Portal, null,
|
|
28
|
+
portalSlot,
|
|
27
29
|
React.createElement(Toaster, null))))));
|
|
28
30
|
};
|
|
29
31
|
export default VuiProvider;
|
|
@@ -11,6 +11,5 @@ export * from './dialogHeader';
|
|
|
11
11
|
export * from './dialogIcon';
|
|
12
12
|
export * from './dialogSubmitButton';
|
|
13
13
|
export * from './dialogTitle';
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './showPrompt';
|
|
14
|
+
export * from './useDialog';
|
|
16
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|
package/dist/esm/dialog/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDialog.d.ts","sourceRoot":"","sources":["../../../src/dialog/useDialog.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS;yBAGQ,MAAM,WAAW,MAAM,KAAG,QAAQ,OAAO,CAAC;wBA0B3C,MAAM,qBAAe,QAAQ,MAAM,GAAG,KAAK,CAAC;CAgCxE,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box } from '../box';
|
|
3
|
+
import { useVuiContext } from '../core';
|
|
4
|
+
import { Dialog } from '../dialog';
|
|
5
|
+
import { Input } from '../input';
|
|
6
|
+
export const useDialog = () => {
|
|
7
|
+
const { setPortalSlot } = useVuiContext();
|
|
8
|
+
const showConfirm = (title, message) => new Promise(resolve => setPortalSlot(React.createElement(Dialog, { body: message, cancelButton: {
|
|
9
|
+
onClick: () => {
|
|
10
|
+
resolve(false);
|
|
11
|
+
setPortalSlot(null);
|
|
12
|
+
},
|
|
13
|
+
text: 'Cancel'
|
|
14
|
+
}, closeButton: false, isOpen: true, submitButton: {
|
|
15
|
+
onClick: () => {
|
|
16
|
+
resolve(true);
|
|
17
|
+
setPortalSlot(null);
|
|
18
|
+
},
|
|
19
|
+
text: 'Confirm'
|
|
20
|
+
}, title: title })));
|
|
21
|
+
const showPrompt = (title, value = '') => new Promise(resolve => {
|
|
22
|
+
let inputValue = value;
|
|
23
|
+
setPortalSlot(React.createElement(Dialog, { body: React.createElement(Box, { px: 3, py: 2 },
|
|
24
|
+
React.createElement(Input, { defaultValue: value, onChange: e => (inputValue = e.target.value) })), cancelButton: {
|
|
25
|
+
onClick: () => {
|
|
26
|
+
resolve(false);
|
|
27
|
+
setPortalSlot(null);
|
|
28
|
+
},
|
|
29
|
+
text: 'Cancel'
|
|
30
|
+
}, closeButton: false, isOpen: true, submitButton: {
|
|
31
|
+
onClick: () => {
|
|
32
|
+
resolve(inputValue);
|
|
33
|
+
setPortalSlot(null);
|
|
34
|
+
},
|
|
35
|
+
text: 'Submit'
|
|
36
|
+
}, title: title }));
|
|
37
|
+
});
|
|
38
|
+
return { showConfirm, showPrompt };
|
|
39
|
+
};
|
|
@@ -2,7 +2,7 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ToastOptions } from './toast.types';
|
|
3
3
|
export declare const useToast: () => {
|
|
4
4
|
showToast: (options?: ToastOptions | undefined) => void;
|
|
5
|
-
hideToast: (id: string) =>
|
|
5
|
+
hideToast: (id: string) => void;
|
|
6
6
|
showInfo: (text: ReactNode) => void;
|
|
7
7
|
showSuccess: (text: ReactNode) => void;
|
|
8
8
|
showWarning: (text: ReactNode) => void;
|
package/dist/esm/utils/dom.d.ts
CHANGED
|
@@ -2,9 +2,4 @@ export declare const addElement: (id: string) => HTMLElement;
|
|
|
2
2
|
export declare const removeElement: (id: string) => void;
|
|
3
3
|
export declare const addBodyClass: (className: string) => void;
|
|
4
4
|
export declare const removeBodyClass: (className: string) => void;
|
|
5
|
-
export declare const removeElements: (className: string) => void;
|
|
6
|
-
export declare const addElementClass: (id: string, className: string) => void;
|
|
7
|
-
export declare const removeElementClass: (id: string, className: string) => void;
|
|
8
|
-
export declare const appendToBody: (rootElem: HTMLElement) => HTMLElement;
|
|
9
|
-
export declare const addContainer: (id: string) => void;
|
|
10
5
|
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,OAAQ,MAAM,KAAG,WAIvC,CAAA;AAED,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,IAG1C,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,IAA8C,CAAA;AAE/F,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,IAAiD,CAAA
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,OAAQ,MAAM,KAAG,WAIvC,CAAA;AAED,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,IAG1C,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,IAA8C,CAAA;AAE/F,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,IAAiD,CAAA"}
|
package/dist/esm/utils/dom.js
CHANGED
|
@@ -9,22 +9,3 @@ export const removeElement = (id) => {
|
|
|
9
9
|
};
|
|
10
10
|
export const addBodyClass = (className) => document.body.classList.add(className);
|
|
11
11
|
export const removeBodyClass = (className) => document.body.classList.remove(className);
|
|
12
|
-
export const removeElements = (className) => {
|
|
13
|
-
const elements = document.getElementsByClassName(className);
|
|
14
|
-
for (let i = 0, len = elements.length; i < len; i++)
|
|
15
|
-
elements[i]?.remove?.();
|
|
16
|
-
};
|
|
17
|
-
export const addElementClass = (id, className) => {
|
|
18
|
-
const element = document.getElementById(id);
|
|
19
|
-
element?.classList?.add?.(className);
|
|
20
|
-
};
|
|
21
|
-
export const removeElementClass = (id, className) => {
|
|
22
|
-
const element = document.getElementById(id);
|
|
23
|
-
element?.classList?.remove?.(className);
|
|
24
|
-
};
|
|
25
|
-
export const appendToBody = (rootElem) => document.body.appendChild(rootElem);
|
|
26
|
-
export const addContainer = (id) => {
|
|
27
|
-
const toastContainer = document.getElementById(id);
|
|
28
|
-
if (!toastContainer)
|
|
29
|
-
appendToBody(addElement(id));
|
|
30
|
-
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { DependencyList,
|
|
1
|
+
import React, { DependencyList, RefObject } from 'react';
|
|
2
2
|
import { AnyFunction, CreateContextOptions, CreateContextReturn } from './types';
|
|
3
3
|
declare type ReactRef<T> = React.Ref<T> | React.RefObject<T> | React.MutableRefObject<T>;
|
|
4
4
|
/**
|
|
@@ -36,7 +36,5 @@ export declare function useIds(id: string, prefixes: string[]): string[];
|
|
|
36
36
|
* Provides a function, which can be called to check if component using the hook is mounted or unmounted.
|
|
37
37
|
*/
|
|
38
38
|
export declare function useIsMounted(): () => boolean;
|
|
39
|
-
/** A resolver to render a DOM node depending on React major version. */
|
|
40
|
-
export declare function reactDomRender(id: string, content: ReactElement): void;
|
|
41
39
|
export {};
|
|
42
40
|
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/utils/react.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,cAAc,EAEd,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/utils/react.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,cAAc,EAEd,SAAS,EAMV,MAAM,OAAO,CAAA;AAId,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhF,aAAK,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAEhF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,QAcxE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAE,oBAAyB,oCAoB5E;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,UACjD,CAAC,GAAG,IAAI,UAGvB;AAGD,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAE,cAAmB,KAM5F;AAKD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EACjC,MAAM,GAAE,MAAM,EAAkB,QAoBjC;AAED,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IAClC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,CAAC,CAAA;CACV,CAAA;AAGD,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;kBAwBzC,OAAO;WAAS,MAAM,IAAI;GAE7C;AAED,4GAA4G;AAC5G,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAEpD;AAGD;;GAEG;AACH,wBAAgB,YAAY,kBAY3B"}
|
package/dist/esm/utils/react.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
-
import ReactDOM from 'react-dom';
|
|
4
3
|
import { isArray, isFunction } from './assertion';
|
|
5
4
|
import { runIfFn } from './function';
|
|
6
5
|
/**
|
|
@@ -111,10 +110,3 @@ export function useIsMounted() {
|
|
|
111
110
|
}, []);
|
|
112
111
|
return useCallback(() => isMounted.current, []);
|
|
113
112
|
}
|
|
114
|
-
/** A resolver to render a DOM node depending on React major version. */
|
|
115
|
-
export function reactDomRender(id, content) {
|
|
116
|
-
const wrapper = document.getElementById(id);
|
|
117
|
-
if (!wrapper)
|
|
118
|
-
return;
|
|
119
|
-
ReactDOM.render(content, wrapper);
|
|
120
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "1.2.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
package/src/core/types.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import { ReactNode } from 'react'
|
|
1
|
+
import { Dispatch, ReactNode } from 'react'
|
|
2
|
+
|
|
3
|
+
import { ToastListItem } from '../toast/toast.types'
|
|
2
4
|
|
|
3
5
|
export interface ChildrenProp {
|
|
4
6
|
children?: ReactNode
|
|
5
7
|
}
|
|
8
|
+
|
|
9
|
+
export interface VuiContext {
|
|
10
|
+
toasts: { list: ToastListItem[] }
|
|
11
|
+
addToast: (toast: ToastListItem) => void
|
|
12
|
+
removeToast: (id: string) => void
|
|
13
|
+
setPortalSlot: Dispatch<ReactNode>
|
|
14
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createContext } from '../../utils'
|
|
2
|
+
import { VuiContext } from '../types'
|
|
2
3
|
|
|
3
|
-
const [VuiContextProvider, useVuiContext] = createContext<
|
|
4
|
+
const [VuiContextProvider, useVuiContext] = createContext<VuiContext>({ isOptional: true })
|
|
4
5
|
|
|
5
6
|
export { VuiContextProvider, useVuiContext }
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ToastListItem } from '../../toast/toast.types'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export const toastsReducer = (
|
|
4
4
|
state: { list: ToastListItem[] },
|
|
5
5
|
action: { type: 'add' | 'remove'; toast: ToastListItem }
|
|
6
|
-
) {
|
|
6
|
+
) => {
|
|
7
7
|
switch (action.type) {
|
|
8
8
|
case 'add': {
|
|
9
9
|
return { list: [action.toast, ...state.list] }
|
|
@@ -16,3 +16,5 @@ export function toastsReducer(
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
export const genericReducer = (state: any, action: any) => (state = action)
|
|
@@ -10,7 +10,7 @@ import { ToastListItem } from '../../toast/toast.types'
|
|
|
10
10
|
import { ChildrenProp } from '../types'
|
|
11
11
|
import { VuiContextProvider } from './context'
|
|
12
12
|
import GlobalStyle from './globalStyle'
|
|
13
|
-
import { toastsReducer } from './reducers'
|
|
13
|
+
import { genericReducer, toastsReducer } from './reducers'
|
|
14
14
|
import ResetCSS from './resetCSS'
|
|
15
15
|
|
|
16
16
|
type VuiProviderProps = {
|
|
@@ -29,12 +29,13 @@ const VuiProvider: FC<VuiProviderProps & ChildrenProp> = ({
|
|
|
29
29
|
resetCSS = true,
|
|
30
30
|
theme = defaultTheme as VuiTheme
|
|
31
31
|
}) => {
|
|
32
|
-
const [toasts,
|
|
32
|
+
const [toasts, toastsDispatch] = useReducer(toastsReducer, { list: [] })
|
|
33
|
+
const [portalSlot, setPortalSlot] = useReducer(genericReducer, null)
|
|
33
34
|
|
|
34
|
-
const addToast = (toast: ToastListItem) =>
|
|
35
|
-
const removeToast = (id: string) =>
|
|
35
|
+
const addToast = (toast: ToastListItem) => toastsDispatch({ type: 'add', toast })
|
|
36
|
+
const removeToast = (id: string) => toastsDispatch({ type: 'remove', toast: { id } })
|
|
36
37
|
|
|
37
|
-
const context = { toasts, addToast, removeToast }
|
|
38
|
+
const context = { toasts, addToast, removeToast, setPortalSlot }
|
|
38
39
|
|
|
39
40
|
return (
|
|
40
41
|
<VuiContextProvider value={context}>
|
|
@@ -46,6 +47,7 @@ const VuiProvider: FC<VuiProviderProps & ChildrenProp> = ({
|
|
|
46
47
|
<PopoverStyle />
|
|
47
48
|
{children}
|
|
48
49
|
<Portal>
|
|
50
|
+
{portalSlot}
|
|
49
51
|
<Toaster />
|
|
50
52
|
</Portal>
|
|
51
53
|
</>
|
package/src/dialog/index.ts
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { Box } from '../box'
|
|
4
|
+
import { useVuiContext } from '../core'
|
|
5
|
+
import { Dialog } from '../dialog'
|
|
6
|
+
import { Input } from '../input'
|
|
7
|
+
|
|
8
|
+
export const useDialog = () => {
|
|
9
|
+
const { setPortalSlot } = useVuiContext()
|
|
10
|
+
|
|
11
|
+
const showConfirm = (title: string, message: string): Promise<boolean> =>
|
|
12
|
+
new Promise(resolve =>
|
|
13
|
+
setPortalSlot(
|
|
14
|
+
<Dialog
|
|
15
|
+
body={message}
|
|
16
|
+
cancelButton={{
|
|
17
|
+
onClick: () => {
|
|
18
|
+
resolve(false)
|
|
19
|
+
setPortalSlot(null)
|
|
20
|
+
},
|
|
21
|
+
text: 'Cancel'
|
|
22
|
+
}}
|
|
23
|
+
closeButton={false}
|
|
24
|
+
isOpen
|
|
25
|
+
submitButton={{
|
|
26
|
+
onClick: () => {
|
|
27
|
+
resolve(true)
|
|
28
|
+
setPortalSlot(null)
|
|
29
|
+
},
|
|
30
|
+
text: 'Confirm'
|
|
31
|
+
}}
|
|
32
|
+
title={title}
|
|
33
|
+
/>
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
const showPrompt = (title: string, value = ''): Promise<string | false> =>
|
|
38
|
+
new Promise(resolve => {
|
|
39
|
+
let inputValue = value
|
|
40
|
+
setPortalSlot(
|
|
41
|
+
<Dialog
|
|
42
|
+
body={
|
|
43
|
+
<Box px={3} py={2}>
|
|
44
|
+
<Input defaultValue={value} onChange={e => (inputValue = e.target.value)} />
|
|
45
|
+
</Box>
|
|
46
|
+
}
|
|
47
|
+
cancelButton={{
|
|
48
|
+
onClick: () => {
|
|
49
|
+
resolve(false)
|
|
50
|
+
setPortalSlot(null)
|
|
51
|
+
},
|
|
52
|
+
text: 'Cancel'
|
|
53
|
+
}}
|
|
54
|
+
closeButton={false}
|
|
55
|
+
isOpen
|
|
56
|
+
submitButton={{
|
|
57
|
+
onClick: () => {
|
|
58
|
+
resolve(inputValue)
|
|
59
|
+
setPortalSlot(null)
|
|
60
|
+
},
|
|
61
|
+
text: 'Submit'
|
|
62
|
+
}}
|
|
63
|
+
title={title}
|
|
64
|
+
/>
|
|
65
|
+
)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
return { showConfirm, showPrompt }
|
|
69
|
+
}
|
package/src/utils/dom.ts
CHANGED
|
@@ -12,25 +12,3 @@ export const removeElement = (id: string): void => {
|
|
|
12
12
|
export const addBodyClass = (className: string): void => document.body.classList.add(className)
|
|
13
13
|
|
|
14
14
|
export const removeBodyClass = (className: string): void => document.body.classList.remove(className)
|
|
15
|
-
|
|
16
|
-
export const removeElements = (className: string): void => {
|
|
17
|
-
const elements = document.getElementsByClassName(className)
|
|
18
|
-
for (let i = 0, len = elements.length; i < len; i++) elements[i]?.remove?.()
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const addElementClass = (id: string, className: string): void => {
|
|
22
|
-
const element = document.getElementById(id)
|
|
23
|
-
element?.classList?.add?.(className)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const removeElementClass = (id: string, className: string): void => {
|
|
27
|
-
const element = document.getElementById(id)
|
|
28
|
-
element?.classList?.remove?.(className)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export const appendToBody = (rootElem: HTMLElement) => document.body.appendChild(rootElem)
|
|
32
|
-
|
|
33
|
-
export const addContainer = (id: string): void => {
|
|
34
|
-
const toastContainer = document.getElementById(id)
|
|
35
|
-
if (!toastContainer) appendToBody(addElement(id))
|
|
36
|
-
}
|
package/src/utils/react.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import React, {
|
|
4
4
|
DependencyList,
|
|
5
5
|
Dispatch,
|
|
6
|
-
ReactElement,
|
|
7
6
|
RefObject,
|
|
8
7
|
SetStateAction,
|
|
9
8
|
useCallback,
|
|
@@ -11,7 +10,6 @@ import React, {
|
|
|
11
10
|
useRef,
|
|
12
11
|
useState
|
|
13
12
|
} from 'react'
|
|
14
|
-
import ReactDOM from 'react-dom'
|
|
15
13
|
|
|
16
14
|
import { isArray, isFunction } from './assertion'
|
|
17
15
|
import { runIfFn } from './function'
|
|
@@ -172,10 +170,3 @@ export function useIsMounted() {
|
|
|
172
170
|
|
|
173
171
|
return useCallback(() => isMounted.current, [])
|
|
174
172
|
}
|
|
175
|
-
|
|
176
|
-
/** A resolver to render a DOM node depending on React major version. */
|
|
177
|
-
export function reactDomRender(id: string, content: ReactElement) {
|
|
178
|
-
const wrapper = document.getElementById(id)
|
|
179
|
-
if (!wrapper) return
|
|
180
|
-
ReactDOM.render(content, wrapper)
|
|
181
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"showConfirm.d.ts","sourceRoot":"","sources":["../../../src/dialog/showConfirm.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,UAAW,MAAM,WAAW,MAAM,KAAG,QAAQ,OAAO,CAqC3E,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.showConfirm = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const core_1 = require("../core");
|
|
9
|
-
const dialog_1 = require("../dialog");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const consts_1 = require("./consts");
|
|
12
|
-
const showConfirm = (title, message) => {
|
|
13
|
-
(0, utils_1.addContainer)(consts_1.containerId);
|
|
14
|
-
const hide = () => {
|
|
15
|
-
(0, utils_1.removeElement)(consts_1.containerId);
|
|
16
|
-
(0, utils_1.removeElements)(consts_1.modalClass);
|
|
17
|
-
(0, utils_1.removeBodyClass)(consts_1.noScrollClass);
|
|
18
|
-
};
|
|
19
|
-
return new Promise(resolve => {
|
|
20
|
-
const confirmDialog = (react_1.default.createElement(core_1.VuiProvider, null,
|
|
21
|
-
react_1.default.createElement(dialog_1.Dialog, { body: message, cancelButton: {
|
|
22
|
-
onClick: () => {
|
|
23
|
-
resolve(false);
|
|
24
|
-
hide();
|
|
25
|
-
},
|
|
26
|
-
text: 'Cancel'
|
|
27
|
-
}, closeButton: false, isOpen: true, submitButton: {
|
|
28
|
-
onClick: () => {
|
|
29
|
-
resolve(true);
|
|
30
|
-
hide();
|
|
31
|
-
},
|
|
32
|
-
text: 'Confirm'
|
|
33
|
-
}, title: title })));
|
|
34
|
-
(0, utils_1.reactDomRender)(consts_1.containerId, confirmDialog);
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
exports.showConfirm = showConfirm;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"showPrompt.d.ts","sourceRoot":"","sources":["../../../src/dialog/showPrompt.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,UAAW,MAAM,qBAAe,QAAQ,MAAM,GAAG,KAAK,CA6C5E,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.showPrompt = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const box_1 = require("../box");
|
|
9
|
-
const core_1 = require("../core");
|
|
10
|
-
const dialog_1 = require("../dialog");
|
|
11
|
-
const input_1 = require("../input");
|
|
12
|
-
const utils_1 = require("../utils");
|
|
13
|
-
const consts_1 = require("./consts");
|
|
14
|
-
const showPrompt = (title, value = '') => {
|
|
15
|
-
const state = { value };
|
|
16
|
-
const setValue = (value) => (state.value = value);
|
|
17
|
-
(0, utils_1.addContainer)(consts_1.containerId);
|
|
18
|
-
const hide = () => {
|
|
19
|
-
(0, utils_1.removeElement)(consts_1.containerId);
|
|
20
|
-
(0, utils_1.removeElements)(consts_1.modalClass);
|
|
21
|
-
(0, utils_1.removeBodyClass)(consts_1.noScrollClass);
|
|
22
|
-
};
|
|
23
|
-
return new Promise(resolve => {
|
|
24
|
-
const promptDialog = (react_1.default.createElement(core_1.VuiProvider, null,
|
|
25
|
-
react_1.default.createElement(dialog_1.Dialog, { body: react_1.default.createElement(box_1.Box, { px: 3, py: 2 },
|
|
26
|
-
react_1.default.createElement(input_1.Input, { defaultValue: value, onChange: e => setValue(e.target.value) })), cancelButton: {
|
|
27
|
-
onClick: () => {
|
|
28
|
-
resolve(false);
|
|
29
|
-
hide();
|
|
30
|
-
},
|
|
31
|
-
text: 'Cancel'
|
|
32
|
-
}, closeButton: false, isOpen: true, submitButton: {
|
|
33
|
-
onClick: () => {
|
|
34
|
-
resolve(state.value);
|
|
35
|
-
hide();
|
|
36
|
-
},
|
|
37
|
-
text: 'Submit'
|
|
38
|
-
}, title: title })));
|
|
39
|
-
(0, utils_1.reactDomRender)(consts_1.containerId, promptDialog);
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
exports.showPrompt = showPrompt;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"showConfirm.d.ts","sourceRoot":"","sources":["../../../src/dialog/showConfirm.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,UAAW,MAAM,WAAW,MAAM,KAAG,QAAQ,OAAO,CAqC3E,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { VuiProvider } from '../core';
|
|
3
|
-
import { Dialog } from '../dialog';
|
|
4
|
-
import { addContainer, reactDomRender, removeBodyClass, removeElement, removeElements } from '../utils';
|
|
5
|
-
import { containerId, modalClass, noScrollClass } from './consts';
|
|
6
|
-
export const showConfirm = (title, message) => {
|
|
7
|
-
addContainer(containerId);
|
|
8
|
-
const hide = () => {
|
|
9
|
-
removeElement(containerId);
|
|
10
|
-
removeElements(modalClass);
|
|
11
|
-
removeBodyClass(noScrollClass);
|
|
12
|
-
};
|
|
13
|
-
return new Promise(resolve => {
|
|
14
|
-
const confirmDialog = (React.createElement(VuiProvider, null,
|
|
15
|
-
React.createElement(Dialog, { body: message, cancelButton: {
|
|
16
|
-
onClick: () => {
|
|
17
|
-
resolve(false);
|
|
18
|
-
hide();
|
|
19
|
-
},
|
|
20
|
-
text: 'Cancel'
|
|
21
|
-
}, closeButton: false, isOpen: true, submitButton: {
|
|
22
|
-
onClick: () => {
|
|
23
|
-
resolve(true);
|
|
24
|
-
hide();
|
|
25
|
-
},
|
|
26
|
-
text: 'Confirm'
|
|
27
|
-
}, title: title })));
|
|
28
|
-
reactDomRender(containerId, confirmDialog);
|
|
29
|
-
});
|
|
30
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"showPrompt.d.ts","sourceRoot":"","sources":["../../../src/dialog/showPrompt.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,UAAW,MAAM,qBAAe,QAAQ,MAAM,GAAG,KAAK,CA6C5E,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box } from '../box';
|
|
3
|
-
import { VuiProvider } from '../core';
|
|
4
|
-
import { Dialog } from '../dialog';
|
|
5
|
-
import { Input } from '../input';
|
|
6
|
-
import { addContainer, reactDomRender, removeBodyClass, removeElement, removeElements } from '../utils';
|
|
7
|
-
import { containerId, modalClass, noScrollClass } from './consts';
|
|
8
|
-
export const showPrompt = (title, value = '') => {
|
|
9
|
-
const state = { value };
|
|
10
|
-
const setValue = (value) => (state.value = value);
|
|
11
|
-
addContainer(containerId);
|
|
12
|
-
const hide = () => {
|
|
13
|
-
removeElement(containerId);
|
|
14
|
-
removeElements(modalClass);
|
|
15
|
-
removeBodyClass(noScrollClass);
|
|
16
|
-
};
|
|
17
|
-
return new Promise(resolve => {
|
|
18
|
-
const promptDialog = (React.createElement(VuiProvider, null,
|
|
19
|
-
React.createElement(Dialog, { body: React.createElement(Box, { px: 3, py: 2 },
|
|
20
|
-
React.createElement(Input, { defaultValue: value, onChange: e => setValue(e.target.value) })), cancelButton: {
|
|
21
|
-
onClick: () => {
|
|
22
|
-
resolve(false);
|
|
23
|
-
hide();
|
|
24
|
-
},
|
|
25
|
-
text: 'Cancel'
|
|
26
|
-
}, closeButton: false, isOpen: true, submitButton: {
|
|
27
|
-
onClick: () => {
|
|
28
|
-
resolve(state.value);
|
|
29
|
-
hide();
|
|
30
|
-
},
|
|
31
|
-
text: 'Submit'
|
|
32
|
-
}, title: title })));
|
|
33
|
-
reactDomRender(containerId, promptDialog);
|
|
34
|
-
});
|
|
35
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { VuiProvider } from '../core'
|
|
4
|
-
import { Dialog } from '../dialog'
|
|
5
|
-
import { addContainer, reactDomRender, removeBodyClass, removeElement, removeElements } from '../utils'
|
|
6
|
-
import { containerId, modalClass, noScrollClass } from './consts'
|
|
7
|
-
|
|
8
|
-
export const showConfirm = (title: string, message: string): Promise<boolean> => {
|
|
9
|
-
addContainer(containerId)
|
|
10
|
-
|
|
11
|
-
const hide = () => {
|
|
12
|
-
removeElement(containerId)
|
|
13
|
-
removeElements(modalClass)
|
|
14
|
-
removeBodyClass(noScrollClass)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return new Promise(resolve => {
|
|
18
|
-
const confirmDialog = (
|
|
19
|
-
<VuiProvider>
|
|
20
|
-
<Dialog
|
|
21
|
-
body={message}
|
|
22
|
-
cancelButton={{
|
|
23
|
-
onClick: () => {
|
|
24
|
-
resolve(false)
|
|
25
|
-
hide()
|
|
26
|
-
},
|
|
27
|
-
text: 'Cancel'
|
|
28
|
-
}}
|
|
29
|
-
closeButton={false}
|
|
30
|
-
isOpen
|
|
31
|
-
submitButton={{
|
|
32
|
-
onClick: () => {
|
|
33
|
-
resolve(true)
|
|
34
|
-
hide()
|
|
35
|
-
},
|
|
36
|
-
text: 'Confirm'
|
|
37
|
-
}}
|
|
38
|
-
title={title}
|
|
39
|
-
/>
|
|
40
|
-
</VuiProvider>
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
reactDomRender(containerId, confirmDialog)
|
|
44
|
-
})
|
|
45
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { Box } from '../box'
|
|
4
|
-
import { VuiProvider } from '../core'
|
|
5
|
-
import { Dialog } from '../dialog'
|
|
6
|
-
import { Input } from '../input'
|
|
7
|
-
import { addContainer, reactDomRender, removeBodyClass, removeElement, removeElements } from '../utils'
|
|
8
|
-
import { containerId, modalClass, noScrollClass } from './consts'
|
|
9
|
-
|
|
10
|
-
export const showPrompt = (title: string, value = ''): Promise<string | false> => {
|
|
11
|
-
const state = { value }
|
|
12
|
-
|
|
13
|
-
const setValue = (value: string) => (state.value = value)
|
|
14
|
-
|
|
15
|
-
addContainer(containerId)
|
|
16
|
-
|
|
17
|
-
const hide = () => {
|
|
18
|
-
removeElement(containerId)
|
|
19
|
-
removeElements(modalClass)
|
|
20
|
-
removeBodyClass(noScrollClass)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return new Promise(resolve => {
|
|
24
|
-
const promptDialog = (
|
|
25
|
-
<VuiProvider>
|
|
26
|
-
<Dialog
|
|
27
|
-
body={
|
|
28
|
-
<Box px={3} py={2}>
|
|
29
|
-
<Input defaultValue={value} onChange={e => setValue(e.target.value)} />
|
|
30
|
-
</Box>
|
|
31
|
-
}
|
|
32
|
-
cancelButton={{
|
|
33
|
-
onClick: () => {
|
|
34
|
-
resolve(false)
|
|
35
|
-
hide()
|
|
36
|
-
},
|
|
37
|
-
text: 'Cancel'
|
|
38
|
-
}}
|
|
39
|
-
closeButton={false}
|
|
40
|
-
isOpen
|
|
41
|
-
submitButton={{
|
|
42
|
-
onClick: () => {
|
|
43
|
-
resolve(state.value)
|
|
44
|
-
hide()
|
|
45
|
-
},
|
|
46
|
-
text: 'Submit'
|
|
47
|
-
}}
|
|
48
|
-
title={title}
|
|
49
|
-
/>
|
|
50
|
-
</VuiProvider>
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
reactDomRender(containerId, promptDialog)
|
|
54
|
-
})
|
|
55
|
-
}
|