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
-
78src/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