Return locality id on writing new & redirect to it after success

This commit is contained in:
ShootingStar91
2024-07-16 10:06:56 +03:00
parent 7ad8ea768b
commit 3873472479
3 changed files with 7 additions and 4 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ router.put(
return res.status(400).send({ validationErrors })
}
const result = await write(editedLocality, 'now_loc', { authorizer: 'TEST-SU', userName: 'testuser' })
return res.status(200).send(result ? { result: result } : { error: 'error' })
return res.status(200).send(result ? { id: result } : { error: 'error' })
}
)
@@ -1,4 +1,4 @@
import { useParams } from 'react-router-dom'
import { useNavigate, useParams } from 'react-router-dom'
import { useEditLocalityMutation, useGetLocalityDetailsQuery } from '../../redux/localityReducer'
import { CircularProgress } from '@mui/material'
import { DetailView, TabType } from '../DetailView/DetailView'
@@ -19,9 +19,12 @@ import { emptyLocality } from '../DetailView/common/defaultValues'
export const LocalityDetails = () => {
const { id } = useParams()
const navigate = useNavigate()
const isNew = id === 'new'
const { isLoading, isFetching, isError, data } = useGetLocalityDetailsQuery(id!, { skip: isNew })
const [editLocalityRequest] = useEditLocalityMutation()
const [editLocalityRequest, { isSuccess, data: newData }] = useEditLocalityMutation()
if (isSuccess && newData) navigate(`/locality/${newData.id}`)
if (isError) return <div>Error loading data</div>
if (isLoading || isFetching || (!data && !isNew)) return <CircularProgress />
+1 -1
View File
@@ -15,7 +15,7 @@ const localitiesApi = api.injectEndpoints({
}),
providesTags: result => (result ? [{ type: 'locality', id: result.lid }] : []),
}),
editLocality: builder.mutation<LocalityDetailsType, EditDataType<LocalityDetailsType>>({
editLocality: builder.mutation<{ id: number }, EditDataType<LocalityDetailsType>>({
query: locality => ({
url: `/locality/`,
method: 'PUT',