-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsynonym.ts
More file actions
31 lines (29 loc) · 1.07 KB
/
Copy pathsynonym.ts
File metadata and controls
31 lines (29 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { EditDataType, SpeciesSynonym } from '../types'
import { Validators, validator } from './validator'
export const validateSynonym = (
editData: EditDataType<SpeciesSynonym>,
fieldName: keyof EditDataType<SpeciesSynonym>
) => {
const validators: Validators<Partial<EditDataType<SpeciesSynonym>>> = {
syn_genus_name: {
name: 'Synonym genus name',
required: true,
asString: (synGenusName: string) => {
if (synGenusName.indexOf(' ') !== -1) return 'Genus must not contain any spaces.'
return
},
},
syn_species_name: {
name: 'Synonym species name',
required: true,
asString: (synSpeciesName: string) => {
if (synSpeciesName !== 'indet.' && editData.syn_genus_name === 'indet.')
return 'when the Genus is indet., Species must also be indet.'
if (synSpeciesName !== 'sp.' && editData.syn_genus_name === 'gen.')
return 'when the Genus is gen., Species must be sp.'
return
},
},
}
return validator<EditDataType<SpeciesSynonym>>(validators, editData, fieldName)
}