fix: recreate action
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
import { PageAction } from '@/config';
|
||||
import type { PageActionType } from '@/config/types';
|
||||
import useBodyScroll from '@/hooks/use-body-scroll';
|
||||
import { useIntl } from '@umijs/max';
|
||||
import { useState } from 'react';
|
||||
import type { ListItem } from '../config/types';
|
||||
|
||||
const useCreateInstance = () => {
|
||||
const intl = useIntl();
|
||||
const { saveScrollHeight, restoreScrollHeight } = useBodyScroll();
|
||||
const [openModalStatus, setOpenModalStatus] = useState<{
|
||||
action: PageActionType;
|
||||
open: boolean;
|
||||
title: string;
|
||||
currentData?: ListItem | null;
|
||||
width?: number | string;
|
||||
realAction?: string;
|
||||
}>({
|
||||
action: PageAction.CREATE,
|
||||
title: '',
|
||||
open: false,
|
||||
width: undefined,
|
||||
currentData: null,
|
||||
realAction: undefined
|
||||
});
|
||||
|
||||
const openModal = (
|
||||
action: PageActionType,
|
||||
title: string,
|
||||
currentData?: ListItem | null,
|
||||
width?: number | string,
|
||||
realAction?: string
|
||||
) => {
|
||||
setOpenModalStatus({
|
||||
action,
|
||||
title,
|
||||
open: true,
|
||||
currentData,
|
||||
width,
|
||||
realAction
|
||||
});
|
||||
saveScrollHeight();
|
||||
};
|
||||
|
||||
const openCreateInstanceModal = () => {
|
||||
openModal(
|
||||
PageAction.CREATE,
|
||||
intl.formatMessage({ id: 'gpuservice.instance.add' }),
|
||||
null,
|
||||
'calc(100vw - 220px)'
|
||||
);
|
||||
};
|
||||
|
||||
const openEditInstanceModal = (row: ListItem) => {
|
||||
openModal(
|
||||
PageAction.EDIT,
|
||||
intl.formatMessage({ id: 'gpuservice.instance.edit' }),
|
||||
row,
|
||||
600
|
||||
);
|
||||
};
|
||||
|
||||
const openViewInstanceModal = (row: ListItem) => {
|
||||
openModal(
|
||||
PageAction.VIEW,
|
||||
intl.formatMessage({ id: 'common.button.view' }),
|
||||
row,
|
||||
600
|
||||
);
|
||||
};
|
||||
|
||||
const openRecreateInstanceModal = (row: ListItem) => {
|
||||
openModal(
|
||||
PageAction.EDIT,
|
||||
intl.formatMessage({ id: 'common.button.recreate' }),
|
||||
row,
|
||||
'calc(100vw - 220px)',
|
||||
PageAction.CREATE
|
||||
);
|
||||
};
|
||||
|
||||
const closeModal = () => {
|
||||
setOpenModalStatus({
|
||||
...openModalStatus,
|
||||
title: '',
|
||||
open: false,
|
||||
currentData: null,
|
||||
realAction: undefined
|
||||
});
|
||||
restoreScrollHeight();
|
||||
};
|
||||
|
||||
return {
|
||||
openInstanceModalStatus: openModalStatus,
|
||||
setOpenInstanceModalStatus: setOpenModalStatus,
|
||||
openInstanceModal: openModal,
|
||||
openCreateInstanceModal,
|
||||
openEditInstanceModal,
|
||||
openViewInstanceModal,
|
||||
openRecreateInstanceModal,
|
||||
closeInstanceModal: closeModal
|
||||
};
|
||||
};
|
||||
|
||||
export default useCreateInstance;
|
||||
Reference in New Issue
Block a user