validation fixes in backend and frontend, saving still broken

This commit is contained in:
arttu
2024-06-06 18:27:46 +03:00
parent 7598d1bb8b
commit 4d2a220a29
2 changed files with 5 additions and 4 deletions
+4 -3
View File
@@ -5,6 +5,7 @@ import Prisma from '@prisma/client'
import { validateLocality } from '../../../frontend/src/validators/locality'
import { detailedDiff } from 'deep-object-diff'
import { filterFields } from './writeUtils'
import { ValidationObject } from '../../../frontend/src/validators/validator'
export const testDb = async () => {
const result = await prisma.now_loc.findMany({ select: { loc_name: true }, where: { loc_name: 'Amba East' } })
@@ -93,10 +94,10 @@ export const fixEditedLocality = (editedLocality: EditDataType<LocalityDetailsTy
export const validateEntireLocality = (editedFields: Partial<Prisma.now_loc>) => {
const keys = Object.keys(editedFields)
const errors = []
const errors: ValidationObject[] = []
for (const key of keys) {
const error = validateLocality(editedFields as EditDataType<LocalityDetailsType>, key as keyof LocalityDetailsType)
if (error !== null) errors.push(error)
if (error.error) errors.push(error)
}
return errors
}
@@ -107,7 +108,7 @@ export const processLocalityForEdit = async (editedLocality: EditDataType<Locali
const difference = detailedDiff(oldLocality!, fixedEditedLocality)
const filteredLoc = filterFields(difference.updated as EditDataType<LocalityDetailsType>, prisma.now_loc.fields)
const validationErrors = validateEntireLocality(filteredLoc)
if (validationErrors) return { validationErrors }
if (validationErrors.length > 0) return { validationErrors }
const result = await editLocality(oldLocality!.lid, difference.updated)
return { result }
}
@@ -161,7 +161,7 @@ export const EditableTextField = <T extends object>({
value={editData[field] ?? ''}
variant="outlined"
size="small"
error={error !== null}
error={!!error}
helperText={error ?? ''}
type={type ?? 'text'}
multiline={big}