dark
5 months ago
4 changed files with 153 additions and 35 deletions
-
10src/components/dialog/useDialog.tsx
-
37src/components/modal-pro/index.tsx
-
21src/components/table/Table.tsx
-
68src/components/table/style.ts
@ -0,0 +1,37 @@ |
|||||
|
import { Modal, ModalFuncProps } from 'antd' |
||||
|
import React from 'react' |
||||
|
import { HookAPI } from 'antd/es/modal/useModal' |
||||
|
import { useDialog } from '@/components/dialog' |
||||
|
|
||||
|
export interface AlterProps extends ModalFuncProps { |
||||
|
onLoad?: () => void |
||||
|
alterType: keyof HookAPI | 'dialog' |
||||
|
children: JSX.Element | React.ReactNode |
||||
|
|
||||
|
} |
||||
|
|
||||
|
const ModalPro = ({ onLoad, alterType, children, ...props }: AlterProps) => { |
||||
|
|
||||
|
const [ modal, modalHolder ] = Modal.useModal() |
||||
|
const [ dialogRef, dialog, ] = useDialog(props) |
||||
|
|
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<span onClick={() => { |
||||
|
if (onLoad) { |
||||
|
onLoad() |
||||
|
} |
||||
|
if (alterType === 'dialog') { |
||||
|
dialogRef.current?.show() |
||||
|
} else { |
||||
|
modal[alterType]?.(props) |
||||
|
} |
||||
|
}}>{children}</span> |
||||
|
{alterType !== 'dialog' && modalHolder} |
||||
|
{alterType === 'dialog' && dialog} |
||||
|
</> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
export default ModalPro |
Write
Preview
Loading…
Cancel
Save
Reference in new issue