mirror of
https://github.com/nowcommunity/nowdatabase.git
synced 2026-10-12 19:13:52 +03:00
Add param to validator if creating new or editing old
This commit is contained in:
@@ -63,7 +63,7 @@ export type DetailContextType<T> = {
|
||||
disabled?: boolean
|
||||
) => JSX.Element
|
||||
radioSelection: (field: keyof EditDataType<T>, options: Array<DropdownOption | string>, name: string) => JSX.Element
|
||||
validator: (editData: EditDataType<T>, field: keyof EditDataType<T>) => ValidationObject
|
||||
validator: (editData: EditDataType<T>, field: keyof EditDataType<T>, isNew: boolean) => ValidationObject
|
||||
}
|
||||
|
||||
export const DetailContext = createContext<DetailContextType<unknown>>(null!)
|
||||
@@ -90,7 +90,7 @@ export const DetailContextProvider = <T extends object>({
|
||||
editData,
|
||||
setEditData: (data: unknown) => setEditData(data as EditDataType<T>),
|
||||
validator: (editData: unknown, fieldName: keyof EditDataType<T>) =>
|
||||
contextState.validator(editData as EditDataType<T>, fieldName),
|
||||
contextState.validator(editData as EditDataType<T>, fieldName, !contextState.mode.new),
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
|
||||
@@ -3,12 +3,15 @@ import { Validators, validator } from './validator'
|
||||
|
||||
export const validateLocality = (
|
||||
editData: EditDataType<LocalityDetailsType>,
|
||||
fieldName: keyof EditDataType<LocalityDetailsType>
|
||||
fieldName: keyof EditDataType<LocalityDetailsType>,
|
||||
isNew: boolean
|
||||
) => {
|
||||
const validators: Validators<Partial<EditDataType<LocalityDetailsType>>> = {
|
||||
max_age: {
|
||||
name: 'Age (max)',
|
||||
asNumber: (num: number) => {
|
||||
// eslint-disable-next-line no-console
|
||||
if (isNew) console.log('Is new') // TODO remove
|
||||
if (editData.min_age && num < editData.min_age) return 'Max value cannot be lower than min'
|
||||
return
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user