diff --git a/client/src/App.tsx b/client/src/App.tsx index da011ab..18cd939 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -94,6 +94,7 @@ function App() { name: "filament", list: "/filament", create: "/filament/create", + clone: "/filament/clone/:id", edit: "/filament/edit/:id", show: "/filament/show/:id", meta: { @@ -159,7 +160,14 @@ function App() { } /> - } /> + } + /> + } + /> } /> } /> diff --git a/client/src/pages/filaments/create.tsx b/client/src/pages/filaments/create.tsx index c1b7d58..842f3a3 100644 --- a/client/src/pages/filaments/create.tsx +++ b/client/src/pages/filaments/create.tsx @@ -5,8 +5,19 @@ import { Form, Input, Select, InputNumber, ColorPicker } from "antd"; import TextArea from "antd/es/input/TextArea"; import { IVendor } from "../vendors/model"; -export const FilamentCreate: React.FC = () => { - const { formProps, saveButtonProps } = useForm(); +interface CreateOrCloneProps { + mode: "create" | "clone"; +} + +export const FilamentCreate: React.FC< + IResourceComponentsProps & CreateOrCloneProps +> = (props) => { + const { formProps, saveButtonProps, formLoading } = useForm(); + + if (props.mode === "clone" && formProps.initialValues) { + // Fix the filament_id + formProps.initialValues.vendor_id = formProps.initialValues.vendor.id; + } const { selectProps } = useSelect({ resource: "vendor", @@ -14,7 +25,11 @@ export const FilamentCreate: React.FC = () => { }); return ( - +
= () => { dataIndex="actions" render={(_, record: BaseRecord) => ( - - + + + )} /> diff --git a/client/src/pages/spools/create.tsx b/client/src/pages/spools/create.tsx index 1e7d5a1..f3c7224 100644 --- a/client/src/pages/spools/create.tsx +++ b/client/src/pages/spools/create.tsx @@ -12,7 +12,7 @@ interface CreateOrCloneProps { export const SpoolCreate: React.FC< IResourceComponentsProps & CreateOrCloneProps -> = (props: IResourceComponentsProps & CreateOrCloneProps) => { +> = (props) => { const { formProps, saveButtonProps, formLoading } = useForm(); if (props.mode === "clone" && formProps.initialValues) { diff --git a/client/src/pages/spools/list.tsx b/client/src/pages/spools/list.tsx index d9c742c..9cc622d 100644 --- a/client/src/pages/spools/list.tsx +++ b/client/src/pages/spools/list.tsx @@ -99,9 +99,24 @@ export const SpoolList: React.FC = () => { dataIndex="actions" render={(_, record: BaseRecord) => ( - - - + + + )} />