Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/legger til sanity tekster i samboer komponenter #1522

Merged
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export const LeggTilKnappForSanity: React.FC<Props> = ({
)}
<StyledButton
id={id}
data-testid={id}
variant={'tertiary'}
type={'button'}
onClick={onClick}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ describe('LeggTilSamboerModal', () => {
it('Viser riktige feilmeldinger ved ingen utfylte felt av tidligere samboer', async () => {
spyOnUseApp(søknad);

const { getByText, getByTestId, findByTestId } = render(
const { getByTestId, findByTestId } = render(
<TestProvidereMedEkteTekster mocketNettleserHistorikk={['/din-livssituasjon']}>
<DinLivssituasjon />
</TestProvidereMedEkteTekster>
Expand All @@ -63,7 +63,7 @@ describe('LeggTilSamboerModal', () => {
expect(jaKnapp).toBeDefined();
act(() => jaKnapp!.click());

const leggTilSamboerKnapp: HTMLElement = getByText('Legg til samboer');
const leggTilSamboerKnapp = getByTestId('hatt-annen-samboer-i-perioden-søker');
act(() => leggTilSamboerKnapp.click());

const gåVidereKnapp = getByTestId('submit-knapp-i-modal');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,53 +1,75 @@
import React, { ReactNode } from 'react';
import React from 'react';

import { TrashFillIcon } from '@navikt/aksel-icons';
import { Button, FormSummary } from '@navikt/ds-react';

import { useApp } from '../../../context/AppContext';
import { AlternativtSvarForInput } from '../../../typer/common';
import { ITidligereSamboer } from '../../../typer/person';
import { ITidligereSamoboereTekstinnhold } from '../../../typer/sanity/modaler/tidligereSamboere';
import { formaterDato } from '../../../utils/dato';
import SpråkTekst from '../../Felleskomponenter/SpråkTekst/SpråkTekst';
import TekstBlock from '../../Felleskomponenter/Sanity/TekstBlock';
import { OppsummeringFelt } from '../Oppsummering/OppsummeringFelt';

import { samboerSpråkIder } from './spørsmål';

const SamboerOpplysninger: React.FC<{
samboer: ITidligereSamboer;
fjernTidligereSamboer: (samboer: ITidligereSamboer) => void;
}> = ({ samboer, fjernTidligereSamboer }) => {
const svarSomKanVæreUkjent = (svar: string, språkIdForUkjent: string): ReactNode =>
svar === AlternativtSvarForInput.UKJENT ? <SpråkTekst id={språkIdForUkjent} /> : svar;
const { tekster } = useApp();

const teksterForModal: ITidligereSamoboereTekstinnhold =
tekster().FELLES.modaler.tidligereSamboere.søker;

return (
<FormSummary.Answer>
<FormSummary.Value>
<FormSummary.Answers>
<OppsummeringFelt tittel={samboer.navn.svar.toUpperCase()} />
<OppsummeringFelt tittel={<SpråkTekst id={samboerSpråkIder.fnr} />}>
{svarSomKanVæreUkjent(samboer.ident.svar, samboerSpråkIder.fnrUkjent)}
<OppsummeringFelt
tittel={
<TekstBlock
block={teksterForModal.foedselsnummerEllerDNummer.sporsmal}
/>
}
>
{samboer.ident.svar === AlternativtSvarForInput.UKJENT ? (
<TekstBlock
block={teksterForModal.foedselsnummerEllerDNummer.checkboxLabel}
/>
) : (
samboer.ident.svar
)}
</OppsummeringFelt>
{samboer.fødselsdato.svar && (
<OppsummeringFelt tittel={<SpråkTekst id={samboerSpråkIder.fødselsdato} />}>
<OppsummeringFelt
tittel={<TekstBlock block={teksterForModal.foedselsdato.sporsmal} />}
>
{samboer.fødselsdato.svar === AlternativtSvarForInput.UKJENT ? (
<SpråkTekst id={samboerSpråkIder.fødselsdatoUkjent} />
<TekstBlock block={teksterForModal.foedselsdato.checkboxLabel} />
) : (
formaterDato(samboer.fødselsdato.svar)
)}
</OppsummeringFelt>
)}
<OppsummeringFelt tittel={<SpråkTekst id={samboerSpråkIder.samboerFraDato} />}>
<OppsummeringFelt
tittel={<TekstBlock block={teksterForModal.startdato.sporsmal} />}
>
{formaterDato(samboer.samboerFraDato.svar)}
</OppsummeringFelt>
<OppsummeringFelt tittel={<SpråkTekst id={samboerSpråkIder.samboerTilDato} />}>
{formaterDato(samboer.samboerTilDato.svar)}
<OppsummeringFelt
tittel={<TekstBlock block={teksterForModal.sluttdato.sporsmal} />}
>
<div data-testid={samboer.samboerTilDato.id}>
{formaterDato(samboer.samboerTilDato.svar)}
</div>
</OppsummeringFelt>
<Button
type={'button'}
variant={'tertiary'}
onClick={() => fjernTidligereSamboer(samboer)}
icon={<TrashFillIcon aria-hidden />}
>
<SpråkTekst id={'omdeg.fjernsamboer.knapp'} />
<TekstBlock block={teksterForModal.fjernKnapp} />
</Button>
</FormSummary.Answers>
</FormSummary.Value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import React from 'react';
import { ESvar } from '@navikt/familie-form-elements';
import type { Felt, ISkjema } from '@navikt/familie-skjema';

import { useApp } from '../../../context/AppContext';
import { DatoMedUkjent, ISODateString } from '../../../typer/common';
import { ITidligereSamoboereTekstinnhold } from '../../../typer/sanity/modaler/tidligereSamboere';
import { IDinLivssituasjonFeltTyper, ITidligereSamboerFeltTyper } from '../../../typer/skjema';
import { dagensDato, gårsdagensDato } from '../../../utils/dato';
import Datovelger from '../../Felleskomponenter/Datovelger/Datovelger';
import { SkjemaCheckbox } from '../../Felleskomponenter/SkjemaCheckbox/SkjemaCheckbox';
import { SkjemaFeltInput } from '../../Felleskomponenter/SkjemaFeltInput/SkjemaFeltInput';
import SpråkTekst from '../../Felleskomponenter/SpråkTekst/SpråkTekst';

import { samboerSpråkIder } from './spørsmål';
import TekstBlock from '../../Felleskomponenter/Sanity/TekstBlock';
import { SkjemaCheckboxForSanity } from '../../Felleskomponenter/SkjemaCheckbox/SkjemaCheckboxForSanity';
import { SkjemaFeltInputForSanity } from '../../Felleskomponenter/SkjemaFeltInput/SkjemaFeltInputForSanity';

const SamboerSkjema: React.FC<{
skjema: ISkjema<IDinLivssituasjonFeltTyper | ITidligereSamboerFeltTyper, string>;
Expand All @@ -26,22 +26,33 @@ const SamboerSkjema: React.FC<{
};
erIModal?: boolean;
}> = ({ skjema, samboerFelter, erIModal = false }) => {
const { tekster } = useApp();

const teksterForModal: ITidligereSamoboereTekstinnhold =
tekster().FELLES.modaler.tidligereSamboere.søker;

return (
<>
<SkjemaFeltInput
<SkjemaFeltInputForSanity
felt={samboerFelter.navn}
visFeilmeldinger={skjema.visFeilmeldinger}
labelSpråkTekstId={samboerSpråkIder.navn}
label={<TekstBlock block={teksterForModal.samboerNavn.sporsmal} />}
/>
<div>
<SkjemaFeltInput
<SkjemaFeltInputForSanity
felt={samboerFelter.fnr}
visFeilmeldinger={skjema.visFeilmeldinger}
labelSpråkTekstId={samboerSpråkIder.fnr}
label={
<TekstBlock block={teksterForModal.foedselsnummerEllerDNummer.sporsmal} />
}
disabled={samboerFelter.fnrUkjent.verdi === ESvar.JA}
/>
<SkjemaCheckbox
labelSpråkTekstId={samboerSpråkIder.fnrUkjent}
<SkjemaCheckboxForSanity
label={
<TekstBlock
block={teksterForModal.foedselsnummerEllerDNummer.checkboxLabel}
/>
}
felt={samboerFelter.fnrUkjent}
/>
</div>
Expand All @@ -50,29 +61,29 @@ const SamboerSkjema: React.FC<{
<Datovelger
skjema={skjema}
felt={samboerFelter.fødselsdato}
label={<SpråkTekst id={samboerSpråkIder.fødselsdato} />}
label={<TekstBlock block={teksterForModal.foedselsdato.sporsmal} />}
avgrensMaxDato={dagensDato()}
disabled={samboerFelter.fødselsdatoUkjent.verdi === ESvar.JA}
strategy={erIModal ? 'absolute' : 'fixed'}
/>
<SkjemaCheckbox
labelSpråkTekstId={samboerSpråkIder.fødselsdatoUkjent}
<SkjemaCheckboxForSanity
label={<TekstBlock block={teksterForModal.foedselsdato.checkboxLabel} />}
felt={samboerFelter.fødselsdatoUkjent}
/>
</div>
)}
<Datovelger
skjema={skjema}
felt={samboerFelter.samboerFraDato}
label={<SpråkTekst id={samboerSpråkIder.samboerFraDato} />}
label={<TekstBlock block={teksterForModal.startdato.sporsmal} />}
avgrensMaxDato={samboerFelter.samboerTilDato ? gårsdagensDato() : dagensDato()}
strategy={erIModal ? 'absolute' : 'fixed'}
/>
{samboerFelter.samboerTilDato && (
<Datovelger
skjema={skjema}
felt={samboerFelter.samboerTilDato}
label={<SpråkTekst id={samboerSpråkIder.samboerTilDato} />}
label={<TekstBlock block={teksterForModal.sluttdato.sporsmal} />}
tilhørendeFraOgMedFelt={samboerFelter.samboerFraDato}
avgrensDatoFremITid={true}
strategy={erIModal ? 'absolute' : 'fixed'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@ import { ISøknad } from '../../../typer/søknad';
import { silenceConsoleErrors, spyOnUseApp, TestProvidere } from '../../../utils/testing';

import DinLivssituasjon from './DinLivssituasjon';
import {
DinLivssituasjonSpørsmålId,
samboerSpråkIder,
TidligereSamboerSpørsmålId,
} from './spørsmål';
import { DinLivssituasjonSpørsmålId, TidligereSamboerSpørsmålId } from './spørsmål';

jest.mock('react-router', () => ({
...(jest.requireActual('react-router') as object),
Expand Down Expand Up @@ -62,12 +58,12 @@ describe('TidligereSamboere', () => {
it('"Når ble samboerforholdet avsluttet?" skal ikke vises dersom man ikke har tidligere samboere', () => {
spyOnUseApp(søknad);

const { queryByText } = render(
const { queryByTestId } = render(
<TestProvidere>
<DinLivssituasjon />
</TestProvidere>
);
const result = queryByText(samboerSpråkIder.samboerTilDato);
const result = queryByTestId('utvidet-tidligere-samboer-samboerTilDato');
expect(result).not.toBeInTheDocument();
});

Expand Down Expand Up @@ -113,12 +109,12 @@ describe('TidligereSamboere', () => {
},
});

const { queryByText } = render(
const { getByTestId } = render(
<TestProvidere>
<DinLivssituasjon />
</TestProvidere>
);
const result = queryByText(samboerSpråkIder.samboerTilDato);
const result = getByTestId('utvidet-tidligere-samboer-samboerTilDato');
expect(result).toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import { genererPeriodeId } from '../../../utils/perioder';
import { uppercaseFørsteBokstav } from '../../../utils/visning';
import JaNeiSpmForSanity from '../../Felleskomponenter/JaNeiSpm/JaNeiSpmForSanity';
import KomponentGruppe from '../../Felleskomponenter/KomponentGruppe/KomponentGruppe';
import { LeggTilKnapp } from '../../Felleskomponenter/LeggTilKnapp/LeggTilKnapp';
import { LeggTilKnappForSanity } from '../../Felleskomponenter/LeggTilKnapp/LeggTilKnappForSanity';
import PerioderContainer from '../../Felleskomponenter/PerioderContainer';
import TekstBlock from '../../Felleskomponenter/Sanity/TekstBlock';
import useModal from '../../Felleskomponenter/SkjemaModal/useModal';

import { IDinLivssituasjonTekstinnhold } from './innholdTyper';
Expand Down Expand Up @@ -47,7 +48,7 @@ const TidligereSamboere: React.FC<Props> = ({

const teksterForModal: ITidligereSamoboereTekstinnhold =
tekster().FELLES.modaler.tidligereSamboere.søker;
const { flerePerioder, leggTilPeriodeForklaring } = teksterForModal;
const { flerePerioder, leggTilKnapp, leggTilPeriodeForklaring } = teksterForModal;

const teksterForDinLivssituasjon: IDinLivssituasjonTekstinnhold = tekster().DIN_LIVSSITUASJON;
const { hattAnnenSamboerForSoektPeriode } = teksterForDinLivssituasjon;
Expand All @@ -74,8 +75,7 @@ const TidligereSamboere: React.FC<Props> = ({
fjernTidligereSamboer={fjernTidligereSamboer}
/>
))}
<LeggTilKnapp
språkTekst="omdeg.leggtilfleresamboere.leggtil"
<LeggTilKnappForSanity
leggTilFlereTekst={
toggles.NYE_MODAL_TEKSTER &&
tidligereSamboere.verdi.length > 0 &&
Expand All @@ -91,7 +91,9 @@ const TidligereSamboere: React.FC<Props> = ({
skjema.visFeilmeldinger &&
tidligereSamboere.feilmelding
}
/>
>
<TekstBlock block={leggTilKnapp} />
</LeggTilKnappForSanity>
{erLeggTilSamboerModalÅpen && (
<LeggTilSamboerModal
leggTilTidligereSamboer={leggTilTidligereSamboer}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { ESvar } from '@navikt/familie-form-elements';
import { type ISkjema, useFelt, useSkjema } from '@navikt/familie-skjema';

import useDatovelgerFelt from '../../../hooks/useDatovelgerFelt';
import useDatovelgerFeltMedUkjent from '../../../hooks/useDatovelgerFeltMedUkjent';
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';

Expand All @@ -16,12 +18,18 @@ export const useTidligereSamboer = (): {
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>({
Expand All @@ -37,6 +45,7 @@ export const useTidligereSamboer = (): {
},
avhengighet: tidligereSamboerFnrUkjent,
feilmeldingSpråkId: 'omdeg.samboer.ident.ikkebesvart.feilmelding',
feilmelding: teksterForSøker.foedselsnummerEllerDNummer.feilmelding,
erFnrInput: true,
});

Expand All @@ -48,31 +57,32 @@ export const useTidligereSamboer = (): {
nullstillVedAvhengighetEndring: false,
});

const tidligereSamboerFødselsdato = useDatovelgerFeltMedUkjent({
const tidligereSamboerFødselsdato = useDatovelgerFeltMedUkjentForSanity({
feltId: TidligereSamboerSpørsmålId.tidligereSamboerFødselsdato,
initiellVerdi: '',
vetIkkeCheckbox: tidligereSamboerFødselsdatoUkjent,
feilmeldingSpråkId: 'omdeg.nåværendesamboer.fødselsdato.ukjent',
feilmelding: teksterForSøker.foedselsdato.feilmelding,
skalFeltetVises: tidligereSamboerFnrUkjent.verdi === ESvar.JA,
});

const tidligereSamboerFraDato = useDatovelgerFelt({
const tidligereSamboerFraDato = useDatovelgerFeltForSanity({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerFraDato,
svar: '',
},
skalFeltetVises: true,
feilmeldingSpråkId: 'omdeg.nårstartetsamboerforhold.feilmelding',
feilmelding: teksterForSøker.startdato.feilmelding,
sluttdatoAvgrensning: gårsdagensDato(),
nullstillVedAvhengighetEndring: false,
});

const tidligereSamboerTilDato = useDatovelgerFelt({
const tidligereSamboerTilDato = useDatovelgerFeltForSanity({
søknadsfelt: {
id: TidligereSamboerSpørsmålId.tidligereSamboerTilDato,
svar: '',
},
skalFeltetVises: true,
feilmeldingSpråkId: 'omdeg.nårsamboerforholdavsluttet.feilmelding',
feilmelding: teksterForSøker.sluttdato.feilmelding,
sluttdatoAvgrensning: dagensDato(),
startdatoAvgrensning: dagenEtterDato(stringTilDate(tidligereSamboerFraDato.verdi)),
avhengigheter: { tidligereSamboerFraDato },
Expand Down
9 changes: 8 additions & 1 deletion src/frontend/typer/sanity/modaler/tidligereSamboere.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
import { LocaleRecordBlock, LocaleRecordString } from '../sanity';
import { ISanitySpørsmålDokument, LocaleRecordBlock, LocaleRecordString } from '../sanity';

export interface ITidligereSamoboereTekstinnhold {
tittel: LocaleRecordBlock;
oppsummeringstittel: LocaleRecordBlock;
leggTilPeriodeForklaring: LocaleRecordString;
flerePerioder: LocaleRecordString;
leggTilKnapp: LocaleRecordBlock;
leggTilFeilmelding: LocaleRecordBlock;
fjernKnapp: LocaleRecordBlock;
samboerNavn: ISanitySpørsmålDokument;
foedselsnummerEllerDNummer: ISanitySpørsmålDokument;
foedselsdato: ISanitySpørsmålDokument;
startdato: ISanitySpørsmålDokument;
sluttdato: ISanitySpørsmålDokument;
}
Loading
Loading