-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathuseTidligereSamboer.ts
114 lines (101 loc) · 4.37 KB
/
useTidligereSamboer.ts
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import { ESvar } from '@navikt/familie-form-elements';
import { type ISkjema, useFelt, useSkjema } from '@navikt/familie-skjema';
import { useApp } from '../../../context/AppContext';
import useDatovelgerFeltMedUkjentForSanity from '../../../hooks/useDatovelgerFeltMedUkjentForSanity';
import useInputFelt from '../../../hooks/useInputFelt';
import useInputFeltMedUkjent from '../../../hooks/useInputFeltMedUkjent';
import useDatovelgerFeltForSanity from '../../../hooks/useSendInnSkjemaTest/useDatovelgerForSanity';
import { ITidligereSamoboereTekstinnhold } from '../../../typer/sanity/modaler/tidligereSamboere';
import { ITidligereSamboerFeltTyper } from '../../../typer/skjema';
import { dagenEtterDato, dagensDato, gårsdagensDato, stringTilDate } from '../../../utils/dato';
import { TidligereSamboerSpørsmålId } from './spørsmål';
export const useTidligereSamboer = (): {
skjema: ISkjema<ITidligereSamboerFeltTyper, string>;
validerFelterOgVisFeilmelding: () => boolean;
valideringErOk: () => boolean;
nullstillSkjema: () => void;
} => {
const { tekster } = useApp();
const teksterForSøker: ITidligereSamoboereTekstinnhold =
tekster().FELLES.modaler.tidligereSamboere.søker;
const tidligereSamboerNavn = useInputFelt({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerNavn,
svar: '',
},
feilmeldingSpråkId: 'omdeg.samboerNavn.feilmelding',
feilmelding: teksterForSøker.samboerNavn.feilmelding,
});
const tidligereSamboerFnrUkjent = useFelt<ESvar>({
feltId: TidligereSamboerSpørsmålId.tidligereSamboerFnrUkjent,
verdi: ESvar.NEI,
nullstillVedAvhengighetEndring: false,
});
const tidligereSamboerFnr = useInputFeltMedUkjent({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerFnr,
svar: '',
},
avhengighet: tidligereSamboerFnrUkjent,
feilmeldingSpråkId: 'omdeg.samboer.ident.ikkebesvart.feilmelding',
feilmelding: teksterForSøker.foedselsnummerEllerDNummer.feilmelding,
erFnrInput: true,
});
const tidligereSamboerFødselsdatoUkjent = useFelt<ESvar>({
feltId: TidligereSamboerSpørsmålId.tidligereSamboerFødselsdatoUkjent,
verdi: ESvar.NEI,
avhengigheter: { fnrUkjent: tidligereSamboerFnrUkjent },
skalFeltetVises: avhengigheter => avhengigheter.fnrUkjent.verdi === ESvar.JA,
nullstillVedAvhengighetEndring: false,
});
const tidligereSamboerFødselsdato = useDatovelgerFeltMedUkjentForSanity({
feltId: TidligereSamboerSpørsmålId.tidligereSamboerFødselsdato,
initiellVerdi: '',
vetIkkeCheckbox: tidligereSamboerFødselsdatoUkjent,
feilmelding: teksterForSøker.foedselsdato.feilmelding,
skalFeltetVises: tidligereSamboerFnrUkjent.verdi === ESvar.JA,
});
const tidligereSamboerFraDato = useDatovelgerFeltForSanity({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerFraDato,
svar: '',
},
skalFeltetVises: true,
feilmelding: teksterForSøker.startdato.feilmelding,
sluttdatoAvgrensning: gårsdagensDato(),
nullstillVedAvhengighetEndring: false,
});
const tidligereSamboerTilDato = useDatovelgerFeltForSanity({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerTilDato,
svar: '',
},
skalFeltetVises: true,
feilmelding: teksterForSøker.sluttdato.feilmelding,
sluttdatoAvgrensning: dagensDato(),
startdatoAvgrensning: dagenEtterDato(stringTilDate(tidligereSamboerFraDato.verdi)),
avhengigheter: { tidligereSamboerFraDato },
nullstillVedAvhengighetEndring: false,
});
const { skjema, kanSendeSkjema, valideringErOk, nullstillSkjema } = useSkjema<
ITidligereSamboerFeltTyper,
string
>({
felter: {
tidligereSamboerNavn,
tidligereSamboerFnr,
tidligereSamboerFnrUkjent,
tidligereSamboerFødselsdato,
tidligereSamboerFødselsdatoUkjent,
tidligereSamboerFraDato,
tidligereSamboerTilDato,
},
skjemanavn: 'tidligereSamboer',
});
return {
skjema,
validerFelterOgVisFeilmelding: kanSendeSkjema,
valideringErOk,
nullstillSkjema,
};
};