/
index.tsx
48 lines (37 loc) · 959 Bytes
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import {
Modal as OriginModal,
IModalProps,
IModalFuncProps,
destroyFns,
} from './modal';
import confirm, {
withWarn,
withConfirm,
ModalStaticFunctions,
} from './confirm';
function modalWarn(props: IModalFuncProps) {
return confirm(withWarn(props));
}
type ModalType = typeof OriginModal &
ModalStaticFunctions & { destroyAll: () => void };
const Modal = OriginModal as ModalType;
export enum ConfirmState {
warning = 'warning',
confirm = 'confirm',
}
export type ConfrimType = keyof typeof ConfirmState;
Modal.warning = modalWarn;
Modal.warn = modalWarn;
Modal.confirm = function confirmFn(props: IModalFuncProps) {
return confirm(withConfirm(props));
};
Modal.destroyAll = function destroyAllFn() {
while (destroyFns.length) {
const close = destroyFns.pop();
if (close) {
close();
}
}
};
export { Modal };
export type { IModalFuncProps, IModalProps };