diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/Bestillingsdata.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/Bestillingsdata.tsx index 71d2f98e2b1..87cff9d64b5 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/Bestillingsdata.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/Bestillingsdata.tsx @@ -35,6 +35,7 @@ import { SigrunstubPensjonsgivende } from '@/components/fagsystem/sigrunstubPens import { Inntektstub } from '@/components/fagsystem/inntektstub/bestilling/Inntektstub' import { Inntektsmelding } from '@/components/fagsystem/inntektsmelding/bestilling/Inntektsmelding' import { Skattekort } from '@/components/fagsystem/skattekort/bestilling/Skattekort' +import { Arbeidsplassen } from '@/components/fagsystem/arbeidsplassen/bestilling/Arbeidsplassen' export const BestillingTitle = styled.h4` margin: 5px 0 15px 0; @@ -116,6 +117,7 @@ export const Bestillingsdata = ({ bestilling }: any) => { + ) } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes.tsx new file mode 100644 index 00000000000..f9d6bef3339 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes.tsx @@ -0,0 +1,107 @@ +export type ArbeidsplassenTypes = { + jobboensker?: Jobboensker + utdanning?: Array + fagbrev?: Array + arbeidserfaring?: Array + annenErfaring?: Array + kompetanser?: Array + offentligeGodkjenninger?: Array + andreGodkjenninger?: Array + spraak?: Array + foererkort?: Array + kurs?: Array + sammendrag?: string + harHjemmel: boolean +} + +type Occupation = { + title: string + styrk08: string +} + +type Location = { + location: string + code: string +} + +export type Jobboensker = { + startOption: string | null + occupations: Array + locations: Array + occupationTypes: Array + workLoadTypes: Array + workScheduleTypes: Array +} + +export type Utdanning = { + institution: string + field: string + nuskode: string + startDate: string | null + endDate: string | null + description: string + ongoing: boolean +} + +export type Fagbrev = { + title: string + type: string +} + +export type Arbeidserfaring = { + employer: string + jobTitle: string + alternativeJobTitle: string + location: string + description: string + fromDate: string | null + toDate: string | null + ongoing: boolean + styrkkode: string +} + +export type AnnenErfaring = { + description: string + role: string + fromDate: string | null + toDate: string | null + ongoing: boolean +} + +export type Kompetanser = { + title: string +} + +export type OffentligeGodkjenninger = { + title: string + issuer: string + fromDate: string | null + toDate: string | null +} + +export type AndreGodkjenninger = { + certificateName: string + issuer: string + fromDate: string | null + toDate: string | null +} + +export type Spraak = { + language: string + oralProficiency: string + writtenProficiency: string +} + +export type Foererkort = { + type: string + acquiredDate: string | null + expiryDate: string | null +} + +export type Kurs = { + title: string + issuer: string + duration: number + durationUnit: string + date: string | null +} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/bestilling/Arbeidsplassen.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/bestilling/Arbeidsplassen.tsx new file mode 100644 index 00000000000..793a0d6ce29 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/bestilling/Arbeidsplassen.tsx @@ -0,0 +1,272 @@ +import { isEmpty } from '@/components/fagsystem/pdlf/form/partials/utils' +import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary' +import React from 'react' +import { BestillingData, BestillingTitle } from '@/components/bestilling/sammendrag/Bestillingsdata' +import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' +import { TitleValue } from '@/components/ui/titleValue/TitleValue' +import { arrayToString, formatDate, oversettBoolean, showLabel } from '@/utils/DataFormatter' +import { + AndreGodkjenninger, + AnnenErfaring, + Arbeidserfaring, + ArbeidsplassenTypes, + Fagbrev, + Foererkort, + Kompetanser, + Kurs, + OffentligeGodkjenninger, + Spraak, + Utdanning, +} from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' + +type ArbeidsplassenCVTypes = { + arbeidsplassenCV: ArbeidsplassenTypes +} + +export const Arbeidsplassen = ({ arbeidsplassenCV }: ArbeidsplassenCVTypes) => { + if (!arbeidsplassenCV || isEmpty(arbeidsplassenCV)) { + return null + } + + const jobboensker = arbeidsplassenCV?.jobboensker + const utdanningListe = arbeidsplassenCV?.utdanning + const fagbrevListe = arbeidsplassenCV?.fagbrev + const arbeidserfaringListe = arbeidsplassenCV?.arbeidserfaring + const annenErfaringListe = arbeidsplassenCV?.annenErfaring + const kompetanserListe = arbeidsplassenCV?.kompetanser + const offentligeGodkjenningerListe = arbeidsplassenCV?.offentligeGodkjenninger + const andreGodkjenningerListe = arbeidsplassenCV?.andreGodkjenninger + const spraakListe = arbeidsplassenCV?.spraak + const foererkortListe = arbeidsplassenCV?.foererkort + const kursListe = arbeidsplassenCV?.kurs + const sammendrag = arbeidsplassenCV?.sammendrag + const harHjemmel = arbeidsplassenCV?.harHjemmel + + return ( +
+ + Arbeidsplassen (CV) + {jobboensker && ( + <> +

Jobbønsker

+ + jobb?.title))} + /> + omraade?.location))} + /> + showLabel('arbeidsmengde', type)), + )} + /> + showLabel('arbeidstid', type)), + )} + /> + showLabel('ansettelsestype', type)), + )} + /> + + + + )} + {utdanningListe && utdanningListe?.length > 0 && ( + + {(utdanning: Utdanning, idx: number) => { + return ( + + + + + + + + + + ) + }} + + )} + {fagbrevListe && fagbrevListe?.length > 0 && ( + + {(fagbrev: Fagbrev, idx: number) => { + return ( + + + + ) + }} + + )} + {arbeidserfaringListe && arbeidserfaringListe?.length > 0 && ( + + {(arbeidsforhold: Arbeidserfaring, idx: number) => { + return ( + + + + + + + + + + + ) + }} + + )} + {annenErfaringListe && annenErfaringListe?.length > 0 && ( + + {(annenErfaring: AnnenErfaring, idx: number) => { + return ( + + + + + + + + ) + }} + + )} + {kompetanserListe && kompetanserListe?.length > 0 && ( + + {(kompetanse: Kompetanser, idx: number) => { + return ( + + + + ) + }} + + )} + {offentligeGodkjenningerListe && offentligeGodkjenningerListe?.length > 0 && ( + + {(offentligGodkjenning: OffentligeGodkjenninger, idx: number) => { + return ( + + + + + + + ) + }} + + )} + {andreGodkjenningerListe && andreGodkjenningerListe?.length > 0 && ( + + {(annenGodkjenning: AndreGodkjenninger, idx: number) => { + return ( + + + + + + + ) + }} + + )} + {spraakListe && spraakListe?.length > 0 && ( + + {(spraak: Spraak, idx: number) => { + return ( + + + + + + ) + }} + + )} + {foererkortListe && foererkortListe?.length > 0 && ( + + {(foererkort: Foererkort, idx: number) => { + return ( + + + + + + ) + }} + + )} + {kursListe && kursListe?.length > 0 && ( + + {(kurs: Kurs, idx: number) => { + return ( + + + + + + + + ) + }} + + )} + {sammendrag && ( + <> +

Sammendrag

+ + + )} + <> +

Hjemmel

+ + +
+
+ ) +} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/Visning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/Visning.tsx index c15515a3240..22fe7f2c6e3 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/Visning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/Visning.tsx @@ -18,6 +18,14 @@ import { HjemmelVisning } from '@/components/fagsystem/arbeidsplassen/visning/pa import styled from 'styled-components' import { PadlockLockedFillIcon } from '@navikt/aksel-icons' import { BodyLong } from '@navikt/ds-react' +import { ArbeidsplassenTypes } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' + +type ArbeidsplassenVisningProps = { + data: ArbeidsplassenTypes + loading: boolean + error: any + hjemmel: boolean +} const StyledCVVisning = styled.div` margin-bottom: 20px; @@ -34,7 +42,12 @@ const ForbiddenVisning = styled.div` } ` -export const ArbeidsplassenVisning = ({ data, loading, error, hjemmel }) => { +export const ArbeidsplassenVisning = ({ + data, + loading, + error, + hjemmel, +}: ArbeidsplassenVisningProps) => { if (loading && !data && !error) return if (error?.status === 403) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/AndreGodkjenningerVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/AndreGodkjenningerVisning.tsx index 480691501e6..5c4cfb7820e 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/AndreGodkjenningerVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/AndreGodkjenningerVisning.tsx @@ -3,8 +3,13 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { formatDate, showLabel } from '@/utils/DataFormatter' +import { AndreGodkjenninger } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const AndreGodkjenningerVisning = ({ data }) => { +type AndreGodkjenningerVisningProps = { + data?: Array +} + +export const AndreGodkjenningerVisning = ({ data }: AndreGodkjenningerVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const AndreGodkjenningerVisning = ({ data }) => {
- {(annenGodkjenning) => ( + {(annenGodkjenning: AndreGodkjenninger) => ( <> { +type AnnenErfaringVisningProps = { + data?: Array +} + +export const AnnenErfaringVisning = ({ data }: AnnenErfaringVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const AnnenErfaringVisning = ({ data }) => {
- {(annenErfaring) => ( + {(annenErfaring: AnnenErfaring) => ( <> diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/ArbeidserfaringVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/ArbeidserfaringVisning.tsx index 586950c5e79..380fcc6b846 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/ArbeidserfaringVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/ArbeidserfaringVisning.tsx @@ -3,8 +3,13 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { formatDate, oversettBoolean, showLabel } from '@/utils/DataFormatter' +import { Arbeidserfaring } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const ArbeidserfaringVisning = ({ data }) => { +type ArbeidserfaringVisningProps = { + data?: Array +} + +export const ArbeidserfaringVisning = ({ data }: ArbeidserfaringVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const ArbeidserfaringVisning = ({ data }) => {
- {(arbeidserfaring) => ( + {(arbeidserfaring: Arbeidserfaring) => ( <> { +type FagbrevVisningProps = { + data?: Array +} + +export const FagbrevVisning = ({ data }: FagbrevVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const FagbrevVisning = ({ data }) => {
- {(fagbrev) => ( + {(fagbrev: Fagbrev) => ( <> { +type FoererkortVisningProps = { + data?: Array +} + +export const FoererkortVisning = ({ data }: FoererkortVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const FoererkortVisning = ({ data }) => {
- {(foererkort) => ( + {(foererkort: Foererkort) => ( <> { +type HjemmelVisningProps = { + hjemmel: boolean +} + +export const HjemmelVisning = ({ hjemmel }: HjemmelVisningProps) => { return (
diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/JobboenskerVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/JobboenskerVisning.tsx index c6db4ba0c2b..21545ca3be5 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/JobboenskerVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/JobboenskerVisning.tsx @@ -2,8 +2,13 @@ import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary' import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { arrayToString, showLabel } from '@/utils/DataFormatter' +import { Jobboensker } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const JobboenskerVisning = ({ data }) => { +type JobboenskerVisningProps = { + data?: Jobboensker +} + +export const JobboenskerVisning = ({ data }: JobboenskerVisningProps) => { if ( !data || ((!data.occupations || data.occupations.length < 1) && @@ -33,19 +38,19 @@ export const JobboenskerVisning = ({ data }) => { showLabel('arbeidsmengde', type)) + data.workLoadTypes?.map((type) => showLabel('arbeidsmengde', type)), )} /> showLabel('arbeidstid', type)) + data.workScheduleTypes?.map((type) => showLabel('arbeidstid', type)), )} /> showLabel('ansettelsestype', type)) + data.occupationTypes?.map((type) => showLabel('ansettelsestype', type)), )} /> diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/KompetanserVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/KompetanserVisning.tsx index 18e80585f2a..ce93570d341 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/KompetanserVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/KompetanserVisning.tsx @@ -3,8 +3,13 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { showLabel } from '@/utils/DataFormatter' +import { Kompetanser } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const KompetanserVisning = ({ data }) => { +type KompetanserVisningProps = { + data?: Array +} + +export const KompetanserVisning = ({ data }: KompetanserVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const KompetanserVisning = ({ data }) => {
- {(kompetanse) => ( + {(kompetanse: Kompetanser) => ( <> { +type KursVisningProps = { + data?: Array +} + +export const KursVisning = ({ data }: KursVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const KursVisning = ({ data }) => {
- {(kurs) => ( + {(kurs: Kurs) => ( <> diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/OffentligeGodkjenningerVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/OffentligeGodkjenningerVisning.tsx index 286285f04e5..71803c375e9 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/OffentligeGodkjenningerVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/OffentligeGodkjenningerVisning.tsx @@ -3,8 +3,13 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { formatDate, showLabel } from '@/utils/DataFormatter' +import { OffentligeGodkjenninger } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const OffentligeGodkjenningerVisning = ({ data }) => { +type OffentligeGodkjenningerVisningProps = { + data?: Array +} + +export const OffentligeGodkjenningerVisning = ({ data }: OffentligeGodkjenningerVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const OffentligeGodkjenningerVisning = ({ data }) => {
- {(offentligGodkjenning) => ( + {(offentligGodkjenning: OffentligeGodkjenninger) => ( <> { +type SammendragVisningProps = { + data?: string +} + +export const SammendragVisning = ({ data }: SammendragVisningProps) => { if (!data || data.length < 1) { return null } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/SpraakVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/SpraakVisning.tsx index c18aaa486cb..7194151c297 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/SpraakVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/arbeidsplassen/visning/partials/SpraakVisning.tsx @@ -3,8 +3,13 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import React from 'react' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { showLabel } from '@/utils/DataFormatter' +import { Spraak } from '@/components/fagsystem/arbeidsplassen/ArbeidsplassenTypes' -export const SpraakVisning = ({ data }) => { +type SpraakVisningProps = { + data?: Array +} + +export const SpraakVisning = ({ data }: SpraakVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const SpraakVisning = ({ data }) => {
- {(spraak) => ( + {(spraak: Spraak) => ( <> { +type UtdanningVisningProps = { + data?: Array +} + +export const UtdanningVisning = ({ data }: UtdanningVisningProps) => { if (!data || data.length < 1) { return null } @@ -13,7 +18,7 @@ export const UtdanningVisning = ({ data }) => {
- {(utdanning) => ( + {(utdanning: Utdanning) => ( <>