diff --git a/example/src/components/SprakVelger.tsx b/example/src/components/SprakVelger.tsx index 26338d35..0c97f9a9 100644 --- a/example/src/components/SprakVelger.tsx +++ b/example/src/components/SprakVelger.tsx @@ -1,31 +1,27 @@ -import React from "react"; -import { Locale } from "../types/locale"; +import React from 'react'; +import { Locale } from '@/types/locale'; interface Props { - locales: Locale[]; - valgtLocale: Locale; - settValgtLocale: (locale: Locale) => void; + locales: Locale[]; + valgtLocale: Locale; + settValgtLocale: (locale: Locale) => void; } export const SprakVelger = (props: Props) => { - const { locales, valgtLocale, settValgtLocale } = props; - return ( -
- {locales.map((locale, i) => - valgtLocale === locale ? ( - - {locale} - - ) : ( - settValgtLocale(locale)} - > - {locale} - - ) - )} -
- ); + const { locales, valgtLocale, settValgtLocale } = props; + return ( +
+ {locales.map((locale, i) => + valgtLocale === locale ? ( + + {locale} + + ) : ( + settValgtLocale(locale)}> + {locale} + + ) + )} +
+ ); }; diff --git a/src/__tests__/detaljert.test.tsx b/src/__tests__/detaljert.test.tsx index 961607a1..24455edb 100644 --- a/src/__tests__/detaljert.test.tsx +++ b/src/__tests__/detaljert.test.tsx @@ -1,11 +1,11 @@ import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import afDetaljert from '../clients/apiMock/af-detaljert.json'; import '@testing-library/jest-dom'; -import { orgnr } from '../utils/orgnr'; +import { orgnr } from '@/utils/orgnr'; import dayjs from 'dayjs'; -import { formatDate } from '../utils/date'; +import { formatDate } from '@/utils/date'; import { Detaljert } from '../modules/af-detaljert/Detaljert'; -import { AFUtvidet } from '../types/arbeidsforhold'; +import { AFUtvidet } from '@/types/arbeidsforhold'; vi.mock('@react-pdf/renderer', () => ({ Text: () =>
Text
, diff --git a/src/__tests__/liste.test.tsx b/src/__tests__/liste.test.tsx index a907e9e8..56dc70a3 100644 --- a/src/__tests__/liste.test.tsx +++ b/src/__tests__/liste.test.tsx @@ -1,51 +1,32 @@ -import { fireEvent, render, screen } from "@testing-library/react"; -import afListe from "../clients/apiMock/af-liste.json"; -import "@testing-library/jest-dom"; -import { Liste } from "../modules/af-liste/Liste"; -import { AFSimpel } from "../types/arbeidsforhold"; -import { formatDate } from "../utils/date"; +import { fireEvent, render, screen } from '@testing-library/react'; +import afListe from '../clients/apiMock/af-liste.json'; +import '@testing-library/jest-dom'; +import { Liste } from '../modules/af-liste/Liste'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { formatDate } from '@/utils/date'; -vi.mock("@react-pdf/renderer", () => ({ - Text: () =>
Text
, - StyleSheet: { - create: () => {}, - }, +vi.mock('@react-pdf/renderer', () => ({ + Text: () =>
Text
, + StyleSheet: { + create: () => {}, + }, })); beforeEach(() => { - render( - - ); + render(); }); -describe("Liste over arbeidsforhold", () => { - test("inneholder all data", () => { - fireEvent.click(screen.getByText("Vis flere arbeidsforhold")); +describe('Liste over arbeidsforhold', () => { + test('inneholder all data', () => { + fireEvent.click(screen.getByText('Vis flere arbeidsforhold')); - afListe.forEach((arbeidsforhold) => { - arbeidsforhold.arbeidsgiver.type === "Organisasjon" && - expect( - screen.getByText(arbeidsforhold.arbeidsgiver.orgnavn as string) - ).toBeInTheDocument(); - expect(screen.getAllByText(arbeidsforhold.yrke).length).toBeGreaterThan( - 0 - ); - expect( - screen.getAllByText( - formatDate(arbeidsforhold.ansettelsesperiode.periode.periodeFra) - ).length - ).toBeGreaterThan(0); - arbeidsforhold.ansettelsesperiode.periode.periodeTil && - expect( - screen.getAllByText( - formatDate(arbeidsforhold.ansettelsesperiode.periode.periodeTil) - ).length - ).toBeGreaterThan(0); + afListe.forEach((arbeidsforhold) => { + arbeidsforhold.arbeidsgiver.type === 'Organisasjon' && + expect(screen.getByText(arbeidsforhold.arbeidsgiver.orgnavn as string)).toBeInTheDocument(); + expect(screen.getAllByText(arbeidsforhold.yrke).length).toBeGreaterThan(0); + expect(screen.getAllByText(formatDate(arbeidsforhold.ansettelsesperiode.periode.periodeFra)).length).toBeGreaterThan(0); + arbeidsforhold.ansettelsesperiode.periode.periodeTil && + expect(screen.getAllByText(formatDate(arbeidsforhold.ansettelsesperiode.periode.periodeTil)).length).toBeGreaterThan(0); + }); }); - }); }); diff --git a/src/components/arbeidsgiver/ArbeidsgiverTittel.tsx b/src/components/arbeidsgiver/ArbeidsgiverTittel.tsx index 7f7a128f..c4a2012c 100644 --- a/src/components/arbeidsgiver/ArbeidsgiverTittel.tsx +++ b/src/components/arbeidsgiver/ArbeidsgiverTittel.tsx @@ -1,21 +1,13 @@ -import React from "react"; -import { AFArbeidsgiver } from "../../types/arbeidsforhold"; -import { CheckAndPrint } from "../check-and-print/CheckAndPrint"; -import { fnr } from "../../utils/fnr"; +import React from 'react'; +import { AFArbeidsgiver } from '@/types/arbeidsforhold'; +import { CheckAndPrint } from '../check-and-print/CheckAndPrint'; +import { fnr } from '@/utils/fnr'; interface Props { - arbeidsgiver: AFArbeidsgiver; - overskrift?: boolean; + arbeidsgiver: AFArbeidsgiver; + overskrift?: boolean; } export const ArbeidsgiverTittel = (props: Props) => { - return ( - - ); + return ; }; diff --git a/src/components/check-date-and-print/CheckDateAndPrint.tsx b/src/components/check-date-and-print/CheckDateAndPrint.tsx index 0c88b8f1..bdc0c2df 100644 --- a/src/components/check-date-and-print/CheckDateAndPrint.tsx +++ b/src/components/check-date-and-print/CheckDateAndPrint.tsx @@ -3,7 +3,7 @@ import { NoData } from '../no-data/NoData'; import dayjs from 'dayjs'; import 'dayjs/locale/nb.js'; import 'dayjs/locale/nn.js'; -import { parse } from '../../utils/text'; +import { parse } from '@/utils/text'; import { useLocale } from '../../modules/common/useLocale'; import { TextIfPdf } from '../text-if-pdf/TextIfPdf'; import { HelpText } from '@navikt/ds-react'; diff --git a/src/components/check-period-and-print/CheckPeriodAndPrint.tsx b/src/components/check-period-and-print/CheckPeriodAndPrint.tsx index 4cec15a0..dbd0d3fd 100644 --- a/src/components/check-period-and-print/CheckPeriodAndPrint.tsx +++ b/src/components/check-period-and-print/CheckPeriodAndPrint.tsx @@ -1,32 +1,25 @@ -import React from "react"; -import { AFPeriode } from "../../types/arbeidsforhold"; -import { NoData } from "../no-data/NoData"; -import { CheckDateAndPrint } from "../check-date-and-print/CheckDateAndPrint"; -import { TextIfPdf } from "../text-if-pdf/TextIfPdf"; +import React from 'react'; +import { AFPeriode } from '@/types/arbeidsforhold'; +import { NoData } from '../no-data/NoData'; +import { CheckDateAndPrint } from '../check-date-and-print/CheckDateAndPrint'; +import { TextIfPdf } from '../text-if-pdf/TextIfPdf'; interface Props { - data?: AFPeriode; - twoLines?: boolean; - format?: string; - maskineltAvsluttet?: string | null; + data?: AFPeriode; + twoLines?: boolean; + format?: string; + maskineltAvsluttet?: string | null; } export const CheckPeriodAndPrint = (props: Props) => { - return props.data ? ( - - - {` - `} - {props.twoLines &&
} - -
- ) : ( - - ); + return props.data ? ( + + + {` - `} + {props.twoLines &&
} + +
+ ) : ( + + ); }; diff --git a/src/components/error/Error.tsx b/src/components/error/Error.tsx index c9ad8b09..cf4612b9 100644 --- a/src/components/error/Error.tsx +++ b/src/components/error/Error.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Alert } from '@navikt/ds-react'; -import { sprak } from '../../language/provider'; +import { sprak } from '@/language/provider'; import { useLocale } from '../../modules/common/useLocale'; export interface HTTPError { diff --git a/src/components/pdf-check-and-print-box/PDFCheckAndPrintBox.tsx b/src/components/pdf-check-and-print-box/PDFCheckAndPrintBox.tsx index da2dbce0..38c45447 100644 --- a/src/components/pdf-check-and-print-box/PDFCheckAndPrintBox.tsx +++ b/src/components/pdf-check-and-print-box/PDFCheckAndPrintBox.tsx @@ -1,50 +1,44 @@ -import React from "react"; -import { CheckDateAndPrint } from "../check-date-and-print/CheckDateAndPrint"; -import { CheckAndPrint } from "../check-and-print/CheckAndPrint"; -import { CheckPeriodAndPrint } from "../check-period-and-print/CheckPeriodAndPrint"; -import { Text, View } from "@react-pdf/renderer"; -import { AFPeriode } from "../../types/arbeidsforhold"; -import { pdfStyles } from "../../modules/common/pdfStyles"; +import React from 'react'; +import { CheckDateAndPrint } from '../check-date-and-print/CheckDateAndPrint'; +import { CheckAndPrint } from '../check-and-print/CheckAndPrint'; +import { CheckPeriodAndPrint } from '../check-period-and-print/CheckPeriodAndPrint'; +import { Text, View } from '@react-pdf/renderer'; +import { AFPeriode } from '@/types/arbeidsforhold'; +import { pdfStyles } from '../../modules/common/pdfStyles'; type Props = { - title: string; - children?: string | JSX.Element | JSX.Element[]; - format?: string; - period?: boolean; + title: string; + children?: string | JSX.Element | JSX.Element[]; + format?: string; + period?: boolean; } & ( - | { - date?: undefined; - period?: undefined; - data?: string | number; - } - | { - date: true; - period?: undefined; - data?: string | number; - } - | { - date?: undefined; - period: true; - data?: AFPeriode; - } + | { + date?: undefined; + period?: undefined; + data?: string | number; + } + | { + date: true; + period?: undefined; + data?: string | number; + } + | { + date?: undefined; + period: true; + data?: AFPeriode; + } ); export const PDFCheckAndPrintBox = (props: Props) => { - return props.data ? ( - - {props.title} - - {props.date && ( - - )} - {props.period && ( - - )} - {!props.date && !props.period && ( - - )} - - {props.children} - - ) : null; + return props.data ? ( + + {props.title} + + {props.date && } + {props.period && } + {!props.date && !props.period && } + + {props.children} + + ) : null; }; diff --git a/src/language/provider.ts b/src/language/provider.ts index 4454f431..98ad2d40 100644 --- a/src/language/provider.ts +++ b/src/language/provider.ts @@ -1,12 +1,12 @@ -import { nb } from "./nb"; -import { en } from "./en"; -import { nn } from "./nn"; -import { Locale } from "../types/locale"; +import { nb } from './nb'; +import { en } from './en'; +import { nn } from './nn'; +import { Locale } from '@/types/locale'; export const sprak = { - nb: nb, - en: en, - nn: nn, + nb: nb, + en: en, + nn: nn, } as Sprak; type Sprak = { [key in Locale]: defaultSprak }; diff --git a/src/modules/af-detaljert/Detaljert.tsx b/src/modules/af-detaljert/Detaljert.tsx index 702fc75f..84b81971 100644 --- a/src/modules/af-detaljert/Detaljert.tsx +++ b/src/modules/af-detaljert/Detaljert.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { AFDetaljertData, AFDetaljertProps } from './index'; -import { sprak } from '../../language/provider'; +import { sprak } from '@/language/provider'; import { ArbeidsavtaleFelter } from './detaljer/ArbeidsavtaleFelter'; import { DetaljertTabs } from './tabs/DetaljertTabs'; import { useLocale } from '../common/useLocale'; diff --git a/src/modules/af-detaljert/detaljer/ArbeidsavtaleFelter.tsx b/src/modules/af-detaljert/detaljer/ArbeidsavtaleFelter.tsx index 01ddf718..ba1025aa 100644 --- a/src/modules/af-detaljert/detaljer/ArbeidsavtaleFelter.tsx +++ b/src/modules/af-detaljert/detaljer/ArbeidsavtaleFelter.tsx @@ -1,105 +1,59 @@ -import React from "react"; -import { CheckAndPrintBox } from "../../../components/check-and-print-box/CheckAndPrintBox"; -import { CheckDateAndPrint } from "../../../components/check-date-and-print/CheckDateAndPrint"; -import { AFArbeidsavtaler, AFUtvidet } from "../../../types/arbeidsforhold"; -import { sprak } from "../../../language/provider"; -import { useLocale } from "../../common/useLocale"; -import { CheckAndPrint } from "../../../components/check-and-print/CheckAndPrint"; -import { orgnr } from "../../../utils/orgnr"; -import { BodyShort } from "@navikt/ds-react"; +import React from 'react'; +import { CheckAndPrintBox } from '@/components/check-and-print-box/CheckAndPrintBox'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { AFArbeidsavtaler, AFUtvidet } from '@/types/arbeidsforhold'; +import { sprak } from '@/language/provider'; +import { useLocale } from '../../common/useLocale'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { orgnr } from '@/utils/orgnr'; +import { BodyShort } from '@navikt/ds-react'; interface PropsStandard { - data: AFArbeidsavtaler; - isUtvidet?: false; + data: AFArbeidsavtaler; + isUtvidet?: false; } interface PropsUtvidet { - data: AFUtvidet; - isUtvidet?: true; + data: AFUtvidet; + isUtvidet?: true; } export const ArbeidsavtaleFelter = (props: PropsStandard | PropsUtvidet) => { - const { locale } = useLocale(); - return ( -
- {props.isUtvidet && ( - <> - <> - {props.data.opplysningspliktigarbeidsgiver.type === - "Organisasjon" && ( - + const { locale } = useLocale(); + return ( +
+ {props.isUtvidet && ( + <> + <> + {props.data.opplysningspliktigarbeidsgiver.type === 'Organisasjon' && ( + + + + + + )} + + + + + + )} + + + + - + - - )} - - - - - - )} - - - - - - - - - - - - - {props.isUtvidet && ( - - )} -
- ); +
+ + + + + {props.isUtvidet && } +
+ ); }; diff --git a/src/modules/af-detaljert/detaljer/DetaljertHeader.tsx b/src/modules/af-detaljert/detaljer/DetaljertHeader.tsx index 9d0e3e54..bb394863 100644 --- a/src/modules/af-detaljert/detaljer/DetaljertHeader.tsx +++ b/src/modules/af-detaljert/detaljer/DetaljertHeader.tsx @@ -1,63 +1,52 @@ -import React from "react"; -import { ArbeidsgiverTittel } from "../../../components/arbeidsgiver/ArbeidsgiverTittel"; -import { CheckAndPrint } from "../../../components/check-and-print/CheckAndPrint"; -import { orgnr } from "../../../utils/orgnr"; -import { sprak } from "../../../language/provider"; -import { CheckPeriodAndPrint } from "../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { useLocale } from "../../common/useLocale"; -import { AFUtvidet } from "../../../types/arbeidsforhold"; -import { BodyShort, Heading } from "@navikt/ds-react"; +import React from 'react'; +import { ArbeidsgiverTittel } from '@/components/arbeidsgiver/ArbeidsgiverTittel'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { orgnr } from '@/utils/orgnr'; +import { sprak } from '@/language/provider'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { useLocale } from '../../common/useLocale'; +import { AFUtvidet } from '@/types/arbeidsforhold'; +import { BodyShort, Heading } from '@navikt/ds-react'; interface Props { - arbeidsforhold: AFUtvidet; + arbeidsforhold: AFUtvidet; } export const DetaljertHeader = (props: Props) => { - const { arbeidsforhold } = props; - const { locale } = useLocale(); + const { arbeidsforhold } = props; + const { locale } = useLocale(); - return ( -
-
-
- - - - {arbeidsforhold.arbeidsgiver.type === "Organisasjon" && ( -
- - - + return ( +
+
+
+ + + + {arbeidsforhold.arbeidsgiver.type === 'Organisasjon' && ( +
+ + + +
+ )} +
- )} + {arbeidsforhold.ansettelsesperiode && ( +
+
+ + {sprak[locale].ansettelsesperiode} + +
+ + + + +
+
+
+ )}
-
- {arbeidsforhold.ansettelsesperiode && ( -
-
- - {sprak[locale].ansettelsesperiode} - -
- - - - -
-
-
- )} -
- ); + ); }; diff --git a/src/modules/af-detaljert/index.tsx b/src/modules/af-detaljert/index.tsx index 7ed15fd5..8c02262b 100644 --- a/src/modules/af-detaljert/index.tsx +++ b/src/modules/af-detaljert/index.tsx @@ -6,8 +6,8 @@ import { Spinner } from '@/components/spinner/Spinner'; import { Detaljert } from './Detaljert'; import { Environment } from '@/utils/environment'; import { Miljo } from '@/types/miljo'; -import { AFPrint } from '../../types/print'; -import { Locale } from '../../types/locale'; +import { AFPrint } from '@/types/print'; +import { Locale } from '@/types/locale'; import { useLocale } from '../common/useLocale'; type State = { status: 'READY' } | { status: 'LOADING' } | { status: 'RESULT'; arbeidsforhold: AFUtvidet } | { status: 'ERROR'; error: HTTPError }; diff --git a/src/modules/af-detaljert/print/pdf/DetaljertPDF.tsx b/src/modules/af-detaljert/print/pdf/DetaljertPDF.tsx index cd239bea..ff634249 100644 --- a/src/modules/af-detaljert/print/pdf/DetaljertPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/DetaljertPDF.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Document, Font } from '@react-pdf/renderer'; -import { AFUtvidet } from '../../../../types/arbeidsforhold'; +import { AFUtvidet } from '@/types/arbeidsforhold'; import { pdfFont } from '../../../common/pdfFont'; import { TabsPDF } from './tabs/TabsPDF'; import { GenerellOversiktPDF } from './GenerellOversiktPDF'; diff --git a/src/modules/af-detaljert/print/pdf/GenerellOversiktPDF.tsx b/src/modules/af-detaljert/print/pdf/GenerellOversiktPDF.tsx index 17aed9f7..be2c4486 100644 --- a/src/modules/af-detaljert/print/pdf/GenerellOversiktPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/GenerellOversiktPDF.tsx @@ -1,149 +1,85 @@ -import React from "react"; -import { Page, Text, View } from "@react-pdf/renderer"; -import { pdfStyles } from "../../../common/pdfStyles"; -import { PdfHeader } from "../../../common/PdfHeader"; -import { PDFCheckAndPrintBox } from "../../../../components/pdf-check-and-print-box/PDFCheckAndPrintBox"; -import { sprak } from "../../../../language/provider"; -import { CheckAndPrint } from "../../../../components/check-and-print/CheckAndPrint"; -import { orgnr } from "../../../../utils/orgnr"; -import { CheckDateAndPrint } from "../../../../components/check-date-and-print/CheckDateAndPrint"; -import { PdfFooter } from "../../../common/PdfFooter"; -import { AFUtvidet } from "../../../../types/arbeidsforhold"; -import { useLocale } from "../../../common/useLocale"; +import React from 'react'; +import { Page, Text, View } from '@react-pdf/renderer'; +import { pdfStyles } from '../../../common/pdfStyles'; +import { PdfHeader } from '../../../common/PdfHeader'; +import { PDFCheckAndPrintBox } from '@/components/pdf-check-and-print-box/PDFCheckAndPrintBox'; +import { sprak } from '@/language/provider'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { orgnr } from '@/utils/orgnr'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { PdfFooter } from '../../../common/PdfFooter'; +import { AFUtvidet } from '@/types/arbeidsforhold'; +import { useLocale } from '../../../common/useLocale'; interface Props { - arbeidsforhold: AFUtvidet; - printGenerellOversikt: boolean; - printTimerTimelonnet: boolean; - printPermisjon: boolean; - printUtenlandsopphold: boolean; - printHistorikk: boolean; - printName: string; - printSSO: string; + arbeidsforhold: AFUtvidet; + printGenerellOversikt: boolean; + printTimerTimelonnet: boolean; + printPermisjon: boolean; + printUtenlandsopphold: boolean; + printHistorikk: boolean; + printName: string; + printSSO: string; } -export const GenerellOversiktPDF = ({ - arbeidsforhold, - printName, - printSSO, -}: Props) => { - const { locale } = useLocale(); +export const GenerellOversiktPDF = ({ arbeidsforhold, printName, printSSO }: Props) => { + const { locale } = useLocale(); - return ( - - - - - - {arbeidsforhold.arbeidsgiver.type === "Organisasjon" ? ( - - - - {arbeidsforhold.arbeidsgiver.orgnavn} - + return ( + + + + + + {arbeidsforhold.arbeidsgiver.type === 'Organisasjon' ? ( + + + {arbeidsforhold.arbeidsgiver.orgnavn} + + + Organisasjonsnummer {arbeidsforhold.arbeidsgiver.orgnr} + + + ) : ( + {arbeidsforhold.arbeidsgiver.fnr} + )} + + + + + + - - - Organisasjonsnummer {arbeidsforhold.arbeidsgiver.orgnr} - + + {arbeidsforhold.opplysningspliktigarbeidsgiver.type === 'Organisasjon' && ( + + + + + + )} + + + + + + + + + + + + + + + + - - ) : ( - - {arbeidsforhold.arbeidsgiver.fnr} - - )} - - - - - - - - - {arbeidsforhold.opplysningspliktigarbeidsgiver.type === - "Organisasjon" && ( - - - - - - )} - - - - - - - - - - - - - - - - - - - - - ); + + + + ); }; diff --git a/src/modules/af-detaljert/print/pdf/tabs/HistorikkPDF.tsx b/src/modules/af-detaljert/print/pdf/tabs/HistorikkPDF.tsx index f296c1e0..995f1faa 100644 --- a/src/modules/af-detaljert/print/pdf/tabs/HistorikkPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/tabs/HistorikkPDF.tsx @@ -1,103 +1,64 @@ -import React from "react"; -import { AFArbeidsavtaler } from "../../../../../types/arbeidsforhold"; -import { - sortPeriodeFraDesc, - sortPeriodeTilDesc, -} from "../../../../../utils/date"; -import { Text, View } from "@react-pdf/renderer"; -import { PDFCheckAndPrintBox } from "../../../../../components/pdf-check-and-print-box/PDFCheckAndPrintBox"; -import { sprak } from "../../../../../language/provider"; -import { CheckDateAndPrint } from "../../../../../components/check-date-and-print/CheckDateAndPrint"; -import { pdfStyles } from "../../../../common/pdfStyles"; -import { useLocale } from "../../../../common/useLocale"; +import React from 'react'; +import { AFArbeidsavtaler } from '@/types/arbeidsforhold'; +import { sortPeriodeFraDesc, sortPeriodeTilDesc } from '@/utils/date'; +import { Text, View } from '@react-pdf/renderer'; +import { PDFCheckAndPrintBox } from '@/components/pdf-check-and-print-box/PDFCheckAndPrintBox'; +import { sprak } from '@/language/provider'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { pdfStyles } from '../../../../common/pdfStyles'; +import { useLocale } from '../../../../common/useLocale'; interface Props { - arbeidsavtaler: AFArbeidsavtaler[]; + arbeidsavtaler: AFArbeidsavtaler[]; } export const HistorikkPDF = ({ arbeidsavtaler }: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - const sortedArbeidsavtaler = arbeidsavtaler - .sort((left, right) => - sortPeriodeFraDesc(left.gyldighetsperiode, right.gyldighetsperiode) - ) - .sort((left, right) => - sortPeriodeTilDesc(left.gyldighetsperiode, right.gyldighetsperiode) - ); + const sortedArbeidsavtaler = arbeidsavtaler + .sort((left, right) => sortPeriodeFraDesc(left.gyldighetsperiode, right.gyldighetsperiode)) + .sort((left, right) => sortPeriodeTilDesc(left.gyldighetsperiode, right.gyldighetsperiode)); - return ( - <> - {sortedArbeidsavtaler.map((arbeidsavtale, i) => ( - - {!i && ( - - Historikk - - )} - - + return ( + <> + {sortedArbeidsavtaler.map((arbeidsavtale, i) => ( + + {!i && ( + + Historikk + + )} + + - + - - - - - - - - - - - - - - - ))} - - ); + + + + + + + + + + + + + + + ))} + + ); }; diff --git a/src/modules/af-detaljert/print/pdf/tabs/PermisjonPDF.tsx b/src/modules/af-detaljert/print/pdf/tabs/PermisjonPDF.tsx index 2e82fe23..3e113e41 100644 --- a/src/modules/af-detaljert/print/pdf/tabs/PermisjonPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/tabs/PermisjonPDF.tsx @@ -1,56 +1,54 @@ -import React from "react"; -import { AFPermisjonPermittering } from "../../../../../types/arbeidsforhold"; -import { sortPeriodeFraDesc } from "../../../../../utils/date"; -import { CheckPeriodAndPrint } from "../../../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { sprak } from "../../../../../language/provider"; -import { Text, View } from "@react-pdf/renderer"; -import { pdfStyles } from "../../../../common/pdfStyles"; -import { useLocale } from "../../../../common/useLocale"; +import React from 'react'; +import { AFPermisjonPermittering } from '@/types/arbeidsforhold'; +import { sortPeriodeFraDesc } from '@/utils/date'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; +import { Text, View } from '@react-pdf/renderer'; +import { pdfStyles } from '../../../../common/pdfStyles'; +import { useLocale } from '../../../../common/useLocale'; interface Props { - permisjoner: AFPermisjonPermittering[]; + permisjoner: AFPermisjonPermittering[]; } export const PermisjonPDF = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - const sortedPermisjoner = props.permisjoner.sort((left, right) => - sortPeriodeFraDesc(left.periode, right.periode) - ); + const sortedPermisjoner = props.permisjoner.sort((left, right) => sortPeriodeFraDesc(left.periode, right.periode)); - return ( - <> - - - Permisjon/Permittering - - - - {sprak[locale].type} - - - {sprak[locale].periode} - - - {sprak[locale].prosent} - - - - {sortedPermisjoner.map((permisjon, i) => ( - - - {permisjon.type} - - - - - - - - {permisjon.prosent} - - - ))} - - ); + return ( + <> + + + Permisjon/Permittering + + + + {sprak[locale].type} + + + {sprak[locale].periode} + + + {sprak[locale].prosent} + + + + {sortedPermisjoner.map((permisjon, i) => ( + + + {permisjon.type} + + + + + + + + {permisjon.prosent} + + + ))} + + ); }; diff --git a/src/modules/af-detaljert/print/pdf/tabs/TabsPDF.tsx b/src/modules/af-detaljert/print/pdf/tabs/TabsPDF.tsx index 6e4a0b73..c732388d 100644 --- a/src/modules/af-detaljert/print/pdf/tabs/TabsPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/tabs/TabsPDF.tsx @@ -7,7 +7,7 @@ import { PermisjonPDF } from './PermisjonPDF'; import { UtenlandsoppholdPDF } from './UtenlandsoppholdPDF'; import { HistorikkPDF } from './HistorikkPDF'; import { PdfFooter } from '../../../../common/PdfFooter'; -import { AFArbeidsavtaler, AFPermisjonPermittering, AFTimerForTimelonnet, AFUtenlandsopphold } from '../../../../../types/arbeidsforhold'; +import { AFArbeidsavtaler, AFPermisjonPermittering, AFTimerForTimelonnet, AFUtenlandsopphold } from '@/types/arbeidsforhold'; interface Props { printTimerTimelonnet: boolean; diff --git a/src/modules/af-detaljert/print/pdf/tabs/TimerPDF.tsx b/src/modules/af-detaljert/print/pdf/tabs/TimerPDF.tsx index 6aa5bf75..ba86e98b 100644 --- a/src/modules/af-detaljert/print/pdf/tabs/TimerPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/tabs/TimerPDF.tsx @@ -1,11 +1,11 @@ import React from 'react'; -import { AFTimerForTimelonnet } from '../../../../../types/arbeidsforhold'; -import { CheckAndPrint } from '../../../../../components/check-and-print/CheckAndPrint'; -import { sortPeriodeFraDesc } from '../../../../../utils/date'; +import { AFTimerForTimelonnet } from '@/types/arbeidsforhold'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { sortPeriodeFraDesc } from '@/utils/date'; import dayjs from 'dayjs'; -import { CheckDateAndPrint } from '../../../../../components/check-date-and-print/CheckDateAndPrint'; -import { CheckPeriodAndPrint } from '../../../../../components/check-period-and-print/CheckPeriodAndPrint'; -import { sprak } from '../../../../../language/provider'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; import { Text, View } from '@react-pdf/renderer'; import { useLocale } from '../../../../common/useLocale'; import { pdfStyles } from '../../../../common/pdfStyles'; diff --git a/src/modules/af-detaljert/print/pdf/tabs/UtenlandsoppholdPDF.tsx b/src/modules/af-detaljert/print/pdf/tabs/UtenlandsoppholdPDF.tsx index 940f2614..bc33ad58 100644 --- a/src/modules/af-detaljert/print/pdf/tabs/UtenlandsoppholdPDF.tsx +++ b/src/modules/af-detaljert/print/pdf/tabs/UtenlandsoppholdPDF.tsx @@ -1,11 +1,11 @@ import React from 'react'; -import { AFUtenlandsopphold } from '../../../../../types/arbeidsforhold'; -import { CheckAndPrint } from '../../../../../components/check-and-print/CheckAndPrint'; -import { sortPeriodeFraDesc } from '../../../../../utils/date'; +import { AFUtenlandsopphold } from '@/types/arbeidsforhold'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { sortPeriodeFraDesc } from '@/utils/date'; import dayjs from 'dayjs'; -import { CheckDateAndPrint } from '../../../../../components/check-date-and-print/CheckDateAndPrint'; -import { CheckPeriodAndPrint } from '../../../../../components/check-period-and-print/CheckPeriodAndPrint'; -import { sprak } from '../../../../../language/provider'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; import { Text, View } from '@react-pdf/renderer'; import { pdfStyles } from '../../../../common/pdfStyles'; import { useLocale } from '../../../../common/useLocale'; diff --git a/src/modules/af-detaljert/tabs/DetaljertTabs.tsx b/src/modules/af-detaljert/tabs/DetaljertTabs.tsx index 781fec62..1265051e 100644 --- a/src/modules/af-detaljert/tabs/DetaljertTabs.tsx +++ b/src/modules/af-detaljert/tabs/DetaljertTabs.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import { AFUtvidet } from '../../../types/arbeidsforhold'; +import { AFUtvidet } from '@/types/arbeidsforhold'; import { useLocale } from '../../common/useLocale'; -import { sprak } from '../../../language/provider'; +import { sprak } from '@/language/provider'; import { TabContent } from './TabContent'; import { Tabs } from '@navikt/ds-react'; import { Locale } from '@/types/locale'; diff --git a/src/modules/af-detaljert/tabs/Historikk.tsx b/src/modules/af-detaljert/tabs/Historikk.tsx index 7bc63905..695b0e45 100644 --- a/src/modules/af-detaljert/tabs/Historikk.tsx +++ b/src/modules/af-detaljert/tabs/Historikk.tsx @@ -1,108 +1,92 @@ -import React, { Fragment, useState } from "react"; -import { AFArbeidsavtaler } from "../../../types/arbeidsforhold"; -import { CheckAndPrint } from "../../../components/check-and-print/CheckAndPrint"; -import { CheckPeriodAndPrint } from "../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { sortPeriodeFraDesc, sortPeriodeTilDesc } from "../../../utils/date"; -import { sprak } from "../../../language/provider"; -import { ArbeidsavtaleFelter } from "../detaljer/ArbeidsavtaleFelter"; -import { useLocale } from "../../common/useLocale"; -import { ChevronUpIcon, ChevronDownIcon } from "@navikt/aksel-icons"; -import { Heading } from "@navikt/ds-react"; +import React, { Fragment, useState } from 'react'; +import { AFArbeidsavtaler } from '@/types/arbeidsforhold'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sortPeriodeFraDesc, sortPeriodeTilDesc } from '@/utils/date'; +import { sprak } from '@/language/provider'; +import { ArbeidsavtaleFelter } from '../detaljer/ArbeidsavtaleFelter'; +import { useLocale } from '../../common/useLocale'; +import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons'; +import { Heading } from '@navikt/ds-react'; interface Props { - arbeidsavtaler: AFArbeidsavtaler[]; + arbeidsavtaler: AFArbeidsavtaler[]; } export const Historikk = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - const sortedArbeidsavtaler = props.arbeidsavtaler - .sort((left, right) => - sortPeriodeFraDesc(left.gyldighetsperiode, right.gyldighetsperiode) - ) - .sort((left, right) => - sortPeriodeTilDesc(left.gyldighetsperiode, right.gyldighetsperiode) - ); + const sortedArbeidsavtaler = props.arbeidsavtaler + .sort((left, right) => sortPeriodeFraDesc(left.gyldighetsperiode, right.gyldighetsperiode)) + .sort((left, right) => sortPeriodeTilDesc(left.gyldighetsperiode, right.gyldighetsperiode)); - const [data, setData] = useState( - sortedArbeidsavtaler.map((arbeidsavtale) => ({ - arbeidsavtale: arbeidsavtale, - ekspandert: false, - })) - ); + const [data, setData] = useState( + sortedArbeidsavtaler.map((arbeidsavtale) => ({ + arbeidsavtale: arbeidsavtale, + ekspandert: false, + })) + ); - return ( -
- - - - - - - - - {data.map((innslag, counter) => { - const { arbeidsavtale, ekspandert } = innslag; + return ( +
+
- - {sprak[locale].yrke} - - - - {sprak[locale].periode} - - -
+ + + + + + + + {data.map((innslag, counter) => { + const { arbeidsavtale, ekspandert } = innslag; - const onClick = () => - setData( - data.map((values, i) => - i === counter - ? { ...values, ekspandert: !data[i].ekspandert } - : values - ) - ); + const onClick = () => + setData(data.map((values, i) => (i === counter ? { ...values, ekspandert: !data[i].ekspandert } : values))); - return ( - - - - - - - {ekspandert && ( - - - - )} - - ); - })} - -
+ + {sprak[locale].yrke} + + + + {sprak[locale].periode} + + +
- - - - - -
- -
-
- ); + return ( + + + + + + + + + + + + + {ekspandert && ( + + + + + + )} + + ); + })} + + +
+ ); }; diff --git a/src/modules/af-detaljert/tabs/Permisjon.tsx b/src/modules/af-detaljert/tabs/Permisjon.tsx index c88f9c31..7a9b85e2 100644 --- a/src/modules/af-detaljert/tabs/Permisjon.tsx +++ b/src/modules/af-detaljert/tabs/Permisjon.tsx @@ -1,60 +1,54 @@ -import React from "react"; -import { AFPermisjonPermittering } from "../../../types/arbeidsforhold"; -import { CheckPeriodAndPrint } from "../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { sprak } from "../../../language/provider"; -import { sortPeriodeFraDesc } from "../../../utils/date"; -import { useLocale } from "../../common/useLocale"; -import { Heading } from "@navikt/ds-react"; +import React from 'react'; +import { AFPermisjonPermittering } from '@/types/arbeidsforhold'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; +import { sortPeriodeFraDesc } from '@/utils/date'; +import { useLocale } from '../../common/useLocale'; +import { Heading } from '@navikt/ds-react'; interface Props { - permisjoner: AFPermisjonPermittering[]; + permisjoner: AFPermisjonPermittering[]; } export const Permisjon = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - props.permisjoner.sort((left, right) => - sortPeriodeFraDesc(left.periode, right.periode) - ); + props.permisjoner.sort((left, right) => sortPeriodeFraDesc(left.periode, right.periode)); - return ( -
- - - - - - - - - - {props.permisjoner.map((permisjon, i) => ( - - - - - - ))} - -
- - {sprak[locale].type} - - - - {sprak[locale].periode} - - - - {sprak[locale].prosent} - -
- {permisjon.type} - - - {permisjon.prosent}
-
- ); + return ( +
+ + + + + + + + + + {props.permisjoner.map((permisjon, i) => ( + + + + + + ))} + +
+ + {sprak[locale].type} + + + + {sprak[locale].periode} + + + + {sprak[locale].prosent} + +
{permisjon.type} + + {permisjon.prosent}
+
+ ); }; diff --git a/src/modules/af-detaljert/tabs/TabContent.tsx b/src/modules/af-detaljert/tabs/TabContent.tsx index 394f55b7..5aaa5ed4 100644 --- a/src/modules/af-detaljert/tabs/TabContent.tsx +++ b/src/modules/af-detaljert/tabs/TabContent.tsx @@ -1,34 +1,29 @@ -import React from "react"; -import { AFUtvidet } from "../../../types/arbeidsforhold"; -import { Timer } from "./Timer"; -import { Permisjon } from "./Permisjon"; -import { Utenlandsopphold } from "./Utenlandsopphold"; -import { Historikk } from "./Historikk"; -import { DetaljertTabType } from "./DetaljertTabs"; +import React from 'react'; +import { AFUtvidet } from '@/types/arbeidsforhold'; +import { Timer } from './Timer'; +import { Permisjon } from './Permisjon'; +import { Utenlandsopphold } from './Utenlandsopphold'; +import { Historikk } from './Historikk'; +import { DetaljertTabType } from './DetaljertTabs'; type Props = { - type: DetaljertTabType; - arbeidsforhold: AFUtvidet; + type: DetaljertTabType; + arbeidsforhold: AFUtvidet; }; export const TabContent = ({ type, arbeidsforhold }: Props) => { - const { - antallTimerForTimelonnet, - permisjonPermittering, - utenlandsopphold, - arbeidsavtaler, - } = arbeidsforhold; + const { antallTimerForTimelonnet, permisjonPermittering, utenlandsopphold, arbeidsavtaler } = arbeidsforhold; - switch (type) { - case "timer": - return ; - case "permisjon": - return ; - case "utenlandsopphold": - return ; - case "historikk": - return ; - default: - return null; - } + switch (type) { + case 'timer': + return ; + case 'permisjon': + return ; + case 'utenlandsopphold': + return ; + case 'historikk': + return ; + default: + return null; + } }; diff --git a/src/modules/af-detaljert/tabs/Timer.tsx b/src/modules/af-detaljert/tabs/Timer.tsx index d5022ec3..7e8307da 100644 --- a/src/modules/af-detaljert/tabs/Timer.tsx +++ b/src/modules/af-detaljert/tabs/Timer.tsx @@ -1,126 +1,112 @@ -import React, { Fragment, useState } from "react"; -import { AFTimerForTimelonnet } from "../../../types/arbeidsforhold"; -import { CheckAndPrint } from "../../../components/check-and-print/CheckAndPrint"; -import { sortPeriodeFraDesc } from "../../../utils/date"; -import dayjs from "dayjs"; -import { CheckDateAndPrint } from "../../../components/check-date-and-print/CheckDateAndPrint"; -import { CheckPeriodAndPrint } from "../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { sprak } from "../../../language/provider"; -import { useLocale } from "../../common/useLocale"; -import { ChevronUpIcon, ChevronDownIcon } from "@navikt/aksel-icons"; -import { Heading } from "@navikt/ds-react"; +import React, { Fragment, useState } from 'react'; +import { AFTimerForTimelonnet } from '@/types/arbeidsforhold'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { sortPeriodeFraDesc } from '@/utils/date'; +import dayjs from 'dayjs'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; +import { useLocale } from '../../common/useLocale'; +import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons'; +import { Heading } from '@navikt/ds-react'; interface Props { - timer: AFTimerForTimelonnet[]; + timer: AFTimerForTimelonnet[]; } export const Timer = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - props.timer.sort((left, right) => - sortPeriodeFraDesc(left.periode, right.periode) - ); + props.timer.sort((left, right) => sortPeriodeFraDesc(left.periode, right.periode)); - const initState: { - [key: string]: { - timerObjekt: AFTimerForTimelonnet[]; - ekspandert: boolean; - }; - } = {}; + const initState: { + [key: string]: { + timerObjekt: AFTimerForTimelonnet[]; + ekspandert: boolean; + }; + } = {}; - props.timer.forEach((timerObjekt, i) => { - const year = dayjs(timerObjekt.rapporteringsperiode).year(); + props.timer.forEach((timerObjekt, i) => { + const year = dayjs(timerObjekt.rapporteringsperiode).year(); - if (!initState[year]) { - initState[year] = { - timerObjekt: [timerObjekt], - ekspandert: !i, - }; - } else { - initState[year].timerObjekt.push(timerObjekt); - } - }); + if (!initState[year]) { + initState[year] = { + timerObjekt: [timerObjekt], + ekspandert: !i, + }; + } else { + initState[year].timerObjekt.push(timerObjekt); + } + }); - const [data, setData] = useState(initState); + const [data, setData] = useState(initState); - return ( -
- - - - - - - - - - {Object.keys(data) - .reverse() - .map((year) => { - const value = data[year]; + return ( +
+
- - {sprak[locale].rapporteringsperiode} - - - - {sprak[locale].opptjeningsperiode} - - - - {sprak[locale].antalltimer} - -
+ + + + + + + + + {Object.keys(data) + .reverse() + .map((year) => { + const value = data[year]; - const onClick = () => - setData({ - ...data, - [year]: { - ...data[year], - ekspandert: !data[year].ekspandert, - }, - }); + const onClick = () => + setData({ + ...data, + [year]: { + ...data[year], + ekspandert: !data[year].ekspandert, + }, + }); - return ( - - - - - {value.ekspandert && - value.timerObjekt.map((time, i) => ( - - - - - - ))} - - ); - })} - -
+ + {sprak[locale].rapporteringsperiode} + + + + {sprak[locale].opptjeningsperiode} + + + + {sprak[locale].antalltimer} + +
- -
- {time.periode && ( - - )} - - - - -
-
- ); + return ( + + + + + + + {value.ekspandert && + value.timerObjekt.map((time, i) => ( + + + {time.periode && } + + + + + + + + + ))} + + ); + })} + + +
+ ); }; diff --git a/src/modules/af-detaljert/tabs/Utenlandsopphold.tsx b/src/modules/af-detaljert/tabs/Utenlandsopphold.tsx index 8a0b8085..c6681150 100644 --- a/src/modules/af-detaljert/tabs/Utenlandsopphold.tsx +++ b/src/modules/af-detaljert/tabs/Utenlandsopphold.tsx @@ -1,11 +1,11 @@ import React, { Fragment, useState } from 'react'; -import { AFUtenlandsopphold } from '../../../types/arbeidsforhold'; -import { CheckPeriodAndPrint } from '../../../components/check-period-and-print/CheckPeriodAndPrint'; -import { CheckAndPrint } from '../../../components/check-and-print/CheckAndPrint'; -import { sortPeriodeFraDesc } from '../../../utils/date'; +import { AFUtenlandsopphold } from '@/types/arbeidsforhold'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { sortPeriodeFraDesc } from '@/utils/date'; import dayjs from 'dayjs'; -import { CheckDateAndPrint } from '../../../components/check-date-and-print/CheckDateAndPrint'; -import { sprak } from '../../../language/provider'; +import { CheckDateAndPrint } from '@/components/check-date-and-print/CheckDateAndPrint'; +import { sprak } from '@/language/provider'; import { useLocale } from '../../common/useLocale'; import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons'; import { Heading } from '@navikt/ds-react'; diff --git a/src/modules/af-liste/Liste.tsx b/src/modules/af-liste/Liste.tsx index fc9d637b..141b1b32 100644 --- a/src/modules/af-liste/Liste.tsx +++ b/src/modules/af-liste/Liste.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { AFListeData, AFListeProps } from './index'; -import { sortPeriodeFraDesc, sortPeriodeTilDesc } from '../../utils/date'; -import { sprak } from '../../language/provider'; +import { sortPeriodeFraDesc, sortPeriodeTilDesc } from '@/utils/date'; +import { sprak } from '@/language/provider'; import { useLocale } from '../common/useLocale'; import { ListeInnslag } from './innslag/ListeInnslag'; import { VisFlereButton } from './vis-flere-button/VisFlereButton'; diff --git a/src/modules/af-liste/index.tsx b/src/modules/af-liste/index.tsx index 73dbd969..b642a861 100644 --- a/src/modules/af-liste/index.tsx +++ b/src/modules/af-liste/index.tsx @@ -1,14 +1,14 @@ import React, { useEffect, useState } from 'react'; -import { ErrorMessage, HTTPError } from '../../components/error/Error'; -import { AFSimpel } from '../../types/arbeidsforhold'; -import { hentListeMedArbeidsforhold } from '../../clients/apiClient'; -import { Spinner } from '../../components/spinner/Spinner'; +import { ErrorMessage, HTTPError } from '@/components/error/Error'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { hentListeMedArbeidsforhold } from '@/clients/apiClient'; +import { Spinner } from '@/components/spinner/Spinner'; import { Liste } from './Liste'; -import { Environment } from '../../utils/environment'; +import { Environment } from '@/utils/environment'; import { Link } from 'react-router-dom'; -import { Miljo } from '../../types/miljo'; -import { AFPrint } from '../../types/print'; -import { Locale } from '../../types/locale'; +import { Miljo } from '@/types/miljo'; +import { AFPrint } from '@/types/print'; +import { Locale } from '@/types/locale'; import { useLocale } from '../common/useLocale'; type State = { status: 'LOADING' } | { status: 'RESULT'; arbeidsforhold: AFSimpel[] } | { status: 'ERROR'; error: HTTPError }; diff --git a/src/modules/af-liste/innslag/ListeInnslag.tsx b/src/modules/af-liste/innslag/ListeInnslag.tsx index 669a46b9..f497ff93 100644 --- a/src/modules/af-liste/innslag/ListeInnslag.tsx +++ b/src/modules/af-liste/innslag/ListeInnslag.tsx @@ -1,40 +1,38 @@ -import React from "react"; -import { ListeTittel } from "../tittel/ListeTittel"; -import { CheckAndPrint } from "../../../components/check-and-print/CheckAndPrint"; -import { CheckPeriodAndPrint } from "../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { sprak } from "../../../language/provider"; -import { useLocale } from "../../common/useLocale"; -import { AFSimpel } from "../../../types/arbeidsforhold"; -import { AFListeOnClick } from "../index"; +import React from 'react'; +import { ListeTittel } from '../tittel/ListeTittel'; +import { CheckAndPrint } from '@/components/check-and-print/CheckAndPrint'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { sprak } from '@/language/provider'; +import { useLocale } from '../../common/useLocale'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { AFListeOnClick } from '../index'; interface Props { - foretak: AFSimpel; - onClick: AFListeOnClick; + foretak: AFSimpel; + onClick: AFListeOnClick; } export const ListeInnslag = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - return ( -
-
-
- + return ( +
+
+
+ +
+
+ +
+
+ +
+
-
- -
-
- -
-
-
- ); + ); }; diff --git a/src/modules/af-liste/print/PrintButton.tsx b/src/modules/af-liste/print/PrintButton.tsx index eb0eaa1a..f66633fa 100644 --- a/src/modules/af-liste/print/PrintButton.tsx +++ b/src/modules/af-liste/print/PrintButton.tsx @@ -3,8 +3,8 @@ import { PDFDownloadLink } from '@react-pdf/renderer'; import { ListePDF } from './pdf/ListePDF'; import { useLocale } from '../../common/useLocale'; import { useIsPdf } from '../../common/useIsPdf'; -import { AFSimpel } from '../../../types/arbeidsforhold'; -import { sprak } from '../../../language/provider'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { sprak } from '@/language/provider'; import { PrinterSmallIcon } from '@navikt/aksel-icons'; interface Props { diff --git a/src/modules/af-liste/print/pdf/ListePDF.tsx b/src/modules/af-liste/print/pdf/ListePDF.tsx index 910fe20e..e243b359 100644 --- a/src/modules/af-liste/print/pdf/ListePDF.tsx +++ b/src/modules/af-liste/print/pdf/ListePDF.tsx @@ -1,47 +1,42 @@ -import React from "react"; -import { Document, Font, Page, Text, View } from "@react-pdf/renderer"; -import { AFSimpel } from "../../../../types/arbeidsforhold"; -import { ArbeidsgiverTittel } from "../../../../components/arbeidsgiver/ArbeidsgiverTittel"; -import { CheckPeriodAndPrint } from "../../../../components/check-period-and-print/CheckPeriodAndPrint"; -import { PdfHeader } from "../../../common/PdfHeader"; -import { pdfStyles } from "../../../common/pdfStyles"; -import { PdfFooter } from "../../../common/PdfFooter"; -import { pdfFont } from "../../../common/pdfFont"; +import React from 'react'; +import { Document, Font, Page, Text, View } from '@react-pdf/renderer'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { ArbeidsgiverTittel } from '@/components/arbeidsgiver/ArbeidsgiverTittel'; +import { CheckPeriodAndPrint } from '@/components/check-period-and-print/CheckPeriodAndPrint'; +import { PdfHeader } from '../../../common/PdfHeader'; +import { pdfStyles } from '../../../common/pdfStyles'; +import { PdfFooter } from '../../../common/PdfFooter'; +import { pdfFont } from '../../../common/pdfFont'; interface Props { - arbeidsforhold: AFSimpel[]; - printName: string; - printSSO: string; + arbeidsforhold: AFSimpel[]; + printName: string; + printSSO: string; } // Create Document Component export const ListePDF = ({ arbeidsforhold, printName, printSSO }: Props) => { - Font.register(pdfFont); + Font.register(pdfFont); - return ( - - - - - {arbeidsforhold.map((foretak, i) => ( - - - - - {foretak.yrke} - - - - - ))} - - - - - ); + return ( + + + + + {arbeidsforhold.map((foretak, i) => ( + + + + + {foretak.yrke} + + + + + ))} + + + + + ); }; diff --git a/src/modules/af-liste/tittel/ListeTittel.tsx b/src/modules/af-liste/tittel/ListeTittel.tsx index 88d3849b..af9b7c33 100644 --- a/src/modules/af-liste/tittel/ListeTittel.tsx +++ b/src/modules/af-liste/tittel/ListeTittel.tsx @@ -1,44 +1,38 @@ -import React from "react"; -import { AFListeOnClick } from "../index"; -import { AFSimpel } from "../../../types/arbeidsforhold"; -import { ArbeidsgiverTittel } from "../../../components/arbeidsgiver/ArbeidsgiverTittel"; +import React from 'react'; +import { AFListeOnClick } from '@/index'; +import { AFSimpel } from '@/types/arbeidsforhold'; +import { ArbeidsgiverTittel } from '@/components/arbeidsgiver/ArbeidsgiverTittel'; interface Props { - foretak: AFSimpel; - onClick: AFListeOnClick; + foretak: AFSimpel; + onClick: AFListeOnClick; } export const ListeTittel = (props: Props) => { - const { foretak, onClick } = props; + const { foretak, onClick } = props; - const replaceId = (path: string, id: number) => - path.replace("{id}", id.toString()); + const replaceId = (path: string, id: number) => path.replace('{id}', id.toString()); - switch (onClick.type) { - case "INGEN_ON_CLICK": - return ; - case "LENKE": - return ( - - - - ); - case "REACT_ROUTER_LENKE": - return ( - - - - ); - case "KNAPP": - return ( - - ); - } + switch (onClick.type) { + case 'INGEN_ON_CLICK': + return ; + case 'LENKE': + return ( + + + + ); + case 'REACT_ROUTER_LENKE': + return ( + + + + ); + case 'KNAPP': + return ( + + ); + } }; diff --git a/src/modules/af-liste/vis-flere-button/VisFlereButton.tsx b/src/modules/af-liste/vis-flere-button/VisFlereButton.tsx index 90c1ca87..d4550647 100644 --- a/src/modules/af-liste/vis-flere-button/VisFlereButton.tsx +++ b/src/modules/af-liste/vis-flere-button/VisFlereButton.tsx @@ -1,30 +1,26 @@ -import React from "react"; -import { sprak } from "../../../language/provider"; -import { useLocale } from "../../common/useLocale"; -import { ChevronUpIcon, ChevronDownIcon } from "@navikt/aksel-icons"; +import React from 'react'; +import { sprak } from '@/language/provider'; +import { useLocale } from '../../common/useLocale'; +import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons'; interface Props { - toggleVisAlle: () => void; - visAlle: boolean; + toggleVisAlle: () => void; + visAlle: boolean; } export const VisFlereButton = (props: Props) => { - const { locale } = useLocale(); - return ( - - ); + const { locale } = useLocale(); + return ( + + ); }; diff --git a/src/modules/common/PdfFooter.tsx b/src/modules/common/PdfFooter.tsx index d0c75049..225714fa 100644 --- a/src/modules/common/PdfFooter.tsx +++ b/src/modules/common/PdfFooter.tsx @@ -1,6 +1,6 @@ import { Text, View } from '@react-pdf/renderer'; import React from 'react'; -import { sprak } from '../../language/provider'; +import { sprak } from '@/language/provider'; import dayjs from 'dayjs'; import { useLocale } from './useLocale'; import { pdfStyles } from './pdfStyles'; diff --git a/src/modules/common/PdfHeader.tsx b/src/modules/common/PdfHeader.tsx index 43317a44..b557e3ac 100644 --- a/src/modules/common/PdfHeader.tsx +++ b/src/modules/common/PdfHeader.tsx @@ -1,48 +1,44 @@ -import { Image, StyleSheet, Text, View } from "@react-pdf/renderer"; -import logo from "../../assets/icons/logo.png"; -import React from "react"; -import { sprak } from "../../language/provider"; -import { useLocale } from "./useLocale"; -import { pdfStyles } from "./pdfStyles"; +import { Image, StyleSheet, Text, View } from '@react-pdf/renderer'; +import logo from '@/assets/icons/logo.png'; +import React from 'react'; +import { sprak } from '@/language/provider'; +import { useLocale } from './useLocale'; +import { pdfStyles } from './pdfStyles'; interface Props { - printName: string; - printSSO: string; + printName: string; + printSSO: string; } export const PdfHeader = (props: Props) => { - const { locale } = useLocale(); + const { locale } = useLocale(); - const styles = StyleSheet.create({ - image: { - padding: 10, - width: 75, - }, - }); + const styles = StyleSheet.create({ + image: { + padding: 10, + width: 75, + }, + }); - return ( - - - - - - {sprak[locale].arbeidsforhold} - - {props.printName} - - {props.printSSO.replace(/.{5}$/, " $&")} - + return ( + + + + + + {sprak[locale].arbeidsforhold} + + {props.printName} + {props.printSSO.replace(/.{5}$/, ' $&')} + + + + `${sprak[locale].side} ${pageNumber} / ${totalPages}`} + /> + - - - - `${sprak[locale].side} ${pageNumber} / ${totalPages}` - } - /> - - - ); + ); }; diff --git a/src/modules/common/pdfFont.tsx b/src/modules/common/pdfFont.tsx index adcf51ea..c0cd4dbb 100644 --- a/src/modules/common/pdfFont.tsx +++ b/src/modules/common/pdfFont.tsx @@ -1,12 +1,8 @@ -import Regular from "../../assets/fonts/ODelI1aHBYDBqgeIAH2zlNRl0pGnog23EMYRrBmUzJQ.ttf"; -import Italic from "../../assets/fonts/M2Jd71oPJhLKp0zdtTvoMwRX4TIfMQQEXLu74GftruE.ttf"; -import Bold from "../../assets/fonts/toadOcfmlt9b38dHJxOBGPgXsetDviZcdR5OzC1KPcw.ttf"; +import Regular from '@/assets/fonts/ODelI1aHBYDBqgeIAH2zlNRl0pGnog23EMYRrBmUzJQ.ttf'; +import Italic from '@/assets/fonts/M2Jd71oPJhLKp0zdtTvoMwRX4TIfMQQEXLu74GftruE.ttf'; +import Bold from '@/assets/fonts/toadOcfmlt9b38dHJxOBGPgXsetDviZcdR5OzC1KPcw.ttf'; export const pdfFont = { - family: "SourceSansPro", - fonts: [ - { src: Regular }, - { src: Italic, fontStyle: "italic" }, - { src: Bold, fontWeight: 700 }, - ], + family: 'SourceSansPro', + fonts: [{ src: Regular }, { src: Italic, fontStyle: 'italic' }, { src: Bold, fontWeight: 700 }], }; diff --git a/src/modules/common/useLocale.tsx b/src/modules/common/useLocale.tsx index c81ca778..3ade5300 100644 --- a/src/modules/common/useLocale.tsx +++ b/src/modules/common/useLocale.tsx @@ -1,9 +1,9 @@ -import { Locale } from "../../types/locale"; -import React, { useContext } from "react"; +import { Locale } from '@/types/locale'; +import React, { useContext } from 'react'; -const LocaleContext = React.createContext("nb"); +const LocaleContext = React.createContext('nb'); export const useLocale = () => { - const locale = useContext(LocaleContext); - return { locale: locale, LocaleProvider: LocaleContext.Provider }; + const locale = useContext(LocaleContext); + return { locale: locale, LocaleProvider: LocaleContext.Provider }; }; diff --git a/src/utils/date.ts b/src/utils/date.ts index 9657d5d5..59f3815d 100644 --- a/src/utils/date.ts +++ b/src/utils/date.ts @@ -1,5 +1,5 @@ import dayjs from 'dayjs'; -import { AFPeriode } from '../types/arbeidsforhold'; +import { AFPeriode } from '@/types/arbeidsforhold'; export const sortDateStringDesc = (a?: string, b?: string) => (a && b ? dayjs(b).diff(dayjs(a)) : !a && b ? -1 : a && !b ? 1 : 0); diff --git a/src/utils/environment.ts b/src/utils/environment.ts index 6b347248..aac36209 100644 --- a/src/utils/environment.ts +++ b/src/utils/environment.ts @@ -1,4 +1,4 @@ -import { Miljo } from '../types/miljo'; +import { Miljo } from '@/types/miljo'; export class Environment { static apiUrl: string;