diff --git a/src/resources/addresses/index.tsx b/src/resources/addresses/index.tsx index 8ae0f30f..b7acdcbf 100644 --- a/src/resources/addresses/index.tsx +++ b/src/resources/addresses/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Create, Edit, Show } from 'react-admin' +import { Create, Edit, Show, useRedirect } from 'react-admin' import * as constants from '../../constants' const AddressList = React.lazy(async () => await import('./AddressList')) const AddressForm = React.lazy(async () => await import('./AddressForm')) @@ -13,8 +13,15 @@ const AddressCreate = (): React.ReactElement => { } export const AddressEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - + { + redirect(`/${constants.R_ADDRESSES}/${data?.id}/show`) + } + }}> ) diff --git a/src/resources/batches/index.tsx b/src/resources/batches/index.tsx index 59719b40..c9a6de7c 100644 --- a/src/resources/batches/index.tsx +++ b/src/resources/batches/index.tsx @@ -55,8 +55,16 @@ const Actions = (): React.ReactElement => { } const BatchEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - }> + } + mutationOptions={{ + onSuccess: (data: { batchNumber: string; id: number }): void => { + redirect(`/${constants.R_BATCHES}/${data?.id}/show`) + } + }}> ) diff --git a/src/resources/destruction/index.tsx b/src/resources/destruction/index.tsx index c52505c7..b79e1140 100644 --- a/src/resources/destruction/index.tsx +++ b/src/resources/destruction/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Create, Edit } from 'react-admin' +import { Create, Edit, useRedirect } from 'react-admin' import DestructionForm from './DestructionForm' import * as constants from '../../constants' @@ -19,8 +19,15 @@ const DestructionCreate = (): React.ReactElement => { } const DestructionEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - + { + redirect(`/${constants.R_DESTRUCTION}/${data?.id}/show`) + } + }}> ) diff --git a/src/resources/dispatch/index.tsx b/src/resources/dispatch/index.tsx index 9146cb61..038c12b4 100644 --- a/src/resources/dispatch/index.tsx +++ b/src/resources/dispatch/index.tsx @@ -24,8 +24,15 @@ const DispatchCreate = (): React.ReactElement => { } export const DispatchEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - + { + redirect(`/${constants.R_DISPATCH}/${data.id}/show`) + } + }}> ) diff --git a/src/resources/items/ItemForm/ItemFormToolbar.tsx b/src/resources/items/ItemForm/ItemFormToolbar.tsx index 6d0b9e8c..ebb0aed0 100644 --- a/src/resources/items/ItemForm/ItemFormToolbar.tsx +++ b/src/resources/items/ItemForm/ItemFormToolbar.tsx @@ -37,10 +37,11 @@ interface ActionsProps { const Actions = (props: ActionsProps): React.ReactElement => { const { onSuccess, setOpenRemarks, vLocationAudits } = props - + const redirect = useRedirect() const onSuccessWithRemarksClose = (data: any): void => { onSuccess(data) setOpenRemarks(false) + redirect(`/${constants.R_RICH_ITEMS}/${data?.id}/show`) } return ( @@ -71,10 +72,11 @@ interface Props { onSave: (event: React.SyntheticEvent) => void setOpenRemarks: React.Dispatch openRemarks: boolean + isEdit: boolean } const ItemFormToolbar = (props: Props): React.ReactElement => { - const { onSuccess, onSave, openRemarks, setOpenRemarks } = props + const { onSuccess, onSave, openRemarks, setOpenRemarks, isEdit } = props const { notify } = useContext(NotificationContext) const { reset, getValues, setValue } = useFormContext() const [alwaysEnable, setAlwaysEnable] = useState(false) @@ -141,7 +143,7 @@ const ItemFormToolbar = (props: Props): React.ReactElement => { itemId ) setTimeout(() => { - if (!clone) { + if (!clone && !isEdit) { redirect(path) } }, 0) diff --git a/src/resources/items/ItemForm/index.tsx b/src/resources/items/ItemForm/index.tsx index 0f2193e2..9ebf7ff7 100644 --- a/src/resources/items/ItemForm/index.tsx +++ b/src/resources/items/ItemForm/index.tsx @@ -156,6 +156,7 @@ export default function ItemForm({ isEdit }: FormProps): React.ReactElement { openRemarks={openRemarks} setOpenRemarks={setOpenRemarks} onSave={onSave} + isEdit /> }> { const PlatformEdit = ({ name }: PropType): React.ReactElement => { const cName: string = name + const redirect = useRedirect() + return ( - + { + redirect(`/${cName}/${data?.id}/show`) + } + }}> ) diff --git a/src/resources/projects/index.tsx b/src/resources/projects/index.tsx index ddd4f499..4db180fd 100644 --- a/src/resources/projects/index.tsx +++ b/src/resources/projects/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Create, Edit } from 'react-admin' +import { Create, Edit, useRedirect } from 'react-admin' import ProjectForm from './ProjectForm' import * as constants from '../../constants' @@ -15,8 +15,15 @@ const ProjectCreate = (): React.ReactElement => { } const ProjectEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - + { + redirect(`/${constants.R_PROJECTS}/${data?.id}/show`) + } + }}> ) diff --git a/src/resources/reference-data/index.tsx b/src/resources/reference-data/index.tsx index 0ed1252b..2f11f985 100644 --- a/src/resources/reference-data/index.tsx +++ b/src/resources/reference-data/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Create, Edit } from 'react-admin' +import { Create, Edit, useRedirect } from 'react-admin' import ReferenceDataForm from './ReferenceDataForm' import * as constants from '../../constants' interface PropType { @@ -17,11 +17,16 @@ const RerferenceDataCreate = ({ name }: PropType): React.ReactElement => { export const ReferenceDataEdit = ({ name }: PropType): React.ReactElement => { const cName: string = name + const redirect = useRedirect() return ( { + redirect(`/${cName}/${data?.id}/show`) + } + }} resource={cName}> diff --git a/src/resources/users/index.tsx b/src/resources/users/index.tsx index 1c942da6..a25d266f 100644 --- a/src/resources/users/index.tsx +++ b/src/resources/users/index.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react' -import { Create, Edit, useEditContext } from 'react-admin' +import { Create, Edit, useEditContext, useRedirect } from 'react-admin' import UserForm from './UserForm' import * as constants from '../../constants' import useAudit from '../../hooks/useAudit' @@ -20,10 +20,9 @@ const UserCreate = (): React.ReactElement => { } const UserEdit = (): React.ReactElement => { - const path: string = `/${constants.R_USERS}` const audit = useAudit() const [prev, setPrev] = useState() - + const redirect = useRedirect() return ( { subjectResource: null, subjectId: null }) + redirect(`/${constants.R_USERS}/${data?.id}/show`) } }} mutationMode={constants.MUTATION_MODE} - resource={constants.R_USERS} - redirect={path}> + resource={constants.R_USERS}> ) diff --git a/src/resources/vault-locations/index.tsx b/src/resources/vault-locations/index.tsx index 029a4fd3..29c55ec9 100644 --- a/src/resources/vault-locations/index.tsx +++ b/src/resources/vault-locations/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Create, Edit } from 'react-admin' +import { Create, Edit, useRedirect } from 'react-admin' import VaultLocationForm from './VaultLocationForm' import VaultLocationList from './VaultLocationList' import ReferenceDataShow from '../reference-data/ReferenceDataShow' @@ -14,8 +14,15 @@ const VaultLocationCreate = (): React.ReactElement => { } export const VaultLocationEdit = (): React.ReactElement => { + const redirect = useRedirect() return ( - + { + redirect(`/${constants.R_VAULT_LOCATION}/${data?.id}/show`) + } + }}> )