Skip to content

Commit d755b52

Browse files
♻️ Bruker hjelpefunksjon for å formatere til norske datoer
Co-authored-by: Martin Solheim <[email protected]>
1 parent 9af7707 commit d755b52

File tree

18 files changed

+59
-106
lines changed

18 files changed

+59
-106
lines changed

src/components/endringslogg/EndringsloggInntekt.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import dayjs from 'dayjs';
21
import React, { ReactElement } from 'react';
32

43
import { BodyShort, Heading, Modal, Table } from '@navikt/ds-react';
54

65
import { sortTimestampDesc } from '@components/endringslogg/endringsloggUtils';
76
import { Inntektoverstyring } from '@io/graphql';
8-
import { NORSK_DATOFORMAT, getFormattedDateString } from '@utils/date';
7+
import { getFormattedDateString, somNorskDato } from '@utils/date';
98
import { somPenger } from '@utils/locale';
109

1110
import styles from './Endringslogg.module.css';
@@ -47,7 +46,7 @@ export const EndringsloggInntekt = ({ endringer, onClose, showModal }: Endringsl
4746
.sort((a, b) => sortTimestampDesc(a.timestamp, b.timestamp))
4847
.map((endring, i) => (
4948
<Table.Row key={i}>
50-
<Table.DataCell>{dayjs(endring.timestamp).format(NORSK_DATOFORMAT)}</Table.DataCell>
49+
<Table.DataCell>{somNorskDato(endring.timestamp)}</Table.DataCell>
5150
<Table.DataCell>
5251
<span className={styles.PreviousValue}>
5352
{somPenger(endring.inntekt.fraManedligInntekt)}

src/components/endringslogg/EndringsloggSykepengegrunnlagskjønnsfastsetting.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import dayjs from 'dayjs';
21
import React, { ReactElement } from 'react';
32

43
import { BodyShort, Heading, Modal, Table } from '@navikt/ds-react';
@@ -7,7 +6,7 @@ import { AnonymizableTextWithEllipsis } from '@components/anonymizable/Anonymiza
76
import { sortTimestampDesc } from '@components/endringslogg/endringsloggUtils';
87
import { getSkjønnsfastsettelseTypeTekst } from '@saksbilde/historikk/hendelser/SykepengegrunnlagSkjønnsfastsatthendelse';
98
import { SykepengegrunnlagskjonnsfastsettingMedArbeidsgivernavn } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/SkjønnsfastsettingHeader';
10-
import { NORSK_DATOFORMAT, getFormattedDateString } from '@utils/date';
9+
import { getFormattedDateString, somNorskDato } from '@utils/date';
1110
import { capitalizeArbeidsgiver, somPenger } from '@utils/locale';
1211

1312
import styles from './Endringslogg.module.css';
@@ -54,7 +53,7 @@ export const EndringsloggSykepengegrunnlagskjønnsfastsetting = ({
5453
.sort((a, b) => sortTimestampDesc(a.timestamp, b.timestamp))
5554
.map((endring, i) => (
5655
<Table.Row key={i}>
57-
<Table.DataCell>{dayjs(endring.timestamp).format(NORSK_DATOFORMAT)}</Table.DataCell>
56+
<Table.DataCell>{somNorskDato(endring.timestamp)}</Table.DataCell>
5857
<Table.DataCell>
5958
<AnonymizableTextWithEllipsis>
6059
{capitalizeArbeidsgiver(endring.arbeidsgivernavn)}

src/routes/saksbilde/annullering/Annulleringsinformasjon.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import dayjs from 'dayjs';
21
import React, { ReactElement } from 'react';
32

43
import { BodyShort } from '@navikt/ds-react';
54

65
import { Maybe, PersonFragment } from '@io/graphql';
7-
import { NORSK_DATOFORMAT } from '@utils/date';
6+
import { somNorskDato } from '@utils/date';
87
import { somPenger } from '@utils/locale';
98

109
import { useTotaltUtbetaltForSykefraværstilfellet } from './annullering';
@@ -22,8 +21,8 @@ export const Annulleringsinformasjon = ({ person }: { person: PersonFragment }):
2221
<ul>
2322
<li>
2423
<BodyShort>
25-
{førsteUtbetalingsdag !== undefined && dayjs(førsteUtbetalingsdag).format(NORSK_DATOFORMAT)} -{' '}
26-
{sisteUtbetalingsdag !== undefined && dayjs(sisteUtbetalingsdag).format(NORSK_DATOFORMAT)}
24+
{førsteUtbetalingsdag !== undefined && somNorskDato(førsteUtbetalingsdag)} -{' '}
25+
{sisteUtbetalingsdag !== undefined && somNorskDato(sisteUtbetalingsdag)}
2726
{totalbeløp ? ` - ${somPenger(totalbeløp)}` : null}
2827
</BodyShort>
2928
</li>

src/routes/saksbilde/historikk/hendelser/ArbeidstidVurderthendelse.tsx

+3-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import dayjs from 'dayjs';
21
import React, { ReactElement } from 'react';
32

43
import { BodyShort } from '@navikt/ds-react';
@@ -8,7 +7,7 @@ import { HistorikkKildeSaksbehandlerIkon } from '@saksbilde/historikk/komponente
87
import { HistorikkSection } from '@saksbilde/historikk/komponenter/HistorikkSection';
98
import { Historikkhendelse } from '@saksbilde/historikk/komponenter/Historikkhendelse';
109
import { MinimumSykdomsgradhendelseObject } from '@typer/historikk';
11-
import { NORSK_DATOFORMAT } from '@utils/date';
10+
import { somNorskDato } from '@utils/date';
1211

1312
type ArbeidstidVurderthendelseProps = Omit<MinimumSykdomsgradhendelseObject, 'type' | 'id'>;
1413

@@ -28,10 +27,7 @@ export const ArbeidstidVurderthendelse = ({
2827
<HistorikkSection tittel="Innvilgede perioder">
2928
<BodyShort>
3029
{minimumSykdomsgrad.perioderVurdertOk
31-
.map(
32-
(periode) =>
33-
`${dayjs(periode.fom).format(NORSK_DATOFORMAT)}${dayjs(periode.tom).format(NORSK_DATOFORMAT)}`,
34-
)
30+
.map((periode) => `${somNorskDato(periode.fom)}${somNorskDato(periode.tom)}`)
3531
.join(', ')
3632
.replace(/,(?=[^,]*$)/, ' og')}
3733
</BodyShort>
@@ -41,10 +37,7 @@ export const ArbeidstidVurderthendelse = ({
4137
<HistorikkSection tittel="Avslåtte perioder">
4238
<BodyShort>
4339
{minimumSykdomsgrad.perioderVurdertIkkeOk
44-
.map(
45-
(periode) =>
46-
`${dayjs(periode.fom).format(NORSK_DATOFORMAT)}${dayjs(periode.tom).format(NORSK_DATOFORMAT)}`,
47-
)
40+
.map((periode) => `${somNorskDato(periode.fom)}${somNorskDato(periode.tom)}`)
4841
.join(', ')
4942
.replace(/,(?=[^,]*$)/, ' og')}
5043
</BodyShort>

src/routes/saksbilde/historikk/hendelser/Inntektoverstyringhendelse.tsx

+3-7
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { HistorikkKildeSaksbehandlerIkon } from '@saksbilde/historikk/komponente
1212
import { HistorikkSection } from '@saksbilde/historikk/komponenter/HistorikkSection';
1313
import { Historikkhendelse } from '@saksbilde/historikk/komponenter/Historikkhendelse';
1414
import { InntektoverstyringhendelseObject } from '@typer/historikk';
15-
import { ISO_DATOFORMAT, NORSK_DATOFORMAT, getFormattedDateString } from '@utils/date';
15+
import { ISO_DATOFORMAT, NORSK_DATOFORMAT, getFormattedDateString, somNorskDato } from '@utils/date';
1616
import { somPenger } from '@utils/locale';
1717

1818
import styles from './Inntektoverstyringhendelse.module.css';
@@ -118,12 +118,8 @@ export const Inntektoverstyringhendelse = ({
118118
className={styles.gridfullwidth}
119119
key={`${refusjonsopplysning?.fom}${index}`}
120120
>
121-
{dayjs(refusjonsopplysning.fom, ISO_DATOFORMAT).format(NORSK_DATOFORMAT)}-
122-
{dayjs(refusjonsopplysning?.tom, ISO_DATOFORMAT).isValid()
123-
? (dayjs(refusjonsopplysning?.tom, ISO_DATOFORMAT).format(
124-
NORSK_DATOFORMAT,
125-
) ?? '')
126-
: ' '}
121+
{somNorskDato(refusjonsopplysning.fom)}-
122+
{somNorskDato(refusjonsopplysning?.tom ?? undefined) ?? ' '}
127123
{': '}
128124
{refusjonsopplysning.belop}
129125
</BodyShort>
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import dayjs from 'dayjs';
21
import React, { ReactElement } from 'react';
32

43
import { Maybe } from '@io/graphql';
5-
import { ISO_DATOFORMAT, NORSK_DATOFORMAT } from '@utils/date';
4+
import { somNorskDato } from '@utils/date';
65

76
import { DokumentFragment } from './DokumentFragment';
87

@@ -13,9 +12,5 @@ type BestemmendeFraværsdagProps = {
1312
export const BestemmendeFraværsdag = ({ førsteFraværsdag }: BestemmendeFraværsdagProps): Maybe<ReactElement> => {
1413
if (!førsteFraværsdag) return null;
1514

16-
return (
17-
<DokumentFragment overskrift="Bestemmende fraværsdag">
18-
{dayjs(førsteFraværsdag, ISO_DATOFORMAT).format(NORSK_DATOFORMAT)}
19-
</DokumentFragment>
20-
);
15+
return <DokumentFragment overskrift="Bestemmende fraværsdag">{somNorskDato(førsteFraværsdag)}</DokumentFragment>;
2116
};

src/routes/saksbilde/historikk/hendelser/dokument/Inntektsmeldingsinnhold.tsx

+8-14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ArbeidsgiverikonMedTooltip } from '@components/ikoner/ArbeidsgiverikonM
99
import { PersonFragment } from '@io/graphql';
1010
import { useArbeidsgiver } from '@state/arbeidsgiver';
1111
import { DokumenthendelseObject } from '@typer/historikk';
12-
import { NORSK_DATOFORMAT } from '@utils/date';
12+
import { NORSK_DATOFORMAT, somNorskDato } from '@utils/date';
1313
import { tilTelefonNummer, toKronerOgØre } from '@utils/locale';
1414

1515
import { BestemmendeFraværsdag } from './BestemmendeFraværsdag';
@@ -71,8 +71,8 @@ export const Inntektsmeldingsinnhold = ({
7171
?.map(
7272
(it) =>
7373
it.fom &&
74-
`${dayjs(it.fom).format(NORSK_DATOFORMAT)}
75-
${it.tom && dayjs(it.tom).format(NORSK_DATOFORMAT)}`,
74+
`${somNorskDato(it.fom)}
75+
${it.tom && somNorskDato(it.tom)}`,
7676
)
7777
.join(', ')
7878
.replace(/,(?=[^,]*$)/, ' og')}
@@ -93,7 +93,7 @@ export const Inntektsmeldingsinnhold = ({
9393
<>
9494
<BodyShort size="small">Ble kjent:</BodyShort>
9595
<BodyShort size="small">
96-
{dayjs(inntektsmelding.inntektEndringAarsak.bleKjent).format(NORSK_DATOFORMAT)}
96+
{somNorskDato(inntektsmelding.inntektEndringAarsak.bleKjent)}
9797
</BodyShort>
9898
</>
9999
)}
@@ -107,8 +107,7 @@ export const Inntektsmeldingsinnhold = ({
107107
</BodyShort>
108108
{inntektsmelding.arbeidsgiverperioder?.map((it) => (
109109
<BodyShort size="small" key={`agperioder${it.fom}-${it.tom}`}>
110-
{it.fom && dayjs(it.fom).format(NORSK_DATOFORMAT)}{' '}
111-
{it.tom && dayjs(it.tom).format(NORSK_DATOFORMAT)}
110+
{it.fom && somNorskDato(it.fom)}{it.tom && somNorskDato(it.tom)}
112111
</BodyShort>
113112
))}
114113
</div>
@@ -168,8 +167,7 @@ export const Inntektsmeldingsinnhold = ({
168167
</BodyShort>
169168
{inntektsmelding.ferieperioder?.map((it) => (
170169
<BodyShort size="small" key={`ferieperioder${it.fom}`}>
171-
{it.fom && dayjs(it.fom).format(NORSK_DATOFORMAT)}{' '}
172-
{it.tom && dayjs(it.tom).format(NORSK_DATOFORMAT)}
170+
{it.fom && somNorskDato(it.fom)}{it.tom && somNorskDato(it.tom)}
173171
</BodyShort>
174172
))}
175173
</div>
@@ -187,9 +185,7 @@ export const Inntektsmeldingsinnhold = ({
187185
</DokumentFragment>
188186
)}
189187
{it.fom && (
190-
<DokumentFragment overskrift="Fom">
191-
{dayjs(it.fom).format(NORSK_DATOFORMAT)}
192-
</DokumentFragment>
188+
<DokumentFragment overskrift="Fom">{somNorskDato(it.fom)}</DokumentFragment>
193189
)}
194190
{it.beloepPrMnd != null && (
195191
<DokumentFragment overskrift="Beløp per måned">
@@ -213,9 +209,7 @@ export const Inntektsmeldingsinnhold = ({
213209
</DokumentFragment>
214210
)}
215211
{it.fom && (
216-
<DokumentFragment overskrift="Fom">
217-
{dayjs(it.fom).format(NORSK_DATOFORMAT)}
218-
</DokumentFragment>
212+
<DokumentFragment overskrift="Fom">{somNorskDato(it.fom)}</DokumentFragment>
219213
)}
220214
{it.beloepPrMnd != null && (
221215
<DokumentFragment overskrift="Beløp per måned">

src/routes/saksbilde/historikk/hendelser/dokument/Spørsmål.tsx

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import classNames from 'classnames';
2-
import dayjs from 'dayjs';
32
import React, { ReactElement } from 'react';
43

54
import { CheckmarkIcon } from '@navikt/aksel-icons';
65

76
import { Maybe, SporsmalFragment, Svar, Svartype } from '@io/graphql';
8-
import { NORSK_DATOFORMAT } from '@utils/date';
7+
import { somNorskDato } from '@utils/date';
98
import { toKronerOgØre } from '@utils/locale';
109

1110
import { DokumentFragment } from './DokumentFragment';
@@ -58,25 +57,21 @@ const getSvarForVisning = (svar: Svar[], svartype: Svartype) => {
5857
return toKronerOgØre(Number(svar[0]?.verdi) / 100);
5958
case Svartype.Dato:
6059
case Svartype.RadioGruppeUkekalender:
61-
return dayjs(svar[0]?.verdi).format(NORSK_DATOFORMAT);
60+
return somNorskDato(svar[0]?.verdi);
6261
case Svartype.Datoer:
6362
case Svartype.InfoBehandlingsdager:
6463
return svar
65-
.flatMap((it) => dayjs(it.verdi).format(NORSK_DATOFORMAT))
64+
.flatMap((it) => somNorskDato(it.verdi ?? undefined))
6665
.join(', ')
6766
.replace(/,(?=[^,]*$)/, ' og');
6867
case Svartype.Periode:
69-
return `${dayjs(JSON.parse(svar[0]?.verdi).fom).format(NORSK_DATOFORMAT)}${dayjs(
70-
JSON.parse(svar[0]?.verdi).tom,
71-
).format(NORSK_DATOFORMAT)}`;
68+
return `${somNorskDato(JSON.parse(svar[0]?.verdi).fom)}${somNorskDato(JSON.parse(svar[0]?.verdi).tom)}`;
7269
case Svartype.Perioder:
7370
return svar
7471
.map((it) => {
7572
if (!it.verdi) return;
7673
const periode = JSON.parse(it.verdi);
77-
return `${dayjs(periode.fom).format(NORSK_DATOFORMAT)}${dayjs(periode.tom).format(
78-
NORSK_DATOFORMAT,
79-
)}`;
74+
return `${somNorskDato(periode.fom)}${somNorskDato(periode.tom)}`;
8075
})
8176
.join(', ')
8277
.replace(/,(?=[^,]*$)/, ' og');

src/routes/saksbilde/historikk/hendelser/dokument/Søknadsinnhold.tsx

+4-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import dayjs from 'dayjs';
22
import React, { ReactElement } from 'react';
33

44
import { DokumenthendelseObject } from '@typer/historikk';
5-
import { NORSK_DATOFORMAT, NORSK_DATOFORMAT_MED_KLOKKESLETT } from '@utils/date';
5+
import { NORSK_DATOFORMAT, NORSK_DATOFORMAT_MED_KLOKKESLETT, somNorskDato } from '@utils/date';
66

77
import { DokumentFragment } from './DokumentFragment';
88
import { DokumentLoader } from './DokumentLoader';
@@ -31,9 +31,7 @@ export const Søknadsinnhold = ({ dokumentId, fødselsnummer }: SøknadsinnholdP
3131
søknad.soknadsperioder.length > 0 &&
3232
søknad.soknadsperioder.map((søknadsperiode) => (
3333
<DokumentFragment
34-
overskrift={`${dayjs(søknadsperiode.fom).format(NORSK_DATOFORMAT)}${dayjs(
35-
søknadsperiode.tom,
36-
).format(NORSK_DATOFORMAT)}`}
34+
overskrift={`${somNorskDato(søknadsperiode.fom)}${somNorskDato(søknadsperiode.tom)}`}
3735
key={`søknadsperiode${søknadsperiode.fom}`}
3836
>
3937
{søknadsperiode.grad || søknadsperiode.sykmeldingsgrad ? (
@@ -51,7 +49,7 @@ export const Søknadsinnhold = ({ dokumentId, fødselsnummer }: SøknadsinnholdP
5149
))}
5250
{søknad.arbeidGjenopptatt && (
5351
<DokumentFragment overskrift="Arbeid gjenopptatt">
54-
{dayjs(søknad.arbeidGjenopptatt).format(NORSK_DATOFORMAT)}
52+
{somNorskDato(søknad.arbeidGjenopptatt)}
5553
</DokumentFragment>
5654
)}
5755
{søknad.sykmeldingSkrevet && (
@@ -62,7 +60,7 @@ export const Søknadsinnhold = ({ dokumentId, fødselsnummer }: SøknadsinnholdP
6260
{(søknad.egenmeldingsdagerFraSykmelding?.length ?? 0) > 0 && (
6361
<DokumentFragment overskrift="Egenmeldingsdager fra sykmelding">
6462
{søknad.egenmeldingsdagerFraSykmelding
65-
?.map((it) => dayjs(it).format(NORSK_DATOFORMAT))
63+
?.map((it) => somNorskDato(it))
6664
.sort((a, b) =>
6765
dayjs(a, NORSK_DATOFORMAT).isAfter(dayjs(b, NORSK_DATOFORMAT)) ? 1 : -1,
6866
)

src/routes/saksbilde/sykepengegrunnlag/inntekt/inntektOgRefusjonSkjema/refusjon/RefusjonSkjema/RefusjonSkjema.test.tsx

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import dayjs from 'dayjs';
21
import { FormProvider, useForm } from 'react-hook-form';
32

43
import { RefusjonSkjema } from '@saksbilde/sykepengegrunnlag/inntekt/inntektOgRefusjonSkjema/refusjon/RefusjonSkjema/RefusjonSkjema';
54
import { render, screen } from '@test-utils';
65
import '@testing-library/jest-dom';
76
import userEvent from '@testing-library/user-event';
87
import { Refusjonsopplysning } from '@typer/overstyring';
9-
import { NORSK_DATOFORMAT } from '@utils/date';
8+
import { somNorskDato } from '@utils/date';
109
import { toKronerOgØre } from '@utils/locale';
1110

1211
describe('Refusjonskjema', () => {
@@ -58,9 +57,7 @@ describe('Refusjonskjema', () => {
5857
it('skal rendre skjema hvis det finnes refusjoner', async () => {
5958
render(<TestRefusjonSkjema fraRefusjonsopplysninger={en_refusjonsopplysning} />);
6059
expect(await screen.findAllByTestId('refusjonsopplysningrad')).toHaveLength(1);
61-
expect(screen.queryByLabelText('Fra og med dato')).toHaveValue(
62-
dayjs(en_refusjonsopplysning[0]?.fom).format(NORSK_DATOFORMAT),
63-
);
60+
expect(screen.queryByLabelText('Fra og med dato')).toHaveValue(somNorskDato(en_refusjonsopplysning[0]?.fom));
6461
expect(screen.queryByLabelText('Til og med dato')).toHaveValue('');
6562
expect(screen.queryByLabelText('Månedlig refusjon')).toHaveValue(
6663
toKronerOgØre(en_refusjonsopplysning[0]?.beløp as number),

0 commit comments

Comments
 (0)