Files
certd/packages/ui/certd-client/src/use/use-dialog.ts
T

47 lines
1.1 KiB
TypeScript

import { useFormWrapper } from "@fast-crud/fast-crud";
export type FormOptionReq = {
title: string;
columns?: any;
onSubmit?: any;
body?: any;
initialForm?: any;
zIndex?: number;
};
export function useFormDialog() {
const { openCrudFormDialog } = useFormWrapper();
async function openFormDialog(req: FormOptionReq) {
function createCrudOptions() {
return {
crudOptions: {
columns: req.columns,
form: {
initialForm: req.initialForm,
wrapper: {
zIndex: req.zIndex,
title: req.title,
saveRemind: false,
slots: {
"form-body-top": req.body,
},
},
async afterSubmit() {},
async doSubmit({ form }: any) {
if (req.onSubmit) {
await req.onSubmit(form);
}
},
},
},
};
}
const { crudOptions } = createCrudOptions();
await openCrudFormDialog({ crudOptions });
}
return {
openFormDialog,
};
}