From 73130ac639ad979d3733a68d9f0a5fece7a13ba3 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 27 Jun 2025 10:25:09 +0200 Subject: [PATCH 01/21] Lagre soek design --- .../src/components/ui/soekForm/SisteSoek.tsx | 48 +++++++++++++++++++ .../js/src/pages/dollySoek/DollySoekPage.tsx | 15 +++++- .../main/js/src/pages/dollySoek/SoekForm.tsx | 11 ++++- .../src/main/js/src/utils/hooks/useSoek.tsx | 15 ++++++ 4 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx create mode 100644 apps/dolly-frontend/src/main/js/src/utils/hooks/useSoek.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx new file mode 100644 index 00000000000..e95f46e203c --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -0,0 +1,48 @@ +import { useHentLagredeSoek } from '@/utils/hooks/useSoek' +import { Chips, VStack } from '@navikt/ds-react' +import { useState } from 'react' + +export enum soekType { + dolly = 'DOLLY', + tenor = 'TENOR', +} + +export const SisteSoek = ({ soekType }) => { + const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) + console.log('lagredeSoek: ', lagredeSoek) //TODO - SLETT MEG + //TODO: Map igjennom lagredeSoek, hvor siste soek ligger foerst, og push til nytt objekt, kun hvis likt objekt (eller key?) ikke finnes fra foer + //TODO: Max 10 items lang + + const [selected, setSelected] = useState([]) + + const lagredeSoekData = { + kjoenn: { path: 'personRequest.kjoenn', value: 'KVINNE', label: 'Kjønn: Kvinne' }, + alderFom: { path: 'personRequest.alderFom', value: '20', label: 'Alder f.o.m: 20' }, + alderTom: { path: 'personRequest.alderTom', value: '30', label: 'Alder t.o.m: 30' }, + } + + const options = Object.values(lagredeSoekData) + + return ( + + {/*

SISTE SØK:

*/} + + {options.map((option) => ( + + setSelected( + selected.includes(option.label) + ? selected.filter((x) => x !== option.label) + : [...selected, option.label], + ) + } + > + {option.label} + + ))} + +
+ ) +} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 2f3fd933adb..3eacde8432c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -2,8 +2,20 @@ import Title from '../../components/title' import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { bottom } from '@popperjs/core' import { SoekForm } from '@/pages/dollySoek/SoekForm' +import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' +import { useEffect, useState } from 'react' export default () => { + const [lagreSoekRequest, setLagreSoekRequest] = useState({}) + console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG + + useEffect(() => { + return () => { + //TODO: send lagreSoekRequest til backend for lagring + console.log('Kom deg vekk!') //TODO - SLETT MEG + } + }, []) + return (
@@ -13,7 +25,8 @@ export default () => { eksisterende personer til nye formål.
- + +
) } diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index f9672b8bc91..d0871363b62 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -22,12 +22,13 @@ import { Familierelasjoner } from '@/pages/dollySoek/soekFormPartials/Familierel import { Identifikasjon } from '@/pages/dollySoek/soekFormPartials/Identifikasjon' import { Annet } from '@/pages/dollySoek/soekFormPartials/Annet' import { runningE2ETest } from '@/service/services/Request' +import { codeToNorskLabel } from '@/utils/DataFormatter' export const dollySoekLocalStorageKey = 'dollySoek' export const personPath = 'personRequest' export const adressePath = 'personRequest.adresse' -export const SoekForm = () => { +export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { const localStorageValue = localStorage.getItem(dollySoekLocalStorageKey) const initialValues = localStorageValue ? JSON.parse(localStorageValue) : dollySoekInitialValues @@ -80,6 +81,14 @@ export const SoekForm = () => { const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } reset(updatedRequest) setRequest(updatedRequest) + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: { + path: `${personPath}.${path}`, + value: value, + label: `${codeToNorskLabel(path)}: ${value}`, + }, + }) } const handleChangeAdresse = (value: any, path: string) => { diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useSoek.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useSoek.tsx new file mode 100644 index 00000000000..1e753272e29 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useSoek.tsx @@ -0,0 +1,15 @@ +import { fetcher } from '@/api' +import useSWR from 'swr' + +export const useHentLagredeSoek = (soekType: string) => { + const { data, isLoading, error } = useSWR( + `/dolly-backend/api/v1/soek?soekType=${soekType}`, + fetcher, + ) + + return { + lagredeSoek: data, + loading: isLoading, + error: error, + } +} From e0b25a525117bad9c768d4730ab475b1742e6cf2 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 27 Jun 2025 12:01:42 +0200 Subject: [PATCH 02/21] Post lagret soek --- .../js/src/pages/dollySoek/DollySoekPage.tsx | 38 ++++++++++++++++--- .../main/js/src/pages/dollySoek/SoekForm.tsx | 21 +++++----- .../service/services/dolly/DollyEndpoints.tsx | 4 ++ .../service/services/dolly/DollyService.tsx | 4 ++ 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 3eacde8432c..31ea67549e3 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -1,21 +1,43 @@ import Title from '../../components/title' import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { bottom } from '@popperjs/core' -import { SoekForm } from '@/pages/dollySoek/SoekForm' +import { dollySoekLocalStorageKey, SoekForm } from '@/pages/dollySoek/SoekForm' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' -import { useEffect, useState } from 'react' +import { useEffect, useRef, useState } from 'react' +import { useForm } from 'react-hook-form' +import * as _ from 'lodash-es' +import { dollySoekInitialValues } from '@/pages/dollySoek/dollySoekInitialValues' +import { DollyApi } from '@/service/Api' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) + const lagreSoekRequestRef = useRef(lagreSoekRequest) console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG + useEffect(() => { + lagreSoekRequestRef.current = lagreSoekRequest + }, [lagreSoekRequest]) + useEffect(() => { return () => { - //TODO: send lagreSoekRequest til backend for lagring - console.log('Kom deg vekk!') //TODO - SLETT MEG + if (Object.keys(lagreSoekRequestRef.current).length > 0) { + console.log('lagreSoekRequestRef.current: ', lagreSoekRequestRef.current) //TODO - SLETT MEG + DollyApi.lagreSoek(lagreSoekRequestRef.current, 'DOLLY') + .then((response) => console.log(response)) + .catch((error) => console.error(error)) + } } }, []) + const localStorageValue = localStorage.getItem(dollySoekLocalStorageKey) + const initialValues = localStorageValue ? JSON.parse(localStorageValue) : dollySoekInitialValues + + const initialValuesClone = _.cloneDeep(initialValues) + const formMethods = useForm({ + mode: 'onChange', + defaultValues: initialValuesClone, + }) + return (
@@ -26,7 +48,13 @@ export default () => {
- +
) } diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index d0871363b62..8ac34302252 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -4,7 +4,7 @@ import { Button, Table } from '@navikt/ds-react' import { ResultatVisning } from '@/pages/dollySoek/ResultatVisning' import * as _ from 'lodash-es' import { TestComponentSelectors } from '#/mocks/Selectors' -import { Form, FormProvider, useForm } from 'react-hook-form' +import { Form, FormProvider } from 'react-hook-form' import { Buttons, Header, Soekefelt, SoekefeltWrapper } from '@/components/ui/soekForm/SoekForm' import { AdresserPaths, @@ -28,10 +28,13 @@ export const dollySoekLocalStorageKey = 'dollySoek' export const personPath = 'personRequest' export const adressePath = 'personRequest.adresse' -export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { - const localStorageValue = localStorage.getItem(dollySoekLocalStorageKey) - const initialValues = localStorageValue ? JSON.parse(localStorageValue) : dollySoekInitialValues - +export const SoekForm = ({ + formMethods, + localStorageValue, + initialValues, + lagreSoekRequest, + setLagreSoekRequest, +}) => { const [formRequest, setFormRequest] = useState(initialValues) const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) @@ -45,11 +48,6 @@ export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { const maxTotalHits = 10000 - const initialValuesClone = _.cloneDeep(initialValues) - const formMethods = useForm({ - mode: 'onChange', - defaultValues: initialValuesClone, - }) const { watch, reset, control, getValues } = formMethods const values = watch() @@ -81,6 +79,7 @@ export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } reset(updatedRequest) setRequest(updatedRequest) + //TODO: Hvis null - fjern fra lagreSoekRequest setLagreSoekRequest({ ...lagreSoekRequest, [path]: { @@ -123,6 +122,7 @@ export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { } const emptyCategory = (paths: string[]) => { + //TODO: Toem lagresoek const requestClone = { ...values } paths.forEach((path) => { _.set(requestClone, path, _.get(dollySoekInitialValues, path)) @@ -140,6 +140,7 @@ export const SoekForm = ({ lagreSoekRequest, setLagreSoekRequest }) => { } const emptySearch = () => { + //TODO: Toem lagresoek setVisAntall(10) reset(dollySoekInitialValues) setRequest(dollySoekInitialValues) diff --git a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx index b289f5afc7e..8c891ca460a 100644 --- a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx @@ -222,4 +222,8 @@ export default class DollyEndpoints { static fjernRepresentererTeam() { return `${brukerBase}/representererTeam` } + + static lagreSoek(soekType: string) { + return `${uri}/soek?soekType=${soekType}` + } } diff --git a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx index c0b3610859f..e009508346c 100644 --- a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx @@ -165,6 +165,10 @@ export default { return Request.delete(Endpoints.fjernRepresentererTeam()) }, + lagreSoek(data, soekType) { + return Request.post(Endpoints.lagreSoek(soekType), data) + }, + //* Organisasjoner createOrganisasjonBestilling(data) { From e892a24fbacd047f032dfb405ab11405296e8a1d Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 2 Jul 2025 12:56:08 +0200 Subject: [PATCH 03/21] Div tilpasninger paa lagring og visning av siste soek --- .../src/components/ui/soekForm/SisteSoek.tsx | 26 +++++++---- .../js/src/pages/dollySoek/DollySoekPage.tsx | 46 ++++++++++++++++--- .../main/js/src/pages/dollySoek/SoekForm.tsx | 29 ++---------- 3 files changed, 58 insertions(+), 43 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index e95f46e203c..1a109d387b1 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -7,19 +7,20 @@ export enum soekType { tenor = 'TENOR', } -export const SisteSoek = ({ soekType }) => { +export const SisteSoek = ({ soekType, formMethods, handleChange }) => { const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) console.log('lagredeSoek: ', lagredeSoek) //TODO - SLETT MEG - //TODO: Map igjennom lagredeSoek, hvor siste soek ligger foerst, og push til nytt objekt, kun hvis likt objekt (eller key?) ikke finnes fra foer - //TODO: Max 10 items lang const [selected, setSelected] = useState([]) - const lagredeSoekData = { - kjoenn: { path: 'personRequest.kjoenn', value: 'KVINNE', label: 'Kjønn: Kvinne' }, - alderFom: { path: 'personRequest.alderFom', value: '20', label: 'Alder f.o.m: 20' }, - alderTom: { path: 'personRequest.alderTom', value: '30', label: 'Alder t.o.m: 30' }, - } + const lagredeSoekData = {} + lagredeSoek?.forEach((soek, idx) => { + Object.entries(soek?.soekVerdi)?.forEach((verdi) => { + if (!lagredeSoekData[verdi[0]]) { + lagredeSoekData[verdi[0]] = verdi[1] + } + }) + }) const options = Object.values(lagredeSoekData) @@ -30,14 +31,19 @@ export const SisteSoek = ({ soekType }) => { {options.map((option) => ( + onClick={() => { setSelected( selected.includes(option.label) ? selected.filter((x) => x !== option.label) : [...selected, option.label], ) - } + handleChange( + !selected.includes(option.label) ? option.value : null, + option.path?.split('.')[1].trim(), + ) + }} > {option.label} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 31ea67549e3..a3b40a57a50 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -1,13 +1,14 @@ import Title from '../../components/title' import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { bottom } from '@popperjs/core' -import { dollySoekLocalStorageKey, SoekForm } from '@/pages/dollySoek/SoekForm' +import { dollySoekLocalStorageKey, personPath, SoekForm } from '@/pages/dollySoek/SoekForm' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' import { useEffect, useRef, useState } from 'react' import { useForm } from 'react-hook-form' import * as _ from 'lodash-es' import { dollySoekInitialValues } from '@/pages/dollySoek/dollySoekInitialValues' import { DollyApi } from '@/service/Api' +import { codeToNorskLabel } from '@/utils/DataFormatter' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) @@ -21,8 +22,7 @@ export default () => { useEffect(() => { return () => { if (Object.keys(lagreSoekRequestRef.current).length > 0) { - console.log('lagreSoekRequestRef.current: ', lagreSoekRequestRef.current) //TODO - SLETT MEG - DollyApi.lagreSoek(lagreSoekRequestRef.current, 'DOLLY') + DollyApi.lagreSoek(lagreSoekRequestRef.current, soekType.dolly) .then((response) => console.log(response)) .catch((error) => console.error(error)) } @@ -38,6 +38,38 @@ export default () => { defaultValues: initialValuesClone, }) + const [formRequest, setFormRequest] = useState(initialValues) + + const setRequest = (request: any) => { + localStorage.setItem(dollySoekLocalStorageKey, JSON.stringify(request)) + setFormRequest(request) + } + + const { watch, reset, control, getValues } = formMethods + const values = watch() + + const handleChange = (value: any, path: string) => { + const updatedPersonRequest = { ...values.personRequest, [path]: value } + const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } + reset(updatedRequest) + setRequest(updatedRequest) + if (value) { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: { + path: `${personPath}.${path}`, + value: value, + label: `${codeToNorskLabel(path)}: ${value}`, + }, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: undefined, + }) + } + } + return (
@@ -47,13 +79,13 @@ export default () => { eksisterende personer til nye formål.
- +
) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index 8ac34302252..45beca1ba39 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -22,7 +22,6 @@ import { Familierelasjoner } from '@/pages/dollySoek/soekFormPartials/Familierel import { Identifikasjon } from '@/pages/dollySoek/soekFormPartials/Identifikasjon' import { Annet } from '@/pages/dollySoek/soekFormPartials/Annet' import { runningE2ETest } from '@/service/services/Request' -import { codeToNorskLabel } from '@/utils/DataFormatter' export const dollySoekLocalStorageKey = 'dollySoek' export const personPath = 'personRequest' @@ -31,21 +30,15 @@ export const adressePath = 'personRequest.adresse' export const SoekForm = ({ formMethods, localStorageValue, - initialValues, - lagreSoekRequest, - setLagreSoekRequest, + handleChange, + setRequest, + formRequest, }) => { - const [formRequest, setFormRequest] = useState(initialValues) const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) const [soekError, setSoekError] = useState(null) const [visAntall, setVisAntall] = useState(10) - const setRequest = (request: any) => { - localStorage.setItem(dollySoekLocalStorageKey, JSON.stringify(request)) - setFormRequest(request) - } - const maxTotalHits = 10000 const { watch, reset, control, getValues } = formMethods @@ -74,22 +67,6 @@ export const SoekForm = ({ }) }, [formRequest]) - const handleChange = (value: any, path: string) => { - const updatedPersonRequest = { ...values.personRequest, [path]: value } - const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } - reset(updatedRequest) - setRequest(updatedRequest) - //TODO: Hvis null - fjern fra lagreSoekRequest - setLagreSoekRequest({ - ...lagreSoekRequest, - [path]: { - path: `${personPath}.${path}`, - value: value, - label: `${codeToNorskLabel(path)}: ${value}`, - }, - }) - } - const handleChangeAdresse = (value: any, path: string) => { const updatedAdresseRequest = { ...values.personRequest.adresse, [path]: value } const updatedRequest = { From d01d96b892ce2888c368e64d5b6042f1a90076af Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Thu, 7 Aug 2025 11:10:39 +0200 Subject: [PATCH 04/21] Forbedret forhold mellom siste soek og form --- .../src/components/ui/soekForm/SisteSoek.tsx | 20 +++++++------------ .../js/src/pages/dollySoek/DollySoekPage.tsx | 6 +++++- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 1a109d387b1..08f05f0cb3b 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -1,17 +1,17 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' -import { useState } from 'react' +import * as _ from 'lodash-es' export enum soekType { dolly = 'DOLLY', tenor = 'TENOR', } -export const SisteSoek = ({ soekType, formMethods, handleChange }) => { - const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) - console.log('lagredeSoek: ', lagredeSoek) //TODO - SLETT MEG +export const SisteSoek = ({ soekType, formValues, handleChange }) => { + // TODO: Funker det med registreRequest? + // TODO: Sjekk ulike typer felter, at de fungerer som forventet - const [selected, setSelected] = useState([]) + const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) const lagredeSoekData = {} lagredeSoek?.forEach((soek, idx) => { @@ -31,16 +31,10 @@ export const SisteSoek = ({ soekType, formMethods, handleChange }) => { {options.map((option) => ( { - setSelected( - selected.includes(option.label) - ? selected.filter((x) => x !== option.label) - : [...selected, option.label], - ) handleChange( - !selected.includes(option.label) ? option.value : null, + _.get(formValues, option.path) !== option.value ? option.value : null, option.path?.split('.')[1].trim(), ) }} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index a3b40a57a50..a10dd04a794 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -79,7 +79,11 @@ export default () => { eksisterende personer til nye formål. - + Date: Thu, 7 Aug 2025 14:30:10 +0200 Subject: [PATCH 05/21] Tilpass visning av chips --- .../js/src/components/ui/soekForm/SisteSoek.tsx | 3 ++- .../main/js/src/pages/dollySoek/DollySoekPage.tsx | 13 +++++++++++-- .../src/main/js/src/pages/dollySoek/SoekForm.tsx | 6 ++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 08f05f0cb3b..6c687224103 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -23,12 +23,13 @@ export const SisteSoek = ({ soekType, formValues, handleChange }) => { }) const options = Object.values(lagredeSoekData) + console.log('formValues: ', formValues) //TODO - SLETT MEG return ( {/*

SISTE SØK:

*/} - {options.map((option) => ( + {options.slice(0, 10).map((option, idx) => ( { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) @@ -48,6 +48,15 @@ export default () => { const { watch, reset, control, getValues } = formMethods const values = watch() + const getLabel = (value: any) => { + if (value === true || value === false) { + return oversettBoolean(value) + } else if (value.length > 3) { + return codeToNorskLabel(value) + } + return value + } + const handleChange = (value: any, path: string) => { const updatedPersonRequest = { ...values.personRequest, [path]: value } const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } @@ -59,7 +68,7 @@ export default () => { [path]: { path: `${personPath}.${path}`, value: value, - label: `${codeToNorskLabel(path)}: ${value}`, + label: `${codeToNorskLabel(path)}: ${getLabel(value)}`, }, }) } else { diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index 45beca1ba39..dcc9aea78ba 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -34,6 +34,12 @@ export const SoekForm = ({ setRequest, formRequest, }) => { + //TODO: Felter/kategorier som maa fikses + // Fagsystemer: alle + // Personinformasjon: skjerming + // Adresser: alle + // Familierelasjoner: harDeltBosted + const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) const [soekError, setSoekError] = useState(null) From 2bf682b24dff4c1d37253a7a0cda86b2b90aea7c Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 8 Aug 2025 14:01:02 +0200 Subject: [PATCH 06/21] Lagring av soek med adresse + div fix --- .../src/components/ui/soekForm/SisteSoek.tsx | 19 +++++-- .../js/src/pages/dollySoek/DollySoekPage.tsx | 51 ++++++++++++++++--- .../main/js/src/pages/dollySoek/SoekForm.tsx | 15 +----- 3 files changed, 58 insertions(+), 27 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 6c687224103..1517b28bdd8 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -7,7 +7,7 @@ export enum soekType { tenor = 'TENOR', } -export const SisteSoek = ({ soekType, formValues, handleChange }) => { +export const SisteSoek = ({ soekType, formValues, handleChange, handleChangeAdresse }) => { // TODO: Funker det med registreRequest? // TODO: Sjekk ulike typer felter, at de fungerer som forventet @@ -23,6 +23,7 @@ export const SisteSoek = ({ soekType, formValues, handleChange }) => { }) const options = Object.values(lagredeSoekData) + console.log('options: ', options) //TODO - SLETT MEG console.log('formValues: ', formValues) //TODO - SLETT MEG return ( @@ -34,10 +35,18 @@ export const SisteSoek = ({ soekType, formValues, handleChange }) => { key={option.label} selected={_.get(formValues, option.path) === option.value} onClick={() => { - handleChange( - _.get(formValues, option.path) !== option.value ? option.value : null, - option.path?.split('.')[1].trim(), - ) + if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { + const pathArray = option.path?.split('.') + handleChangeAdresse( + _.get(formValues, option.path) !== option.value ? option.value : null, + pathArray[pathArray.length - 1], + ) + } else { + handleChange( + _.get(formValues, option.path) !== option.value ? option.value : null, + option.path?.split('.')[1].trim(), + ) + } }} > {option.label} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 535a6bba392..699e3709c11 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -1,19 +1,25 @@ import Title from '../../components/title' import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { bottom } from '@popperjs/core' -import { dollySoekLocalStorageKey, personPath, SoekForm } from '@/pages/dollySoek/SoekForm' +import { + adressePath, + dollySoekLocalStorageKey, + personPath, + SoekForm, +} from '@/pages/dollySoek/SoekForm' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' import { useEffect, useRef, useState } from 'react' import { useForm } from 'react-hook-form' import * as _ from 'lodash-es' import { dollySoekInitialValues } from '@/pages/dollySoek/dollySoekInitialValues' import { DollyApi } from '@/service/Api' -import { codeToNorskLabel, oversettBoolean } from '@/utils/DataFormatter' +import { codeToNorskLabel } from '@/utils/DataFormatter' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG + // TODO: Sett lagreSoekRequest til aa vaere det som evt ligger i form naar man kommer til siden? useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest @@ -48,13 +54,13 @@ export default () => { const { watch, reset, control, getValues } = formMethods const values = watch() - const getLabel = (value: any) => { - if (value === true || value === false) { - return oversettBoolean(value) + const getLabel = (value: any, path: string) => { + if (value === true) { + return `${codeToNorskLabel(path)}` } else if (value.length > 3) { - return codeToNorskLabel(value) + return `${codeToNorskLabel(path)}: ${codeToNorskLabel(value)}` } - return value + return `${codeToNorskLabel(path)}: ${value}` } const handleChange = (value: any, path: string) => { @@ -68,7 +74,34 @@ export default () => { [path]: { path: `${personPath}.${path}`, value: value, - label: `${codeToNorskLabel(path)}: ${getLabel(value)}`, + label: getLabel(value, path), + }, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: undefined, + }) + } + } + + const handleChangeAdresse = (value: any, path: string) => { + const updatedAdresseRequest = { ...values.personRequest.adresse, [path]: value } + const updatedRequest = { + ...values, + side: 0, + seed: null, + } + _.set(updatedRequest, 'personRequest.adresse', updatedAdresseRequest) + reset(updatedRequest) + setRequest(updatedRequest) + if (value) { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: { + path: `${adressePath}.${path}`, + value: value, + label: getLabel(value, path), }, }) } else { @@ -92,11 +125,13 @@ export default () => { soekType={soekType.dolly} formValues={formMethods.watch()} handleChange={handleChange} + handleChangeAdresse={handleChangeAdresse} /> diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index dcc9aea78ba..bb6dfab9e28 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -31,14 +31,13 @@ export const SoekForm = ({ formMethods, localStorageValue, handleChange, + handleChangeAdresse, setRequest, formRequest, }) => { //TODO: Felter/kategorier som maa fikses // Fagsystemer: alle // Personinformasjon: skjerming - // Adresser: alle - // Familierelasjoner: harDeltBosted const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) @@ -73,18 +72,6 @@ export const SoekForm = ({ }) }, [formRequest]) - const handleChangeAdresse = (value: any, path: string) => { - const updatedAdresseRequest = { ...values.personRequest.adresse, [path]: value } - const updatedRequest = { - ...values, - side: 0, - seed: null, - } - _.set(updatedRequest, 'personRequest.adresse', updatedAdresseRequest) - reset(updatedRequest) - setRequest(updatedRequest) - } - const handleChangeList = (value: any, path: string) => { const list = value.map((item: any) => item.value) const updatedRequest = { ...values, [path]: list, side: 0, seed: null } From 0651a59c35145d6d0cf0ace4d170893fc10f2c80 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Thu, 14 Aug 2025 14:41:49 +0200 Subject: [PATCH 07/21] Handle change list --- .../src/components/ui/soekForm/SisteSoek.tsx | 53 +++++++++++++------ .../js/src/pages/dollySoek/DollySoekPage.tsx | 27 ++++++++++ .../main/js/src/pages/dollySoek/SoekForm.tsx | 10 +--- 3 files changed, 66 insertions(+), 24 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 1517b28bdd8..d24b51d6236 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -1,41 +1,62 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' import * as _ from 'lodash-es' +import { codeToNorskLabel } from '@/utils/DataFormatter' export enum soekType { dolly = 'DOLLY', tenor = 'TENOR', } -export const SisteSoek = ({ soekType, formValues, handleChange, handleChangeAdresse }) => { - // TODO: Funker det med registreRequest? - // TODO: Sjekk ulike typer felter, at de fungerer som forventet - +export const SisteSoek = ({ + soekType, + formValues, + handleChange, + handleChangeAdresse, + handleChangeList, +}) => { const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) - - const lagredeSoekData = {} - lagredeSoek?.forEach((soek, idx) => { + const lagredeSoekData = [] + lagredeSoek?.forEach((soek) => { Object.entries(soek?.soekVerdi)?.forEach((verdi) => { - if (!lagredeSoekData[verdi[0]]) { - lagredeSoekData[verdi[0]] = verdi[1] + if (verdi[0] === 'registreRequest' && Array.isArray(verdi[1])) { + verdi[1]?.forEach((item) => { + if (!lagredeSoekData?.some((i) => i.value === item.value)) { + lagredeSoekData.push(item) + } + }) + } else if (!lagredeSoekData?.some((item) => item.path === verdi[1]?.path)) { + lagredeSoekData.push(verdi[1]) } }) }) - const options = Object.values(lagredeSoekData) - console.log('options: ', options) //TODO - SLETT MEG - console.log('formValues: ', formValues) //TODO - SLETT MEG - return ( {/*

SISTE SØK:

*/} - {options.slice(0, 10).map((option, idx) => ( + {lagredeSoekData?.slice(0, 10).map((option, idx) => ( { - if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { + if (option.path === 'registreRequest') { + console.log('option: ', option) //TODO - SLETT MEG + const registreValues = _.get(formValues, option.path) || [] + handleChangeList( + !registreValues?.includes(option.value) + ? [ + ...registreValues, + { value: option.value, label: codeToNorskLabel(option.value) }, + ] + : registreValues?.filter((item) => item !== option.value), + option.path, + ) + } else if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { const pathArray = option.path?.split('.') handleChangeAdresse( _.get(formValues, option.path) !== option.value ? option.value : null, diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 699e3709c11..8578cbb1a45 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -112,6 +112,31 @@ export default () => { } } + const handleChangeList = (value: any, path: string) => { + const list = value?.map((item: any) => item.value || item) + const updatedRequest = { ...values, [path]: list, side: 0, seed: null } + reset(updatedRequest) + setRequest(updatedRequest) + if (path === 'registreRequest') { + if (value?.length > 0) { + const fagsystemer = value.map((system) => ({ + path: 'registreRequest', + value: system.value, + label: `Fagsystem: ${system.label}`, + })) + setLagreSoekRequest({ + ...lagreSoekRequest, + registreRequest: fagsystemer, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + registreRequest: [], + }) + } + } + } + return (
@@ -126,12 +151,14 @@ export default () => { formValues={formMethods.watch()} handleChange={handleChange} handleChangeAdresse={handleChangeAdresse} + handleChangeList={handleChangeList} /> diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index bb6dfab9e28..3447fa1eac8 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -32,11 +32,12 @@ export const SoekForm = ({ localStorageValue, handleChange, handleChangeAdresse, + handleChangeList, setRequest, formRequest, }) => { //TODO: Felter/kategorier som maa fikses - // Fagsystemer: alle + // Miljoer // Personinformasjon: skjerming const [result, setResult] = useState(null) @@ -72,13 +73,6 @@ export const SoekForm = ({ }) }, [formRequest]) - const handleChangeList = (value: any, path: string) => { - const list = value.map((item: any) => item.value) - const updatedRequest = { ...values, [path]: list, side: 0, seed: null } - reset(updatedRequest) - setRequest(updatedRequest) - } - const handleChangeSide = (side: number) => { const updatedRequest = { ...values, side: side - 1, seed: result?.seed } setRequest(updatedRequest) From 5f98d967ffe90d8400a0020bdcb18224228d0c84 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 15 Aug 2025 11:57:37 +0200 Subject: [PATCH 08/21] Fix lagring av skjerming --- .../js/src/pages/dollySoek/DollySoekPage.tsx | 2 ++ .../main/js/src/pages/dollySoek/SoekForm.tsx | 11 +++++++++- .../soekFormPartials/Personinformasjon.tsx | 20 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 8578cbb1a45..f7dbdd390b5 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -161,6 +161,8 @@ export default () => { handleChangeList={handleChangeList} setRequest={setRequest} formRequest={formRequest} + lagreSoekRequest={lagreSoekRequest} + setLagreSoekRequest={setLagreSoekRequest} />
) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index 3447fa1eac8..6f0d02dd638 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -35,6 +35,8 @@ export const SoekForm = ({ handleChangeList, setRequest, formRequest, + lagreSoekRequest, + setLagreSoekRequest, }) => { //TODO: Felter/kategorier som maa fikses // Miljoer @@ -154,7 +156,14 @@ export const SoekForm = ({ } + content={ + + } data-testid={TestComponentSelectors.EXPANDABLE_PERSONINFORMASJON} expandOnRowClick={runningE2ETest()} > diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx index d6b019cbe79..7a7be89a6d6 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx @@ -10,7 +10,12 @@ import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { personPath } from '../SoekForm' import { useFormContext } from 'react-hook-form' -export const Personinformasjon = ({ handleChange, setRequest }: any) => { +export const Personinformasjon = ({ + handleChange, + setRequest, + lagreSoekRequest, + setLagreSoekRequest, +}: any) => { const formMethods = useFormContext() const { watch, reset } = formMethods const values = watch() @@ -109,6 +114,19 @@ export const Personinformasjon = ({ handleChange, setRequest }: any) => { } reset(updatedRequest) setRequest(updatedRequest) + let registreSoekValues = lagreSoekRequest?.registreRequest || [] + if (val.target.checked) { + registreSoekValues.push({ + path: 'registreRequest', + value: 'SKJERMING', + label: 'Fagsystem: Skjermingsregisteret', + }) + } else { + registreSoekValues = registreSoekValues.filter( + (item: string) => item.value !== 'SKJERMING', + ) + } + setLagreSoekRequest({ ...lagreSoekRequest, registreRequest: registreSoekValues }) }} />
From 8f72daa0eaef9f4688f060d4d78fbd26049c9775 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 15 Aug 2025 17:50:50 +0200 Subject: [PATCH 09/21] Fix toem kategori --- .../src/main/js/src/pages/dollySoek/DollySoekPage.tsx | 1 - .../src/main/js/src/pages/dollySoek/SoekForm.tsx | 11 ++++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index f7dbdd390b5..0bcf92dfd42 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -19,7 +19,6 @@ export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG - // TODO: Sett lagreSoekRequest til aa vaere det som evt ligger i form naar man kommer til siden? useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index 6f0d02dd638..1b4a3de581a 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -40,7 +40,6 @@ export const SoekForm = ({ }) => { //TODO: Felter/kategorier som maa fikses // Miljoer - // Personinformasjon: skjerming const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) @@ -88,8 +87,8 @@ export const SoekForm = ({ } const emptyCategory = (paths: string[]) => { - //TODO: Toem lagresoek const requestClone = { ...values } + const lagreSoekRequestClone = { ...lagreSoekRequest } paths.forEach((path) => { _.set(requestClone, path, _.get(dollySoekInitialValues, path)) if (path === 'personRequest.harSkjerming') { @@ -99,17 +98,23 @@ export const SoekForm = ({ watch('registreRequest')?.filter((item: string) => item !== 'SKJERMING'), ) } + Object.entries(lagreSoekRequestClone)?.forEach((item, idx) => { + if (item[1]?.path === path) { + delete lagreSoekRequestClone[item[0]] + } + }) }) const updatedRequest = { ...requestClone, side: 0, seed: null } reset(updatedRequest) setRequest(updatedRequest) + setLagreSoekRequest(lagreSoekRequestClone) } const emptySearch = () => { - //TODO: Toem lagresoek setVisAntall(10) reset(dollySoekInitialValues) setRequest(dollySoekInitialValues) + setLagreSoekRequest({}) } const getNewResult = () => { From 072119ee4c53078ec21457c2defe3b883999ccb0 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 19 Aug 2025 09:28:00 +0200 Subject: [PATCH 10/21] Fix --- .../src/main/js/__tests__/mocks/mockServiceWorker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dolly-frontend/src/main/js/__tests__/mocks/mockServiceWorker.js b/apps/dolly-frontend/src/main/js/__tests__/mocks/mockServiceWorker.js index de7bc0f292d..be4527c7ee5 100644 --- a/apps/dolly-frontend/src/main/js/__tests__/mocks/mockServiceWorker.js +++ b/apps/dolly-frontend/src/main/js/__tests__/mocks/mockServiceWorker.js @@ -7,7 +7,7 @@ * - Please do NOT modify this file. */ -const PACKAGE_VERSION = '2.10.2' +const PACKAGE_VERSION = '2.10.4' const INTEGRITY_CHECKSUM = 'f5825c521429caf22a4dd13b66e243af' const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') const activeClientIds = new Set() From 27590e82b8c10ee7eab5ca5ca18bd0c6b795a5a8 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 20 Aug 2025 14:17:41 +0200 Subject: [PATCH 11/21] Fix lagring og visning av miljoer --- .../src/components/ui/soekForm/SisteSoek.tsx | 83 ++++++++++++------- .../js/src/pages/dollySoek/DollySoekPage.tsx | 17 +++- 2 files changed, 67 insertions(+), 33 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index d24b51d6236..a9cc470716a 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -25,12 +25,60 @@ export const SisteSoek = ({ lagredeSoekData.push(item) } }) - } else if (!lagredeSoekData?.some((item) => item.path === verdi[1]?.path)) { + } else if (verdi[1]?.path && !lagredeSoekData?.some((item) => item.path === verdi[1]?.path)) { lagredeSoekData.push(verdi[1]) } }) }) + const isSelected = (option) => { + const { path, value } = option + const formValue = _.get(formValues, path) + if (path === 'registreRequest') { + return formValue?.includes(value) + } else if (path === 'miljoer') { + return ( + formValue.length === value.length && + formValue.every((item) => value?.map((v) => v.value).includes(item)) + ) + } + return formValue === value + } + + const handleClick = (option) => { + if (option.path === 'registreRequest') { + const registreValues = _.get(formValues, option.path) || [] + handleChangeList( + !registreValues?.includes(option.value) + ? [...registreValues, { value: option.value, label: codeToNorskLabel(option.value) }] + : registreValues?.filter((item) => item !== option.value), + option.path, + ) + } else if (option.path === 'miljoer') { + const miljoerValues = _.get(formValues, option.path) || [] + const miljoerErLike = + miljoerValues?.length === option.value?.length && + miljoerValues?.every((v) => option.value?.map((i) => i.value).includes(v)) + handleChangeList( + miljoerErLike + ? miljoerValues?.filter((i) => option.value?.map((v) => v.value) === i.value) + : option.value, + option.path, + ) + } else if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { + const pathArray = option.path?.split('.') + handleChangeAdresse( + _.get(formValues, option.path) !== option.value ? option.value : null, + pathArray[pathArray.length - 1], + ) + } else { + handleChange( + _.get(formValues, option.path) !== option.value ? option.value : null, + option.path?.split('.')[1].trim(), + ) + } + } + return ( {/*

SISTE SØK:

*/} @@ -38,37 +86,8 @@ export const SisteSoek = ({ {lagredeSoekData?.slice(0, 10).map((option, idx) => ( { - if (option.path === 'registreRequest') { - console.log('option: ', option) //TODO - SLETT MEG - const registreValues = _.get(formValues, option.path) || [] - handleChangeList( - !registreValues?.includes(option.value) - ? [ - ...registreValues, - { value: option.value, label: codeToNorskLabel(option.value) }, - ] - : registreValues?.filter((item) => item !== option.value), - option.path, - ) - } else if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { - const pathArray = option.path?.split('.') - handleChangeAdresse( - _.get(formValues, option.path) !== option.value ? option.value : null, - pathArray[pathArray.length - 1], - ) - } else { - handleChange( - _.get(formValues, option.path) !== option.value ? option.value : null, - option.path?.split('.')[1].trim(), - ) - } - }} + selected={isSelected(option)} + onClick={() => handleClick(option)} > {option.label} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 0bcf92dfd42..dd1b365e609 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -18,7 +18,6 @@ import { codeToNorskLabel } from '@/utils/DataFormatter' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) - console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest @@ -133,6 +132,22 @@ export default () => { registreRequest: [], }) } + } else if (path === 'miljoer') { + if (value?.length > 0) { + setLagreSoekRequest({ + ...lagreSoekRequest, + miljoer: { + path: 'miljoer', + value: value, + label: `Miljøer: ${value.map((item: any) => item.label).join(', ')}`, + }, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + miljoer: [], + }) + } } } From 2d6bf82027ab5a35be51d82d72fd50375720f4b8 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 20 Aug 2025 14:57:30 +0200 Subject: [PATCH 12/21] Set isLoading paa felter i tenor-soek --- .../soekFormPartials/Arbeidsforhold.tsx | 4 ++- .../EnhetsregisteretForetaksregisteret.tsx | 3 ++- .../FolkeregisteretAdresse.tsx | 4 ++- .../FolkeregisteretHendelser.tsx | 4 ++- .../FolkeregisteretIdentifikasjonStatus.tsx | 27 +++++++++++++------ .../FolkeregisteretRelasjoner.tsx | 3 ++- .../soekFormPartials/InntektAordningen.tsx | 12 ++++++--- .../soekFormPartials/Skattemelding.tsx | 4 ++- 8 files changed, 44 insertions(+), 17 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx index 6b5133510a3..a47450b2665 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx @@ -7,7 +7,8 @@ import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicke import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any) => { - const { domain: arbeidsforholdstypeOptions } = useTenorDomain('Arbeidsforholdstype') + const { domain: arbeidsforholdstypeOptions, loading: loadingArbeidsforholdstype } = + useTenorDomain('Arbeidsforholdstype') return ( @@ -19,6 +20,7 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'arbeidsforhold.arbeidsforholdstype') } + isLoading={loadingArbeidsforholdstype} />
{ - const { domain: rollerOptions } = useTenorDomain('Roller') + const { domain: rollerOptions, loading: loadingRoller } = useTenorDomain('Roller') return (
@@ -16,6 +16,7 @@ export const EnhetsregisteretForetaksregisteret = ({ handleChangeList }: any) => size="grow" label="Roller" onChange={(val: SyntheticEvent) => handleChangeList(val || null, 'roller')} + isLoading={loadingRoller} />
diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx index 6e0e8b6bf7c..21eedd62b72 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx @@ -9,7 +9,8 @@ import { AdresseKodeverk } from '@/config/kodeverk' import { Option } from '@/service/SelectOptionsOppslag' export const FolkeregisteretAdresse = ({ handleChange }: any) => { - const { domain: adresseGraderingOptions } = useTenorDomain('AdresseGradering') + const { domain: adresseGraderingOptions, loading: loadingAdresseGradering } = + useTenorDomain('AdresseGradering') return ( @@ -18,6 +19,7 @@ export const FolkeregisteretAdresse = ({ handleChange }: any) => { options={createOptions(adresseGraderingOptions?.data)} label="Adressegradering" onChange={(val: any) => handleChange(val?.value || null, 'adresser.adresseGradering')} + isLoading={loadingAdresseGradering} /> { - const { domain: hendelseOptions } = useTenorDomain('Hendelse') + const { domain: hendelseOptions, loading: loadingHendelse } = useTenorDomain('Hendelse') return ( @@ -15,6 +15,7 @@ export const FolkeregisteretHendelser = ({ handleChange }: any) => { size="large" label="Har hatt hendelse" onChange={(val: any) => handleChange(val?.value || null, 'hendelser.hendelse')} + isLoading={loadingHendelse} /> { size="large" label="Siste hendelse" onChange={(val: any) => handleChange(val?.value || null, 'hendelser.sisteHendelse')} + isLoading={loadingHendelse} /> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx index ec1d73c810c..ce8905cb365 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx @@ -10,15 +10,19 @@ import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { TestComponentSelectors } from '#/mocks/Selectors' export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChangeList }: any) => { - const { domain: identifikatorTypeOptions } = useTenorDomain('IdentifikatorType') - const { domain: kjoennOptions } = useTenorDomain('Kjoenn') - const { domain: personstatusOptions } = useTenorDomain('Personstatus') - const { domain: sivilstatusOptions } = useTenorDomain('Sivilstatus') - const { domain: utenlandskPersonIdentifikasjonOptions } = useTenorDomain( - 'UtenlandskPersonIdentifikasjon', + const { domain: identifikatorTypeOptions, loading: loadingIdentifikatorType } = + useTenorDomain('IdentifikatorType') + const { domain: kjoennOptions, loading: loadingKjoenn } = useTenorDomain('Kjoenn') + const { domain: personstatusOptions, loading: loadingPersonstatus } = + useTenorDomain('Personstatus') + const { domain: sivilstatusOptions, loading: loadingSivilstatus } = useTenorDomain('Sivilstatus') + const { domain: utenlandskPersonIdentifikasjonOptions, loading: loadingUtenlandsid } = + useTenorDomain('UtenlandskPersonIdentifikasjon') + const { domain: identitetsgrunnlagStatusOptions, loading: loadingIdentgrunnlag } = useTenorDomain( + 'IdentitetsgrunnlagStatus', ) - const { domain: identitetsgrunnlagStatusOptions } = useTenorDomain('IdentitetsgrunnlagStatus') - const { domain: adressebeskyttelseOptions } = useTenorDomain('Adressebeskyttelse') + const { domain: adressebeskyttelseOptions, loading: loadingAdressebeskyttelse } = + useTenorDomain('Adressebeskyttelse') return ( @@ -34,6 +38,7 @@ export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChange options={createOptions(identifikatorTypeOptions?.data, true)} label="Identifikatortype" onChange={(val: any) => handleChange(val?.value || null, 'identifikatorType')} + isLoading={loadingIdentifikatorType} /> handleChange(val?.value || null, 'kjoenn')} + isLoading={loadingKjoenn} /> handleChange(val?.value || null, 'personstatus')} + isLoading={loadingPersonstatus} /> handleChange(val?.value || null, 'sivilstand')} + isLoading={loadingSivilstatus} /> handleChange(val?.value || null, 'identitetsgrunnlagStatus')} + isLoading={loadingIdentgrunnlag} /> handleChange(val?.value || null, 'adressebeskyttelse')} + isLoading={loadingAdressebeskyttelse} /> handleChangeList(val || null, 'utenlandskPersonIdentifikasjon') } + isLoading={loadingUtenlandsid} />
{ - const { domain: relasjonOptions } = useTenorDomain('Relasjon') + const { domain: relasjonOptions, loading: loadingRelasjon } = useTenorDomain('Relasjon') return ( @@ -16,6 +16,7 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { options={createOptions(relasjonOptions?.data)} label="Relasjon" onChange={(val: any) => handleChange(val?.value || null, 'relasjoner.relasjon')} + isLoading={loadingRelasjon} />
{ - const { domain: inntektstypeOptions } = useTenorDomain('Inntektstype') - const { domain: beskrivelseOptions } = useTenorDomain('AOrdningBeskrivelse') - const { domain: forskuddstrekkOptions } = useTenorDomain('Forskuddstrekk') + const { domain: inntektstypeOptions, loading: loadingInntektstype } = + useTenorDomain('Inntektstype') + const { domain: beskrivelseOptions, loading: loadingBeskrivelse } = + useTenorDomain('AOrdningBeskrivelse') + const { domain: forskuddstrekkOptions, loading: loadingForskuddstrekk } = + useTenorDomain('Forskuddstrekk') return ( @@ -49,6 +52,7 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: size="grow" label="Inntektstyper" onChange={(val: SyntheticEvent) => handleChangeList(val || null, 'inntekt.inntektstyper')} + isLoading={loadingInntektstype} /> handleChangeList(val || null, 'inntekt.forskuddstrekk') } + isLoading={loadingForskuddstrekk} />
handleChange(val?.value || null, 'inntekt.beskrivelse')} + isLoading={loadingBeskrivelse} /> { - const { domain: skattemeldingstypeOptions } = useTenorDomain('Skattemeldingstype') + const { domain: skattemeldingstypeOptions, loading: loadingSkattemeldingstype } = + useTenorDomain('Skattemeldingstype') const getInntektsaarOptions = () => { const inntektsaarListe = [] @@ -34,6 +35,7 @@ export const Skattemelding = ({ handleChange }: any) => { onChange={(val: any) => handleChange(val?.value || null, 'skattemelding.skattemeldingstype') } + isLoading={loadingSkattemeldingstype} />
) From 5b3ab8b5b1db81ae68030fc03ac5e69c3e69b00e Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 10 Sep 2025 15:36:58 +0200 Subject: [PATCH 13/21] Oppsett av siste soek i tenor-soek + div tilpasninger --- .../main/js/__tests__/KodeverkSelect.test.tsx | 2 +- .../ui/form/inputs/datepicker/DateInput.tsx | 3 + .../form/inputs/monthpicker/Monthpicker.tsx | 1 + .../ui/form/inputs/select/Select.tsx | 2 +- .../src/components/ui/soekForm/SisteSoek.tsx | 92 +++++++++-- .../js/src/pages/dollySoek/DollySoekPage.tsx | 2 +- .../main/js/src/pages/tenorSoek/SoekForm.tsx | 59 +------ .../js/src/pages/tenorSoek/TenorSoekPage.tsx | 152 +++++++++++++++++- .../soekFormPartials/Arbeidsforhold.tsx | 61 +++++-- .../EnhetsregisteretForetaksregisteret.tsx | 8 +- .../FolkeregisteretAdresse.tsx | 51 +++++- .../FolkeregisteretHendelser.tsx | 12 +- .../FolkeregisteretIdentifikasjonStatus.tsx | 101 ++++++++++-- .../soekFormPartials/FolkeregisteretNavn.tsx | 40 ++++- .../FolkeregisteretRelasjoner.tsx | 61 +++++-- .../FolkeregisteretStatsborgerskap.tsx | 17 +- .../soekFormPartials/InntektAordningen.tsx | 50 +++++- .../soekFormPartials/Skattemelding.tsx | 14 +- .../Tjenestepensjonsavtale.tsx | 11 +- 19 files changed, 594 insertions(+), 145 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/__tests__/KodeverkSelect.test.tsx b/apps/dolly-frontend/src/main/js/__tests__/KodeverkSelect.test.tsx index 14bc418db8d..4e022d79b69 100644 --- a/apps/dolly-frontend/src/main/js/__tests__/KodeverkSelect.test.tsx +++ b/apps/dolly-frontend/src/main/js/__tests__/KodeverkSelect.test.tsx @@ -13,7 +13,7 @@ dollyTest( expect(screen.getByText('Tester kodeverk')).toBeInTheDocument() - expect(screen.getByText('Henter verdier ...')).toBeInTheDocument() + expect(screen.getByText('Laster ...')).toBeInTheDocument() worker.use( // override the initial kodeverk request handler to return non-empty list diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx index f17c5c349dd..e0873e17268 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx @@ -65,7 +65,10 @@ export const DateInput = ({ const { showError } = React.useContext(ShowErrorContext) || {} const fieldValue = name ? watch(name) : '' + // console.log('fieldValue: ', fieldValue) //TODO - SLETT MEG const [formattedValue, setFormattedValue] = useState(fieldValue ? formatDate(fieldValue) : '') + // console.log('formattedValue: ', formattedValue) //TODO - SLETT MEG + //TODO: Dato vises paa feil format naar man setter dato fra siste soek useEffect(() => { if (!fieldValue) { diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx index a039e09eaff..162f148b08d 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx @@ -16,6 +16,7 @@ interface MonthpickerProps { maxDate?: Date } +//TODO: Maaned vises ikke naar den settes fra siste soek export const Monthpicker = ({ name, label, diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx index 30b119c0a49..4f25122f42f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx @@ -106,7 +106,7 @@ export const Select = ({ const getPlaceholder = () => { if (isLoading) { - return 'Henter verdier ...' + return 'Laster ...' } else if (options?.length === 0) { return 'Ingen tilgjengelige verdier' } diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index a9cc470716a..1a66f7575db 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -1,25 +1,49 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' import * as _ from 'lodash-es' -import { codeToNorskLabel } from '@/utils/DataFormatter' +import { codeToNorskLabel, formatDate } from '@/utils/DataFormatter' +import { isDate } from 'date-fns' export enum soekType { dolly = 'DOLLY', tenor = 'TENOR', } +export const getLabel = (value: any, path: string) => { + const splitPath = path?.split('.') + const fieldName = splitPath[splitPath.length - 1]?.trim() + if (value === true) { + return `${codeToNorskLabel(fieldName)}` + } else if (value.length > 3) { + return `${codeToNorskLabel(fieldName)}: ${codeToNorskLabel(value)}` + } else if (isDate(value)) { + return `${codeToNorskLabel(path)}: ${formatDate(value)}` + } + //TODO: Tall f.o.m. t.o.m.? + //TODO: Paths med flere nivaaer? + return `${codeToNorskLabel(fieldName)}: ${value}` +} + +const listOptions = [ + 'registreRequest', + 'utenlandskPersonIdentifikasjon', + 'roller', + 'inntekt.inntektstyper', + 'inntekt.forskuddstrekk', +] + export const SisteSoek = ({ - soekType, + type, formValues, handleChange, handleChangeAdresse, handleChangeList, }) => { - const { lagredeSoek, loading, error } = useHentLagredeSoek(soekType) + const { lagredeSoek, loading, error } = useHentLagredeSoek(type) const lagredeSoekData = [] lagredeSoek?.forEach((soek) => { Object.entries(soek?.soekVerdi)?.forEach((verdi) => { - if (verdi[0] === 'registreRequest' && Array.isArray(verdi[1])) { + if (listOptions.includes(verdi[0]) && Array.isArray(verdi[1])) { verdi[1]?.forEach((item) => { if (!lagredeSoekData?.some((i) => i.value === item.value)) { lagredeSoekData.push(item) @@ -34,25 +58,32 @@ export const SisteSoek = ({ const isSelected = (option) => { const { path, value } = option const formValue = _.get(formValues, path) - if (path === 'registreRequest') { + if (listOptions.includes(path)) { return formValue?.includes(value) } else if (path === 'miljoer') { return ( - formValue.length === value.length && - formValue.every((item) => value?.map((v) => v.value).includes(item)) + formValue?.length === value.length && + formValue?.every((item) => value?.map((v) => v.value).includes(item)) ) } return formValue === value } const handleClick = (option) => { - if (option.path === 'registreRequest') { - const registreValues = _.get(formValues, option.path) || [] + console.log('option: ', option) //TODO - SLETT MEG + // console.log('formValues: ', formValues) //TODO - SLETT MEG + // console.log("option.path?.split('.'): ", option.path?.split('.')) //TODO - SLETT MEG + //TODO: Handleclick generell for lister? + + if (listOptions.includes(option.path)) { + const listValues = _.get(formValues, option.path) || [] + console.log('listValues: ', listValues) //TODO - SLETT MEG handleChangeList( - !registreValues?.includes(option.value) - ? [...registreValues, { value: option.value, label: codeToNorskLabel(option.value) }] - : registreValues?.filter((item) => item !== option.value), + !listValues?.includes(option.value) + ? [...listValues, { value: option.value, label: codeToNorskLabel(option.value) }] + : listValues?.filter((item) => item !== option.value), option.path, + //TODO: Label ) } else if (option.path === 'miljoer') { const miljoerValues = _.get(formValues, option.path) || [] @@ -64,6 +95,7 @@ export const SisteSoek = ({ ? miljoerValues?.filter((i) => option.value?.map((v) => v.value) === i.value) : option.value, option.path, + //TODO: Label ) } else if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { const pathArray = option.path?.split('.') @@ -71,12 +103,42 @@ export const SisteSoek = ({ _.get(formValues, option.path) !== option.value ? option.value : null, pathArray[pathArray.length - 1], ) + } else { + const splitPath = option.path?.split('.') + handleChange( + _.get(formValues, option.path) !== option.value ? option.value : null, + // option.path?.split('.')[1].trim(), + splitPath[splitPath.length - 1]?.trim(), + ) + } + } + + //TODO: Denne ser ut til aa funke naa. Gjoer det samme paa handleClick? + const handleClickTenor = (option) => { + console.log('option: ', option) //TODO - SLETT MEG + if (listOptions.includes(option.path)) { + const listValues = _.get(formValues, option.path) || [] + console.log('listValues: ', listValues) //TODO - SLETT MEG + handleChangeList( + !listValues?.includes(option.value) + ? [...listValues, option.value] + : listValues?.filter((item) => item !== option.value), + option.path, + option.label, + ) } else { handleChange( _.get(formValues, option.path) !== option.value ? option.value : null, - option.path?.split('.')[1].trim(), + option.path, + option.label, ) } + // if (isDate(option.value)) { + // console.log('Is date!!!') //TODO - SLETT MEG + // handleChange( + // _.get(formValues, option.path) !== option.value ? option.value : null, + // option.path, + // ) } return ( @@ -87,7 +149,9 @@ export const SisteSoek = ({ handleClick(option)} + onClick={() => + type === soekType.tenor ? handleClickTenor(option) : handleClick(option) + } > {option.label} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index dd1b365e609..5030420367d 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -161,7 +161,7 @@ export default () => {
{ - const formMethods = useForm({ - mode: 'onChange', - defaultValues: request || {}, - }) - - const { getValues, control, setValue, watch }: any = formMethods - - function getUpdatedRequest(request: any) { - for (let key of Object.keys(request)) { - if (request[key] === '' || request[key] === null || request[key] === undefined) { - delete request[key] - } else if (typeof request[key] === 'object' && !(request[key] instanceof Date)) { - request[key] = getUpdatedRequest(request[key]) - if (Object.keys(request[key]).length === 0) { - delete request[key] - } else { - request[key] = getUpdatedRequest(request[key]) - } - } - } - return Array.isArray(request) ? request.filter((val) => val) : request - } - - const handleChange = (value: any, path: string) => { - if (isDate(value)) { - value = fixTimezone(value) - } - setValue(path, value) - const request = getUpdatedRequest(watch()) - setRequest({ ...request }) - setMarkertePersoner([]) - mutate() - } - - const handleChangeList = (value: any, path: string) => { - const list = value.map((item: any) => item.value) - setValue(path, list) - const request = getUpdatedRequest(watch()) - setRequest({ ...request }) - setMarkertePersoner([]) - mutate() - } - - const emptyCategory = (paths: Array) => { - paths.forEach((path) => { - setValue(path, undefined) - }) - const request = getUpdatedRequest(watch()) - setRequest({ ...request }) - setMarkertePersoner([]) - mutate() - } +export const SoekForm = ({ formMethods, handleChange, handleChangeList, emptyCategory }: any) => { + const { getValues, control, watch }: any = formMethods const devEnabled = window.location.hostname.includes('localhost') || diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx index 9f232cb7e6f..d9f29cf2edf 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx @@ -2,9 +2,20 @@ import Title from '../../components/title' import { useTenorOversikt } from '@/utils/hooks/useTenorSoek' import { SoekForm } from '@/pages/tenorSoek/SoekForm' import { TreffListe } from '@/pages/tenorSoek/resultatVisning/TreffListe' -import React, { useEffect, useState } from 'react' +import React, { useEffect, useRef, useState } from 'react' import styled from 'styled-components' import Button from '@/components/ui/button/Button' +import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' +import { useForm } from 'react-hook-form' +import { isDate } from 'date-fns' +import { fixTimezone } from '@/components/ui/form/formUtils' +import { DollyApi } from '@/service/Api' +import { + codeToNorskLabel, + formatDate, + formatDateTime, + oversettBoolean, +} from '@/utils/DataFormatter' const initialState = { personListe: [], @@ -33,6 +44,24 @@ export const tenorSoekLocalStorageKey = 'tenorSoek' export const tenorSoekStateLocalStorageKey = 'tenorSoekState' export default () => { + const [lagreSoekRequest, setLagreSoekRequest] = useState({}) + const lagreSoekRequestRef = useRef(lagreSoekRequest) + console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG + + useEffect(() => { + lagreSoekRequestRef.current = lagreSoekRequest + }, [lagreSoekRequest]) + + useEffect(() => { + return () => { + if (Object.keys(lagreSoekRequestRef.current).length > 0) { + DollyApi.lagreSoek(lagreSoekRequestRef.current, soekType.tenor) + .then((response) => console.log(response)) + .catch((error) => console.error(error)) + } + } + }, []) + const initialRequest = localStorage.getItem(tenorSoekLocalStorageKey) ? JSON.parse(localStorage.getItem(tenorSoekLocalStorageKey) as string) : {} @@ -52,6 +81,13 @@ export default () => { const [markertePersoner, setMarkertePersoner] = useState([]) const [inkluderPartnere, setInkluderPartnere] = useState(false) + const formMethods = useForm({ + mode: 'onChange', + defaultValues: formRequest || {}, + }) + + const { setValue, watch }: any = formMethods + useEffect(() => { setState(initialState) }, [formRequest]) @@ -129,11 +165,117 @@ export default () => { window.scrollTo({ top: treff, behavior: 'smooth' }) } + const getLabel = (value: any, path: string) => { + const splitPath = path?.split('.') + const fieldName = splitPath[splitPath.length - 1]?.trim() + if (typeof value === 'boolean') { + return `${codeToNorskLabel(fieldName)}: ${oversettBoolean(value)}` + } else if (value.length > 3) { + return `${codeToNorskLabel(fieldName)}: ${codeToNorskLabel(value)}` + } else if (isDate(value)) { + return `${codeToNorskLabel(path)}: ${formatDate(value)}` + } + //TODO: Tall f.o.m. t.o.m.? + //TODO: Paths med flere nivaaer? + return `${codeToNorskLabel(fieldName)}: ${value}` + } + + function getUpdatedRequest(request: any) { + for (let key of Object.keys(request)) { + if (request[key] === '' || request[key] === null || request[key] === undefined) { + delete request[key] + } else if (typeof request[key] === 'object' && !(request[key] instanceof Date)) { + request[key] = getUpdatedRequest(request[key]) + if (Object.keys(request[key]).length === 0) { + delete request[key] + } else { + request[key] = getUpdatedRequest(request[key]) + } + } + } + return Array.isArray(request) ? request.filter((val) => val) : request + } + + const handleChange = (value: any, path: string, label: string) => { + if (isDate(value)) { + value = fixTimezone(value) + } + setValue(path, value) + const request = getUpdatedRequest(watch()) + setRequest({ ...request }) + setMarkertePersoner([]) + mutate() + if (value || typeof value === 'boolean') { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: { + path: path, + value: value, + label: label, + }, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: undefined, + }) + } + } + + //TODO: Test og skriv ferdig denne + //TODO: Boer value kun vaere en liste av strings? Sjekk der handleChangeList brukes + const handleChangeList = (value: any, path: string, label: string) => { + console.log('value: ', value) //TODO - SLETT MEG + // const list = value.map((item: any) => item.value || item) + setValue(path, value) + const request = getUpdatedRequest(watch()) + setRequest({ ...request }) + setMarkertePersoner([]) + mutate() + if (value?.length > 0) { + const request = value.map((i) => ({ + path: path, + // value: i.value, + value: i, + // label: label, + label: label.includes(':') ? label : `${label}: ${codeToNorskLabel(i)}`, + })) + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: request, + }) + } else { + setLagreSoekRequest({ + ...lagreSoekRequest, + [path]: [], + }) + } + } + + const emptyCategory = (paths: Array) => { + paths.forEach((path) => { + setValue(path, undefined) + }) + const request = getUpdatedRequest(watch()) + setRequest({ ...request }) + setMarkertePersoner([]) + mutate() + } + + // console.log('watch(): ', watch()) //TODO - SLETT MEG + // console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG + return (
</div> + <SisteSoek + type={soekType.tenor} + formValues={formMethods.watch()} + handleChange={handleChange} + handleChangeList={handleChangeList} + /> <div className="flexbox--flex-wrap" id="soek"> <NavigateButton className="gaa-til-treff" @@ -143,10 +285,10 @@ export default () => { GÅ TIL TREFF </NavigateButton> <SoekForm - request={formRequest} - setRequest={setRequest} - setMarkertePersoner={setMarkertePersoner} - mutate={mutate} + formMethods={formMethods} + handleChange={handleChange} + handleChangeList={handleChangeList} + emptyCategory={emptyCategory} /> </div> <div id="treff"> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx index a47450b2665..351b05214b3 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx @@ -5,6 +5,7 @@ import { createOptions } from '@/pages/tenorSoek/utils' import React, { SyntheticEvent } from 'react' import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' +import { formatDate } from '@/utils/DataFormatter' export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any) => { const { domain: arbeidsforholdstypeOptions, loading: loadingArbeidsforholdstype } = @@ -18,7 +19,11 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any size="xlarge" label="Arbeidsforholdstype" onChange={(val: SyntheticEvent) => - handleChange(val?.value || null, 'arbeidsforhold.arbeidsforholdstype') + handleChange( + val?.value || null, + 'arbeidsforhold.arbeidsforholdstype', + `Arbeidsforholdstype: ${val?.label}`, + ) } isLoading={loadingArbeidsforholdstype} /> @@ -27,7 +32,11 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any name="arbeidsforhold.startDatoPeriode.fraOgMed" label="Startdato f.o.m." onChange={(val: SyntheticEvent) => - handleChange(val || null, 'arbeidsforhold.startDatoPeriode.fraOgMed') + handleChange( + val || null, + 'arbeidsforhold.startDatoPeriode.fraOgMed', + `Arbeidsforhold startdato f.o.m.: ${formatDate(val)}`, + ) } visHvisAvhuket={false} /> @@ -35,7 +44,11 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any name="arbeidsforhold.startDatoPeriode.tilOgMed" label="Startdato t.o.m." onChange={(val: SyntheticEvent) => - handleChange(val || null, 'arbeidsforhold.startDatoPeriode.tilOgMed') + handleChange( + val || null, + 'arbeidsforhold.startDatoPeriode.tilOgMed', + `Arbeidsforhold startdato t.o.m.: ${formatDate(val)}`, + ) } visHvisAvhuket={false} /> @@ -43,7 +56,11 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any name="arbeidsforhold.sluttDatoPeriode.fraOgMed" label="Sluttdato f.o.m." onChange={(val: SyntheticEvent) => - handleChange(val || null, 'arbeidsforhold.sluttDatoPeriode.fraOgMed') + handleChange( + val || null, + 'arbeidsforhold.sluttDatoPeriode.fraOgMed', + `Arbeidsforhold sluttdato f.o.m.: ${formatDate(val)}`, + ) } visHvisAvhuket={false} /> @@ -51,7 +68,11 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any name="arbeidsforhold.sluttDatoPeriode.tilOgMed" label="Sluttdato t.o.m." onChange={(val: SyntheticEvent) => - handleChange(val || null, 'arbeidsforhold.sluttDatoPeriode.tilOgMed') + handleChange( + val || null, + 'arbeidsforhold.sluttDatoPeriode.tilOgMed', + `Arbeidsforhold sluttdato t.o.m.: ${formatDate(val)}`, + ) } visHvisAvhuket={false} /> @@ -60,35 +81,55 @@ export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any name="arbeidsforhold.harPermisjoner" label="Har permisjoner" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'arbeidsforhold.harPermisjoner') + handleChange( + val?.target?.checked || undefined, + 'arbeidsforhold.harPermisjoner', + 'Arbeidsforhold har permisjoner', + ) } /> <FormCheckbox name="arbeidsforhold.harPermitteringer" label="Har permitteringer" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'arbeidsforhold.harPermitteringer') + handleChange( + val?.target?.checked || undefined, + 'arbeidsforhold.harPermitteringer', + 'Arbeidsforhold har permitteringer', + ) } /> <FormCheckbox name="arbeidsforhold.harTimerMedTimeloenn" label="Har timer med timelønn" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'arbeidsforhold.harTimerMedTimeloenn') + handleChange( + val?.target?.checked || undefined, + 'arbeidsforhold.harTimerMedTimeloenn', + 'Arbeidsforhold har timer med timelønn', + ) } /> <FormCheckbox name="arbeidsforhold.harUtenlandsopphold" label="Har utenlandsopphold" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'arbeidsforhold.harUtenlandsopphold') + handleChange( + val?.target?.checked || undefined, + 'arbeidsforhold.harUtenlandsopphold', + 'Arbeidsforhold har utenlandsopphold', + ) } /> <FormCheckbox name="arbeidsforhold.harHistorikk" label="Har historikk" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'arbeidsforhold.harHistorikk') + handleChange( + val?.target?.checked || undefined, + 'arbeidsforhold.harHistorikk', + 'Arbeidsforhold har historikk', + ) } /> </SoekKategori> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/EnhetsregisteretForetaksregisteret.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/EnhetsregisteretForetaksregisteret.tsx index 861af9bfbc4..d49f2a5e26e 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/EnhetsregisteretForetaksregisteret.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/EnhetsregisteretForetaksregisteret.tsx @@ -15,7 +15,13 @@ export const EnhetsregisteretForetaksregisteret = ({ handleChangeList }: any) => isMulti={true} size="grow" label="Roller" - onChange={(val: SyntheticEvent) => handleChangeList(val || null, 'roller')} + onChange={(val: SyntheticEvent) => + handleChangeList( + val?.map((item: any) => item.value) || null, + 'roller', + 'Rolle i Enhetsregisteret/Foretaksregisteret', + ) + } isLoading={loadingRoller} /> </div> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx index 21eedd62b72..f2e6306636e 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx @@ -7,6 +7,7 @@ import { createOptions } from '@/pages/tenorSoek/utils' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { AdresseKodeverk } from '@/config/kodeverk' import { Option } from '@/service/SelectOptionsOppslag' +import { codeToNorskLabel, oversettBoolean } from '@/utils/DataFormatter' export const FolkeregisteretAdresse = ({ handleChange }: any) => { const { domain: adresseGraderingOptions, loading: loadingAdresseGradering } = @@ -18,56 +19,90 @@ export const FolkeregisteretAdresse = ({ handleChange }: any) => { name="adresser.adresseGradering" options={createOptions(adresseGraderingOptions?.data)} label="Adressegradering" - onChange={(val: any) => handleChange(val?.value || null, 'adresser.adresseGradering')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'adresser.adresseGradering', + `Adressegradering: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingAdresseGradering} /> <FormSelect name="adresser.kommunenummer" label="Kommunenummer" kodeverk={AdresseKodeverk.Kommunenummer} - onChange={(val: Option) => handleChange(val?.value, 'adresser.kommunenummer')} + onChange={(val: Option) => + handleChange(val?.value, 'adresser.kommunenummer', `Kommunenummer: ${val?.value}`) + } size="large" /> <FormSelect name="adresser.harAdresseSpesialtegn" options={Options('boolean')} label="Har spesialtegn i adresse" - onChange={(val: any) => handleChange(val?.value, 'adresser.harAdresseSpesialtegn')} + onChange={(val: any) => + handleChange( + val?.value, + 'adresser.harAdresseSpesialtegn', + `Har spesialtegn i adresse: ${oversettBoolean(val?.value)}`, + ) + } /> <div className="flexbox--flex-wrap"> <FormCheckbox name="adresser.harBostedsadresse" label="Har bostedsadresse" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'adresser.harBostedsadresse') + handleChange( + val?.target?.checked || undefined, + 'adresser.harBostedsadresse', + 'Har bostedsadresse', + ) } /> <FormCheckbox name="adresser.harOppholdAnnetSted" label="Har opphold annet sted" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'adresser.harOppholdAnnetSted') + handleChange( + val?.target?.checked || undefined, + 'adresser.harOppholdAnnetSted', + 'Har opphold annet sted', + ) } /> <FormCheckbox name="adresser.harPostadresseNorge" label="Har postadresse i Norge" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'adresser.harPostadresseNorge') + handleChange( + val?.target?.checked || undefined, + 'adresser.harPostadresseNorge', + 'Har postadresse i Norge', + ) } /> <FormCheckbox name="adresser.harPostadresseUtland" label="Har postadresse i utlandet" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'adresser.harPostadresseUtland') + handleChange( + val?.target?.checked || undefined, + 'adresser.harPostadresseUtland', + 'Har postadresse i utlandet', + ) } /> <FormCheckbox name="adresser.harKontaktadresseDoedsbo" label="Har kontaktadresse for dødsbo" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'adresser.harKontaktadresseDoedsbo') + handleChange( + val?.target?.checked || undefined, + 'adresser.harKontaktadresseDoedsbo', + 'Har kontaktadresse for dødsbo', + ) } /> </div> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretHendelser.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretHendelser.tsx index c4be2506131..01687d6f677 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretHendelser.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretHendelser.tsx @@ -14,7 +14,9 @@ export const FolkeregisteretHendelser = ({ handleChange }: any) => { options={createOptions(hendelseOptions?.data, true)} size="large" label="Har hatt hendelse" - onChange={(val: any) => handleChange(val?.value || null, 'hendelser.hendelse')} + onChange={(val: any) => + handleChange(val?.value || null, 'hendelser.hendelse', `Har hatt hendelse: ${val?.label}`) + } isLoading={loadingHendelse} /> <FormSelect @@ -22,7 +24,13 @@ export const FolkeregisteretHendelser = ({ handleChange }: any) => { options={createOptions(hendelseOptions?.data, true)} size="large" label="Siste hendelse" - onChange={(val: any) => handleChange(val?.value || null, 'hendelser.sisteHendelse')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'hendelser.sisteHendelse', + `Siste hendelse: ${val?.label}`, + ) + } isLoading={loadingHendelse} /> </SoekKategori> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx index ce8905cb365..e02fd423eae 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx @@ -8,6 +8,7 @@ import { SelectOptionsManager as Options } from '@/service/SelectOptions' import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { TestComponentSelectors } from '#/mocks/Selectors' +import { codeToNorskLabel, formatDate, oversettBoolean } from '@/utils/DataFormatter' export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChangeList }: any) => { const { domain: identifikatorTypeOptions, loading: loadingIdentifikatorType } = @@ -30,80 +31,140 @@ export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChange name="identifikator" label="Fødselsnummer / D-nummer" // @ts-ignore - onBlur={(val: any) => handleChange(val?.target?.value || null, 'identifikator')} + onBlur={(val: any) => + handleChange( + val?.target?.value || null, + 'identifikator', + `Fødselsnummer/D-nummer: ${val?.target?.value}`, + ) + } visHvisAvhuket={false} /> <FormSelect name="identifikatorType" options={createOptions(identifikatorTypeOptions?.data, true)} label="Identifikatortype" - onChange={(val: any) => handleChange(val?.value || null, 'identifikatorType')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'identifikatorType', + `Identifikatortype: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingIdentifikatorType} /> <FormDatepicker name="foedselsdato.fraOgMed" label="Fødselsdato f.o.m." - onChange={(val: SyntheticEvent) => handleChange(val || null, 'foedselsdato.fraOgMed')} + onChange={(val: SyntheticEvent) => + handleChange( + val || null, + 'foedselsdato.fraOgMed', + `Fødselsdato f.o.m.: ${formatDate(val)}`, + ) + } visHvisAvhuket={false} /> <FormDatepicker name="foedselsdato.tilOgMed" label="Fødselsdato t.o.m." - onChange={(val: SyntheticEvent) => handleChange(val || null, 'foedselsdato.tilOgMed')} + onChange={(val: SyntheticEvent) => + handleChange( + val || null, + 'foedselsdato.tilOgMed', + `Fødselsdato t.o.m.: ${formatDate(val)}`, + ) + } visHvisAvhuket={false} /> <FormDatepicker name="doedsdato.fraOgMed" label="Dødsdato f.o.m." - onChange={(val: SyntheticEvent) => handleChange(val || null, 'doedsdato.fraOgMed')} + onChange={(val: SyntheticEvent) => + handleChange(val || null, 'doedsdato.fraOgMed', `Dødsdato f.o.m.: ${formatDate(val)}`) + } visHvisAvhuket={false} /> <FormDatepicker name="doedsdato.tilOgMed" label="Dødsdato t.o.m." - onChange={(val: SyntheticEvent) => handleChange(val || null, 'doedsdato.tilOgMed')} + onChange={(val: SyntheticEvent) => + handleChange(val || null, 'doedsdato.tilOgMed', `Dødsdato t.o.m.: ${formatDate(val)}`) + } visHvisAvhuket={false} /> <FormSelect name="kjoenn" options={createOptions(kjoennOptions?.data)} label="Kjønn" - onChange={(val: any) => handleChange(val?.value || null, 'kjoenn')} + onChange={(val: any) => + handleChange(val?.value || null, 'kjoenn', `Kjønn: ${codeToNorskLabel(val?.value)}`) + } isLoading={loadingKjoenn} /> <FormSelect name="personstatus" options={createOptions(personstatusOptions?.data)} label="Personstatus" - onChange={(val: any) => handleChange(val?.value || null, 'personstatus')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'personstatus', + `Personstatus: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingPersonstatus} /> <FormSelect name="sivilstand" options={createOptions(sivilstatusOptions?.data)} label="Sivilstand" - onChange={(val: any) => handleChange(val?.value || null, 'sivilstand')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'sivilstand', + `Sivilstand: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingSivilstatus} /> <FormSelect name="identitetsgrunnlagStatus" options={createOptions(identitetsgrunnlagStatusOptions?.data)} label="Identitetsgrunnlagsstatus" - onChange={(val: any) => handleChange(val?.value || null, 'identitetsgrunnlagStatus')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'identitetsgrunnlagStatus', + `Identitetsgrunnlagsstatus: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingIdentgrunnlag} /> <FormSelect name="adressebeskyttelse" options={createOptions(adressebeskyttelseOptions?.data)} label="Adressebeskyttelse" - onChange={(val: any) => handleChange(val?.value || null, 'adressebeskyttelse')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'adressebeskyttelse', + `Adressebeskyttelse: ${codeToNorskLabel(val?.value)}`, + ) + } isLoading={loadingAdressebeskyttelse} /> <FormSelect name="harFalskIdentitet" options={Options('boolean')} label="Har falsk identitet" - onChange={(val: any) => handleChange(val?.value, 'harFalskIdentitet')} + onChange={(val: any) => + handleChange( + val?.value, + 'harFalskIdentitet', + `Har falsk identitet: ${oversettBoolean(val?.value)}`, + ) + } /> <div className="flexbox--full-width"> <FormSelect @@ -112,9 +173,13 @@ export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChange isMulti={true} size="grow" label="Utenlandsk identifikasjonsnummertype" - onChange={(val: SyntheticEvent) => - handleChangeList(val || null, 'utenlandskPersonIdentifikasjon') - } + onChange={(val: SyntheticEvent) => { + return handleChangeList( + val?.map((item: any) => item.value) || null, + 'utenlandskPersonIdentifikasjon', + 'Utenlandsk ident.nr.type', + ) + }} isLoading={loadingUtenlandsid} /> </div> @@ -123,7 +188,11 @@ export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChange data-testid={TestComponentSelectors.CHECKBOX_TENORSOEK} label="Har legitimasjonsdokument" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'harLegitimasjonsdokument') + handleChange( + val?.target?.checked || undefined, + 'harLegitimasjonsdokument', + 'Har legitimasjonsdokument', + ) } /> </SoekKategori> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx index 7e05d0a5002..5a05bb17c2c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx @@ -4,43 +4,71 @@ import React from 'react' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' +import { oversettBoolean } from '@/utils/DataFormatter' export const FolkeregisteretNavn = ({ handleChange }: any) => { return ( <SoekKategori> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="navn.navnLengde.fraOgMed" label="Lengde på navn f.o.m." type="number" // @ts-ignore - onBlur={(val: any) => handleChange(val?.target?.value || null, 'navn.navnLengde.fraOgMed')} + onBlur={(val: any) => + handleChange( + val?.target?.value || null, + 'navn.navnLengde.fraOgMed', + `Lengde på navn f.o.m.: ${val?.target?.value}`, + ) + } visHvisAvhuket={false} /> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="navn.navnLengde.tilOgMed" label="Lengde på navn t.o.m." type="number" // @ts-ignore - onBlur={(val: any) => handleChange(val?.target?.value || null, 'navn.navnLengde.tilOgMed')} + onBlur={(val: any) => + handleChange( + val?.target?.value || null, + 'navn.navnLengde.tilOgMed', + `Lengde på navn t.o.m.: ${val?.target?.value}`, + ) + } visHvisAvhuket={false} /> <FormSelect name="navn.harFlereFornavn" options={Options('boolean')} - label="Har flere fornnavn" - onChange={(val: any) => handleChange(val?.value, 'navn.harFlereFornavn')} + label="Har flere fornavn" + onChange={(val: any) => + handleChange( + val?.value, + 'navn.harFlereFornavn', + `Har flere fornavn: ${oversettBoolean(val?.value)}`, + ) + } /> + {/*TODO: Denne feiler naar man gjoer soek med den:*/} <FormSelect name="navn.harNavnSpesialtegn" options={Options('boolean')} label="Har spesialtegn i navn" - onChange={(val: any) => handleChange(val?.value, 'navn.harNavnSpesialtegn')} + onChange={(val: any) => + handleChange( + val?.value, + 'navn.harNavnSpesialtegn', + `Har spesialtegn i navn: ${oversettBoolean(val?.value)}`, + ) + } /> <FormCheckbox name="navn.harMellomnavn" label="Har mellomnavn" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'navn.harMellomnavn') + handleChange(val?.target?.checked || undefined, 'navn.harMellomnavn', 'Har mellomnavn') } /> </SoekKategori> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx index 0d2206990a2..8986b49531e 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx @@ -15,9 +15,12 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { name="relasjoner.relasjon" options={createOptions(relasjonOptions?.data)} label="Relasjon" - onChange={(val: any) => handleChange(val?.value || null, 'relasjoner.relasjon')} + onChange={(val: any) => + handleChange(val?.value || null, 'relasjoner.relasjon', `Relasjon: ${val?.label}`) + } isLoading={loadingRelasjon} /> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <div className="flexbox--flex-wrap"> <FormTextInput name="relasjoner.antallBarn.fraOgMed" @@ -25,39 +28,58 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { type="number" // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'relasjoner.antallBarn.fraOgMed') + handleChange( + val?.target?.value || null, + 'relasjoner.antallBarn.fraOgMed', + `Antall barn f.o.m.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.antallBarn.tilOgMed" label="Antall barn t.o.m." type="number" // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'relasjoner.antallBarn.tilOgMed') + handleChange( + val?.target?.value || null, + 'relasjoner.antallBarn.tilOgMed', + `Antall barn t.o.m.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> </div> <div className="flexbox--flex-wrap"> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.relasjonMedFoedselsaar.fraOgMed" label="Relasjon med fødselsår f.o.m." type="number" // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'relasjoner.relasjonMedFoedselsaar.fraOgMed') + handleChange( + val?.target?.value || null, + 'relasjoner.relasjonMedFoedselsaar.fraOgMed', + `Relasjon med fødselsår f.o.m.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.relasjonMedFoedselsaar.tilOgMed" label="Relasjon med fødselsår t.o.m." type="number" // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'relasjoner.relasjonMedFoedselsaar.tilOgMed') + handleChange( + val?.target?.value || null, + 'relasjoner.relasjonMedFoedselsaar.tilOgMed', + `Relasjon med fødselsår t.o.m.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> @@ -67,14 +89,22 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { name="relasjoner.harForeldreAnsvar" label="Har foreldreansvar" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.harForeldreAnsvar') + handleChange( + val?.target?.checked || undefined, + 'relasjoner.harForeldreAnsvar', + 'Har foreldreansvar', + ) } /> <FormCheckbox name="relasjoner.harDeltBosted" label="Har delt bosted" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.harDeltBosted') + handleChange( + val?.target?.checked || undefined, + 'relasjoner.harDeltBosted', + 'Har delt bosted', + ) } /> <FormCheckbox @@ -84,6 +114,7 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { handleChange( val?.target?.checked || undefined, 'relasjoner.harVergemaalEllerFremtidsfullmakt', + 'Har vergemål eller fremtidsfullmakt', ) } /> @@ -91,28 +122,36 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { name="relasjoner.borMedMor" label="Bor med mor" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.borMedMor') + handleChange(val?.target?.checked || undefined, 'relasjoner.borMedMor', 'Bor med mor') } /> <FormCheckbox name="relasjoner.borMedFar" label="Bor med far" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.borMedFar') + handleChange(val?.target?.checked || undefined, 'relasjoner.borMedFar', 'Bor med far') } /> <FormCheckbox name="relasjoner.borMedMedmor" label="Bor med medmor" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.borMedMedmor') + handleChange( + val?.target?.checked || undefined, + 'relasjoner.borMedMedmor', + 'Bor med medmor', + ) } /> <FormCheckbox name="relasjoner.foreldreHarSammeAdresse" label="Foreldre har samme adresse" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'relasjoner.foreldreHarSammeAdresse') + handleChange( + val?.target?.checked || undefined, + 'relasjoner.foreldreHarSammeAdresse', + 'Foreldre har samme adresse', + ) } /> </div> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx index 66e36739aa1..0544a51842c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx @@ -2,6 +2,7 @@ import { SelectOptionsManager as Options } from '@/service/SelectOptions' import { FormSelect } from '@/components/ui/form/inputs/select/Select' import React from 'react' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' +import { oversettBoolean } from '@/utils/DataFormatter' export const FolkeregisteretStatsborgerskap = ({ handleChange }: any) => { return ( @@ -10,13 +11,25 @@ export const FolkeregisteretStatsborgerskap = ({ handleChange }: any) => { name="harNorskStatsborgerskap" options={Options('boolean')} label="Har norsk statsborgerskap" - onChange={(val: any) => handleChange(val?.value, 'harNorskStatsborgerskap')} + onChange={(val: any) => + handleChange( + val?.value, + 'harNorskStatsborgerskap', + `Har norsk statsborgerskap: ${oversettBoolean(val?.value)}`, + ) + } /> <FormSelect name="harFlereStatsborgerskap" options={Options('boolean')} label="Har flere statsborgerskap" - onChange={(val: any) => handleChange(val?.value, 'harFlereStatsborgerskap')} + onChange={(val: any) => + handleChange( + val?.value, + 'harFlereStatsborgerskap', + `Har flere statsborgerskap: ${oversettBoolean(val?.value)}`, + ) + } /> </SoekKategori> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx index 21c4147ba99..6a1dd230a8b 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx @@ -6,6 +6,7 @@ import { createOptions } from '@/pages/tenorSoek/utils' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { Monthpicker } from '@/components/ui/form/inputs/monthpicker/Monthpicker' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' +import { oversettBoolean } from '@/utils/DataFormatter' export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: any) => { const { domain: inntektstypeOptions, loading: loadingInntektstype } = @@ -22,7 +23,11 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: label="Periode f.o.m. dato" // @ts-ignore handleDateChange={(val: Date) => { - handleChange(val ? val.toISOString().substring(0, 7) : '', 'inntekt.periode.fraOgMed') + handleChange( + val ? val.toISOString().substring(0, 7) : '', + 'inntekt.periode.fraOgMed', + `Inntekt periode f.o.m.: ${val?.toISOString().substring(0, 7)}`, + ) }} date={getValue('inntekt.periode.fraOgMed')} /> @@ -31,16 +36,25 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: label="Periode t.o.m. dato" // @ts-ignore handleDateChange={(val: Date) => { - handleChange(val ? val.toISOString().substring(0, 7) : '', 'inntekt.periode.tilOgMed') + handleChange( + val ? val.toISOString().substring(0, 7) : '', + 'inntekt.periode.tilOgMed', + `Inntekt periode t.o.m.: ${val?.toISOString().substring(0, 7)}`, + ) }} date={getValue('inntekt.periode.tilOgMed')} /> + {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="inntekt.opplysningspliktig" label="Opplysningspliktig org.nr." // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'inntekt.opplysningspliktig') + handleChange( + val?.target?.value || null, + 'inntekt.opplysningspliktig', + `Inntekt opplysningspliktig org.nr.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> @@ -51,7 +65,13 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: isMulti={true} size="grow" label="Inntektstyper" - onChange={(val: SyntheticEvent) => handleChangeList(val || null, 'inntekt.inntektstyper')} + onChange={(val: SyntheticEvent) => + handleChangeList( + val?.map((item: any) => item.value) || null, + 'inntekt.inntektstyper', + 'Inntektstype', + ) + } isLoading={loadingInntektstype} /> <FormSelect @@ -61,7 +81,11 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: size="grow" label="Forskuddstrekk" onChange={(val: SyntheticEvent) => - handleChangeList(val || null, 'inntekt.forskuddstrekk') + handleChangeList( + val?.map((item: any) => item.value) || null, + 'inntekt.forskuddstrekk', + 'Inntekt forskuddstrekk', + ) } isLoading={loadingForskuddstrekk} /> @@ -71,7 +95,13 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: options={createOptions(beskrivelseOptions?.data)} size="xlarge" label="Beskrivelse" - onChange={(val: any) => handleChange(val?.value || null, 'inntekt.beskrivelse')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'inntekt.beskrivelse', + `Inntekt beskrivelse: ${val?.label}`, + ) + } isLoading={loadingBeskrivelse} /> <FormSelect @@ -79,7 +109,13 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: options={Options('boolean')} size="small" label="Har historikk" - onChange={(val: any) => handleChange(val?.value, 'inntekt.harHistorikk')} + onChange={(val: any) => + handleChange( + val?.value, + 'inntekt.harHistorikk', + `Inntekt har historikk: ${oversettBoolean(val?.value)}`, + ) + } /> </SoekKategori> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Skattemelding.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Skattemelding.tsx index 6e9db3602ce..165c6d14ce8 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Skattemelding.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Skattemelding.tsx @@ -25,7 +25,13 @@ export const Skattemelding = ({ handleChange }: any) => { name="skattemelding.inntektsaar" options={inntektsaarOptions} label="Inntektsår" - onChange={(val: any) => handleChange(val?.value || null, 'skattemelding.inntektsaar')} + onChange={(val: any) => + handleChange( + val?.value || null, + 'skattemelding.inntektsaar', + `Inntektsår skattemelding: ${val?.label}`, + ) + } /> <FormSelect name="skattemelding.skattemeldingstype" @@ -33,7 +39,11 @@ export const Skattemelding = ({ handleChange }: any) => { label="Type skattemelding" size="large" onChange={(val: any) => - handleChange(val?.value || null, 'skattemelding.skattemeldingstype') + handleChange( + val?.value || null, + 'skattemelding.skattemeldingstype', + `Type skattemelding: ${val?.label}`, + ) } isLoading={loadingSkattemeldingstype} /> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx index 5c011567660..c3b14e107db 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx @@ -3,16 +3,21 @@ import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { Monthpicker } from '@/components/ui/form/inputs/monthpicker/Monthpicker' +// TODO: Fiks begge feltene! export const Tjenestepensjonsavtale = ({ handleChange, getValue }: any) => { return ( <SoekKategori> <FormTextInput name="tjenestepensjonsavtale.pensjonsinnretningOrgnr" label="Pensjonsinnretning (org.nr.)" - type="number" + // type="number" // @ts-ignore onBlur={(val: any) => - handleChange(val?.target?.value || null, 'tjenestepensjonsavtale.pensjonsinnretningOrgnr') + handleChange( + val?.target?.value ?? null, + 'tjenestepensjonsavtale.pensjonsinnretningOrgnr', + `Tjenestepensjonsavtale org.nr.: ${val?.target?.value}`, + ) } visHvisAvhuket={false} /> @@ -21,9 +26,11 @@ export const Tjenestepensjonsavtale = ({ handleChange, getValue }: any) => { label="Periode" // @ts-ignore handleDateChange={(val: Date) => { + console.log('val: ', val) //TODO - SLETT MEG handleChange( val ? val.toISOString().substring(0, 7) : '', 'tjenestepensjonsavtale.periode', + `Tjenestepensjonsavtale periode: ${val?.toISOString().substring(0, 7)}`, ) }} date={getValue('tjenestepensjonsavtale.periode')} From c1b98c791e110350133b01f874a1ce5064d774b8 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Fri, 12 Sep 2025 16:50:37 +0200 Subject: [PATCH 14/21] Div bugfix paa TextInput DateInput Monthpicker ++ --- .../ui/form/inputs/datepicker/DateInput.tsx | 11 +++-- .../form/inputs/monthpicker/Monthpicker.tsx | 17 ++++++-- .../ui/form/inputs/textInput/TextInput.tsx | 11 +++-- .../src/components/ui/soekForm/SisteSoek.tsx | 42 ++++++------------- .../js/src/pages/dollySoek/DollySoekPage.tsx | 2 + .../js/src/pages/tenorSoek/TenorSoekPage.tsx | 25 ++++------- .../soekFormPartials/FolkeregisteretNavn.tsx | 2 - .../FolkeregisteretRelasjoner.tsx | 4 -- .../soekFormPartials/InntektAordningen.tsx | 1 - .../Tjenestepensjonsavtale.tsx | 3 -- 10 files changed, 51 insertions(+), 67 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx index e0873e17268..41e6c8df9cf 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx @@ -65,14 +65,18 @@ export const DateInput = ({ const { showError } = React.useContext(ShowErrorContext) || {} const fieldValue = name ? watch(name) : '' - // console.log('fieldValue: ', fieldValue) //TODO - SLETT MEG const [formattedValue, setFormattedValue] = useState(fieldValue ? formatDate(fieldValue) : '') - // console.log('formattedValue: ', formattedValue) //TODO - SLETT MEG - //TODO: Dato vises paa feil format naar man setter dato fra siste soek + + // if (name === 'foedselsdato.fraOgMed') { + // console.log('fieldValue: ', fieldValue) //TODO - SLETT MEG + // console.log('formattedValue: ', formattedValue) //TODO - SLETT MEG + // } useEffect(() => { if (!fieldValue) { setFormattedValue('') + } else { + setFormattedValue(formatDate(fieldValue)) } }, [fieldValue]) @@ -95,6 +99,7 @@ export const DateInput = ({ setValue(name, e.target.value, { shouldTouch: true }) props.onChange?.(e) setFormattedValue(e.target.value) + // setFormattedValue(formatDate(e.target.value)) } const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => { diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx index 162f148b08d..6f5e38cb08b 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx @@ -1,7 +1,7 @@ import { Label } from '@/components/ui/form/inputs/label/Label' import { InputWrapper } from '@/components/ui/form/inputWrapper/InputWrapper' import { MonthPicker, useMonthpicker } from '@navikt/ds-react' -import { addYears, isDate, subYears } from 'date-fns' +import { addYears, isDate, isSameDay, subYears } from 'date-fns' import { useFormContext } from 'react-hook-form' import * as _ from 'lodash-es' import { useEffect } from 'react' @@ -16,7 +16,6 @@ interface MonthpickerProps { maxDate?: Date } -//TODO: Maaned vises ikke naar den settes fra siste soek export const Monthpicker = ({ name, label, @@ -36,7 +35,7 @@ export const Monthpicker = ({ ? date : new Date(date) - const { monthpickerProps, inputProps, reset } = useMonthpicker({ + const { monthpickerProps, inputProps, reset, setSelected } = useMonthpicker({ fromDate: minDate || subYears(new Date(), 125), toDate: maxDate || addYears(new Date(), 5), onMonthChange: (selectedDate) => { @@ -53,9 +52,21 @@ export const Monthpicker = ({ useEffect(() => { if (!eksisterendeVerdi && inputProps.value) { reset() + } else if ( + eksisterendeVerdi && + !isSameDay(new Date(formattedDate), new Date(monthpickerProps.selected)) + ) { + setSelected(formattedDate) } }, [eksisterendeVerdi]) + // if (name === 'inntekt.periode.fraOgMed') { + // console.log('eksisterendeVerdi: ', eksisterendeVerdi) //TODO - SLETT MEG + // console.log('inputProps: ', inputProps) //TODO - SLETT MEG + // console.log('formattedDate: ', formattedDate) //TODO - SLETT MEG + // console.log('monthpickerProps: ', monthpickerProps) //TODO - SLETT MEG + // } + return ( <InputWrapper size={'small'}> <Label name={name} label={label}> diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx index 02a2a2116c6..1ce3cfee195 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx @@ -94,9 +94,7 @@ export const TextInput = ({ setFieldValue(formValue || '') } else if (!useControlled) { const propValue = value - if (propValue !== undefined) { - setFieldValue(propValue || '') - } + setFieldValue(propValue || '') } }, [value, formValue, useControlled]) @@ -157,6 +155,13 @@ export const TextInput = ({ 'skjemaelement__input--harFeil': shouldShowError, }) + // if (name === 'relasjoner.relasjonMedFoedselsaar.fraOgMed' || name === 'identifikator') { + // console.log(`fieldValue ${name}: `, fieldValue) //TODO - SLETT MEG + // console.log(`value ${name}: `, value) //TODO - SLETT MEG + // console.log(`defaultValue ${name}: `, defaultValue) //TODO - SLETT MEG + // console.log(`watch ${name}: `, watch(name)) //TODO - SLETT MEG + // } + return ( <> <input diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 1a66f7575db..f28bbdd5c85 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -1,29 +1,14 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' import * as _ from 'lodash-es' -import { codeToNorskLabel, formatDate } from '@/utils/DataFormatter' -import { isDate } from 'date-fns' +import { codeToNorskLabel } from '@/utils/DataFormatter' +import { isDate, isSameDay } from 'date-fns' export enum soekType { dolly = 'DOLLY', tenor = 'TENOR', } -export const getLabel = (value: any, path: string) => { - const splitPath = path?.split('.') - const fieldName = splitPath[splitPath.length - 1]?.trim() - if (value === true) { - return `${codeToNorskLabel(fieldName)}` - } else if (value.length > 3) { - return `${codeToNorskLabel(fieldName)}: ${codeToNorskLabel(value)}` - } else if (isDate(value)) { - return `${codeToNorskLabel(path)}: ${formatDate(value)}` - } - //TODO: Tall f.o.m. t.o.m.? - //TODO: Paths med flere nivaaer? - return `${codeToNorskLabel(fieldName)}: ${value}` -} - const listOptions = [ 'registreRequest', 'utenlandskPersonIdentifikasjon', @@ -65,19 +50,21 @@ export const SisteSoek = ({ formValue?.length === value.length && formValue?.every((item) => value?.map((v) => v.value).includes(item)) ) + } else if (formValue?.length > 8 && isDate(new Date(formValue))) { + return isSameDay(new Date(formValue), new Date(value)) } return formValue === value } const handleClick = (option) => { - console.log('option: ', option) //TODO - SLETT MEG + // console.log('option: ', option) //TODO - SLETT MEG // console.log('formValues: ', formValues) //TODO - SLETT MEG // console.log("option.path?.split('.'): ", option.path?.split('.')) //TODO - SLETT MEG //TODO: Handleclick generell for lister? if (listOptions.includes(option.path)) { const listValues = _.get(formValues, option.path) || [] - console.log('listValues: ', listValues) //TODO - SLETT MEG + // console.log('listValues: ', listValues) //TODO - SLETT MEG handleChangeList( !listValues?.includes(option.value) ? [...listValues, { value: option.value, label: codeToNorskLabel(option.value) }] @@ -115,10 +102,9 @@ export const SisteSoek = ({ //TODO: Denne ser ut til aa funke naa. Gjoer det samme paa handleClick? const handleClickTenor = (option) => { - console.log('option: ', option) //TODO - SLETT MEG + const formValue = _.get(formValues, option.path) if (listOptions.includes(option.path)) { - const listValues = _.get(formValues, option.path) || [] - console.log('listValues: ', listValues) //TODO - SLETT MEG + const listValues = formValue || [] handleChangeList( !listValues?.includes(option.value) ? [...listValues, option.value] @@ -126,19 +112,15 @@ export const SisteSoek = ({ option.path, option.label, ) - } else { + } else if (formValue?.length > 8 && isDate(new Date(formValue))) { handleChange( - _.get(formValues, option.path) !== option.value ? option.value : null, + !isSameDay(new Date(formValue), new Date(option.value)) ? option.value : null, option.path, option.label, ) + } else { + handleChange(formValue !== option.value ? option.value : null, option.path, option.label) } - // if (isDate(option.value)) { - // console.log('Is date!!!') //TODO - SLETT MEG - // handleChange( - // _.get(formValues, option.path) !== option.value ? option.value : null, - // option.path, - // ) } return ( diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 5030420367d..0e049b86789 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -83,6 +83,7 @@ export default () => { } } + //TODO: Slaa sammen med handleChange? const handleChangeAdresse = (value: any, path: string) => { const updatedAdresseRequest = { ...values.personRequest.adresse, [path]: value } const updatedRequest = { @@ -110,6 +111,7 @@ export default () => { } } + //TODO: Sende inn values som liste av string? const handleChangeList = (value: any, path: string) => { const list = value?.map((item: any) => item.value || item) const updatedRequest = { ...values, [path]: list, side: 0, seed: null } diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx index d9f29cf2edf..66ab476624a 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx @@ -7,13 +7,14 @@ import styled from 'styled-components' import Button from '@/components/ui/button/Button' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' import { useForm } from 'react-hook-form' -import { isDate } from 'date-fns' +import { formatISO, isDate } from 'date-fns' import { fixTimezone } from '@/components/ui/form/formUtils' import { DollyApi } from '@/service/Api' import { codeToNorskLabel, formatDate, formatDateTime, + formatDateTimeWithSeconds, oversettBoolean, } from '@/utils/DataFormatter' @@ -165,21 +166,6 @@ export default () => { window.scrollTo({ top: treff, behavior: 'smooth' }) } - const getLabel = (value: any, path: string) => { - const splitPath = path?.split('.') - const fieldName = splitPath[splitPath.length - 1]?.trim() - if (typeof value === 'boolean') { - return `${codeToNorskLabel(fieldName)}: ${oversettBoolean(value)}` - } else if (value.length > 3) { - return `${codeToNorskLabel(fieldName)}: ${codeToNorskLabel(value)}` - } else if (isDate(value)) { - return `${codeToNorskLabel(path)}: ${formatDate(value)}` - } - //TODO: Tall f.o.m. t.o.m.? - //TODO: Paths med flere nivaaer? - return `${codeToNorskLabel(fieldName)}: ${value}` - } - function getUpdatedRequest(request: any) { for (let key of Object.keys(request)) { if (request[key] === '' || request[key] === null || request[key] === undefined) { @@ -199,6 +185,11 @@ export default () => { const handleChange = (value: any, path: string, label: string) => { if (isDate(value)) { value = fixTimezone(value) + // value = formatDate(fixTimezone(value)) + // value = formatDate(value) + // value = formatDateTimeWithSeconds(fixTimezone(value)) + // value = formatISO(fixTimezone(value)) + // value = '2025-09-01T00:00:00' } setValue(path, value) const request = getUpdatedRequest(watch()) @@ -222,8 +213,6 @@ export default () => { } } - //TODO: Test og skriv ferdig denne - //TODO: Boer value kun vaere en liste av strings? Sjekk der handleChangeList brukes const handleChangeList = (value: any, path: string, label: string) => { console.log('value: ', value) //TODO - SLETT MEG // const list = value.map((item: any) => item.value || item) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx index 5a05bb17c2c..312947b699b 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx @@ -9,7 +9,6 @@ import { oversettBoolean } from '@/utils/DataFormatter' export const FolkeregisteretNavn = ({ handleChange }: any) => { return ( <SoekKategori> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="navn.navnLengde.fraOgMed" label="Lengde på navn f.o.m." @@ -24,7 +23,6 @@ export const FolkeregisteretNavn = ({ handleChange }: any) => { } visHvisAvhuket={false} /> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="navn.navnLengde.tilOgMed" label="Lengde på navn t.o.m." diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx index 8986b49531e..877849464c6 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretRelasjoner.tsx @@ -20,7 +20,6 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { } isLoading={loadingRelasjon} /> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <div className="flexbox--flex-wrap"> <FormTextInput name="relasjoner.antallBarn.fraOgMed" @@ -36,7 +35,6 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { } visHvisAvhuket={false} /> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.antallBarn.tilOgMed" label="Antall barn t.o.m." @@ -53,7 +51,6 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { /> </div> <div className="flexbox--flex-wrap"> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.relasjonMedFoedselsaar.fraOgMed" label="Relasjon med fødselsår f.o.m." @@ -68,7 +65,6 @@ export const FolkeregisteretRelasjoner = ({ handleChange }: any) => { } visHvisAvhuket={false} /> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="relasjoner.relasjonMedFoedselsaar.tilOgMed" label="Relasjon med fødselsår t.o.m." diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx index 6a1dd230a8b..e63b488cd52 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/InntektAordningen.tsx @@ -44,7 +44,6 @@ export const InntektAordningen = ({ handleChange, handleChangeList, getValue }: }} date={getValue('inntekt.periode.tilOgMed')} /> - {/*TODO: Slettes ikke ved fjerning av siste soek*/} <FormTextInput name="inntekt.opplysningspliktig" label="Opplysningspliktig org.nr." diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx index c3b14e107db..727006a7c32 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Tjenestepensjonsavtale.tsx @@ -3,14 +3,12 @@ import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { Monthpicker } from '@/components/ui/form/inputs/monthpicker/Monthpicker' -// TODO: Fiks begge feltene! export const Tjenestepensjonsavtale = ({ handleChange, getValue }: any) => { return ( <SoekKategori> <FormTextInput name="tjenestepensjonsavtale.pensjonsinnretningOrgnr" label="Pensjonsinnretning (org.nr.)" - // type="number" // @ts-ignore onBlur={(val: any) => handleChange( @@ -26,7 +24,6 @@ export const Tjenestepensjonsavtale = ({ handleChange, getValue }: any) => { label="Periode" // @ts-ignore handleDateChange={(val: Date) => { - console.log('val: ', val) //TODO - SLETT MEG handleChange( val ? val.toISOString().substring(0, 7) : '', 'tjenestepensjonsavtale.periode', From 5359058055b18451d1bf114f09f240db7d9b65c2 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Mon, 15 Sep 2025 10:18:53 +0200 Subject: [PATCH 15/21] Soekefelter statsborgerskap --- .../main/js/src/pages/tenorSoek/SoekForm.tsx | 10 +++- .../FolkeregisteretStatsborgerskap.tsx | 60 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx index 753db4a7787..e969f69b893 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx @@ -86,7 +86,15 @@ export const SoekForm = ({ formMethods, handleChange, handleChangeList, emptyCat <Table.HeaderCell> <Header title="Folkeregisteret - statsborgerskap" - paths={['harNorskStatsborgerskap', 'harFlereStatsborgerskap']} + paths={[ + 'harNorskStatsborgerskap', + 'harFlereStatsborgerskap', + 'harNordenStatsborgerskap', + 'harEuEoesStatsborgerskap', + 'harTredjelandStatsborgerskap', + 'harUtgaattStatsborgerskap', + 'harStatsborgerskapHistorikk', + ]} getValues={getValues} emptyCategory={emptyCategory} /> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx index 0544a51842c..716cf436314 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretStatsborgerskap.tsx @@ -31,6 +31,66 @@ export const FolkeregisteretStatsborgerskap = ({ handleChange }: any) => { ) } /> + <FormSelect + name="harNordenStatsborgerskap" + options={Options('boolean')} + label="Har statsborgerskap i Norden" + onChange={(val: any) => + handleChange( + val?.value, + 'harNordenStatsborgerskap', + `Har statsborgerskap i Norden: ${oversettBoolean(val?.value)}`, + ) + } + /> + <FormSelect + name="harEuEoesStatsborgerskap" + options={Options('boolean')} + label="Har statsborgerskap i EU/EØS" + onChange={(val: any) => + handleChange( + val?.value, + 'harEuEoesStatsborgerskap', + `Har statsborgerskap i EU/EØS: ${oversettBoolean(val?.value)}`, + ) + } + /> + <FormSelect + name="harTredjelandStatsborgerskap" + options={Options('boolean')} + label="Har st.borgerskap i tredjeland" + onChange={(val: any) => + handleChange( + val?.value, + 'harTredjelandStatsborgerskap', + `Har statsborgerskap i tredjeland: ${oversettBoolean(val?.value)}`, + ) + } + /> + <FormSelect + name="harUtgaattStatsborgerskap" + options={Options('boolean')} + label="Har utgått statsborgerskap" + onChange={(val: any) => + handleChange( + val?.value, + 'harUtgaattStatsborgerskap', + `Har utgått statsborgerskap: ${oversettBoolean(val?.value)}`, + ) + } + /> + <FormSelect + name="harStatsborgerskapHistorikk" + options={Options('boolean')} + label="Har statsborgerskapshistorikk" + onChange={(val: any) => + handleChange( + val?.value, + 'harStatsborgerskapHistorikk', + `Har statsborgerskapshistorikk: ${oversettBoolean(val?.value)}`, + ) + } + /> </SoekKategori> ) } From 08f11ef9f94e58a18c040551204f95906a412fda Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Tue, 16 Sep 2025 18:36:04 +0200 Subject: [PATCH 16/21] Omskrivning av DollySoek og div opprydning --- .../src/components/ui/soekForm/SisteSoek.tsx | 58 +++-------- .../js/src/pages/dollySoek/DollySoekPage.tsx | 98 ++++--------------- .../main/js/src/pages/dollySoek/SoekForm.tsx | 28 ++---- .../dollySoek/soekFormPartials/Adresser.tsx | 47 ++++++--- .../dollySoek/soekFormPartials/Annet.tsx | 10 +- .../soekFormPartials/Fagsystemer.tsx | 9 +- .../soekFormPartials/Familierelasjoner.tsx | 31 ++++-- .../soekFormPartials/Identifikasjon.tsx | 26 ++++- .../soekFormPartials/Personinformasjon.tsx | 75 +++++++++++--- .../js/src/pages/tenorSoek/TenorSoekPage.tsx | 23 +---- .../FolkeregisteretAdresse.tsx | 6 +- .../FolkeregisteretIdentifikasjonStatus.tsx | 2 +- 12 files changed, 211 insertions(+), 202 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index f28bbdd5c85..05ccb6cae80 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -2,7 +2,7 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' import * as _ from 'lodash-es' import { codeToNorskLabel } from '@/utils/DataFormatter' -import { isDate, isSameDay } from 'date-fns' +import { isDate, isSameDay, isValid } from 'date-fns' export enum soekType { dolly = 'DOLLY', @@ -11,20 +11,16 @@ export enum soekType { const listOptions = [ 'registreRequest', + 'miljoer', 'utenlandskPersonIdentifikasjon', 'roller', 'inntekt.inntektstyper', 'inntekt.forskuddstrekk', ] -export const SisteSoek = ({ - type, - formValues, - handleChange, - handleChangeAdresse, - handleChangeList, -}) => { - const { lagredeSoek, loading, error } = useHentLagredeSoek(type) +export const SisteSoek = ({ type, formValues, handleChange, handleChangeList }) => { + const { lagredeSoek } = useHentLagredeSoek(type) + const lagredeSoekData = [] lagredeSoek?.forEach((soek) => { Object.entries(soek?.soekVerdi)?.forEach((verdi) => { @@ -45,62 +41,39 @@ export const SisteSoek = ({ const formValue = _.get(formValues, path) if (listOptions.includes(path)) { return formValue?.includes(value) - } else if (path === 'miljoer') { - return ( - formValue?.length === value.length && - formValue?.every((item) => value?.map((v) => v.value).includes(item)) - ) - } else if (formValue?.length > 8 && isDate(new Date(formValue))) { + } else if ( + formValue?.length > 8 && + isDate(new Date(formValue)) && + isValid(new Date(formValue)) + ) { return isSameDay(new Date(formValue), new Date(value)) } return formValue === value } const handleClick = (option) => { - // console.log('option: ', option) //TODO - SLETT MEG - // console.log('formValues: ', formValues) //TODO - SLETT MEG - // console.log("option.path?.split('.'): ", option.path?.split('.')) //TODO - SLETT MEG //TODO: Handleclick generell for lister? - + console.log('option: ', option) //TODO - SLETT MEG if (listOptions.includes(option.path)) { const listValues = _.get(formValues, option.path) || [] - // console.log('listValues: ', listValues) //TODO - SLETT MEG handleChangeList( !listValues?.includes(option.value) ? [...listValues, { value: option.value, label: codeToNorskLabel(option.value) }] : listValues?.filter((item) => item !== option.value), option.path, - //TODO: Label - ) - } else if (option.path === 'miljoer') { - const miljoerValues = _.get(formValues, option.path) || [] - const miljoerErLike = - miljoerValues?.length === option.value?.length && - miljoerValues?.every((v) => option.value?.map((i) => i.value).includes(v)) - handleChangeList( - miljoerErLike - ? miljoerValues?.filter((i) => option.value?.map((v) => v.value) === i.value) - : option.value, - option.path, - //TODO: Label - ) - } else if (option.path.includes('adresse') || option.path.includes('harDeltBosted')) { - const pathArray = option.path?.split('.') - handleChangeAdresse( - _.get(formValues, option.path) !== option.value ? option.value : null, - pathArray[pathArray.length - 1], + option.label, ) } else { - const splitPath = option.path?.split('.') handleChange( _.get(formValues, option.path) !== option.value ? option.value : null, - // option.path?.split('.')[1].trim(), - splitPath[splitPath.length - 1]?.trim(), + option.path, + option.label, ) } } //TODO: Denne ser ut til aa funke naa. Gjoer det samme paa handleClick? + //TODO: Evt. slaa sammen begge handleChanges? const handleClickTenor = (option) => { const formValue = _.get(formValues, option.path) if (listOptions.includes(option.path)) { @@ -125,7 +98,6 @@ export const SisteSoek = ({ return ( <VStack gap="3" style={{ marginBottom: '15px' }}> - {/*<h4>SISTE SØK:</h4>*/} <Chips> {lagredeSoekData?.slice(0, 10).map((option, idx) => ( <Chips.Toggle diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 0e049b86789..96fead2d937 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -1,12 +1,7 @@ import Title from '../../components/title' import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { bottom } from '@popperjs/core' -import { - adressePath, - dollySoekLocalStorageKey, - personPath, - SoekForm, -} from '@/pages/dollySoek/SoekForm' +import { dollySoekLocalStorageKey, SoekForm } from '@/pages/dollySoek/SoekForm' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' import { useEffect, useRef, useState } from 'react' import { useForm } from 'react-hook-form' @@ -18,6 +13,7 @@ import { codeToNorskLabel } from '@/utils/DataFormatter' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) + console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest @@ -52,27 +48,18 @@ export default () => { const { watch, reset, control, getValues } = formMethods const values = watch() - const getLabel = (value: any, path: string) => { - if (value === true) { - return `${codeToNorskLabel(path)}` - } else if (value.length > 3) { - return `${codeToNorskLabel(path)}: ${codeToNorskLabel(value)}` - } - return `${codeToNorskLabel(path)}: ${value}` - } - - const handleChange = (value: any, path: string) => { - const updatedPersonRequest = { ...values.personRequest, [path]: value } - const updatedRequest = { ...values, personRequest: updatedPersonRequest, side: 0, seed: null } + const handleChange = (value: any, path: string, label: string) => { + const updatedRequest = { ...values, side: 0, seed: null } + _.set(updatedRequest, path, value) reset(updatedRequest) setRequest(updatedRequest) if (value) { setLagreSoekRequest({ ...lagreSoekRequest, [path]: { - path: `${personPath}.${path}`, + path: path, value: value, - label: getLabel(value, path), + label: label, }, }) } else { @@ -83,76 +70,29 @@ export default () => { } } - //TODO: Slaa sammen med handleChange? - const handleChangeAdresse = (value: any, path: string) => { - const updatedAdresseRequest = { ...values.personRequest.adresse, [path]: value } - const updatedRequest = { - ...values, - side: 0, - seed: null, - } - _.set(updatedRequest, 'personRequest.adresse', updatedAdresseRequest) + const handleChangeList = (value: any, path: string, label: string) => { + const list = value?.map((item: any) => item.value ?? item) + const updatedRequest = { ...values, [path]: list, side: 0, seed: null } reset(updatedRequest) setRequest(updatedRequest) - if (value) { + if (value?.length > 0) { + const request = value.map((i) => ({ + path: path, + value: i.value ?? i, + label: label?.includes(':') ? label : `${label}: ${i.label ?? codeToNorskLabel(i)}`, + })) setLagreSoekRequest({ ...lagreSoekRequest, - [path]: { - path: `${adressePath}.${path}`, - value: value, - label: getLabel(value, path), - }, + [path]: request, }) } else { setLagreSoekRequest({ ...lagreSoekRequest, - [path]: undefined, + [path]: [], }) } } - //TODO: Sende inn values som liste av string? - const handleChangeList = (value: any, path: string) => { - const list = value?.map((item: any) => item.value || item) - const updatedRequest = { ...values, [path]: list, side: 0, seed: null } - reset(updatedRequest) - setRequest(updatedRequest) - if (path === 'registreRequest') { - if (value?.length > 0) { - const fagsystemer = value.map((system) => ({ - path: 'registreRequest', - value: system.value, - label: `Fagsystem: ${system.label}`, - })) - setLagreSoekRequest({ - ...lagreSoekRequest, - registreRequest: fagsystemer, - }) - } else { - setLagreSoekRequest({ - ...lagreSoekRequest, - registreRequest: [], - }) - } - } else if (path === 'miljoer') { - if (value?.length > 0) { - setLagreSoekRequest({ - ...lagreSoekRequest, - miljoer: { - path: 'miljoer', - value: value, - label: `Miljøer: ${value.map((item: any) => item.label).join(', ')}`, - }, - }) - } else { - setLagreSoekRequest({ - ...lagreSoekRequest, - miljoer: [], - }) - } - } - } - return ( <div> <div className="flexbox--align-center--justify-start"> @@ -166,14 +106,12 @@ export default () => { type={soekType.dolly} formValues={formMethods.watch()} handleChange={handleChange} - handleChangeAdresse={handleChangeAdresse} handleChangeList={handleChangeList} /> <SoekForm formMethods={formMethods} localStorageValue={localStorageValue} handleChange={handleChange} - handleChangeAdresse={handleChangeAdresse} handleChangeList={handleChangeList} setRequest={setRequest} formRequest={formRequest} diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx index 1b4a3de581a..bee7baa3948 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/SoekForm.tsx @@ -31,16 +31,12 @@ export const SoekForm = ({ formMethods, localStorageValue, handleChange, - handleChangeAdresse, handleChangeList, setRequest, formRequest, lagreSoekRequest, setLagreSoekRequest, }) => { - //TODO: Felter/kategorier som maa fikses - // Miljoer - const [result, setResult] = useState(null) const [soekPaagaar, setSoekPaagaar] = useState(false) const [soekError, setSoekError] = useState(null) @@ -91,18 +87,21 @@ export const SoekForm = ({ const lagreSoekRequestClone = { ...lagreSoekRequest } paths.forEach((path) => { _.set(requestClone, path, _.get(dollySoekInitialValues, path)) + delete lagreSoekRequestClone[path] if (path === 'personRequest.harSkjerming') { _.set( requestClone, 'registreRequest', watch('registreRequest')?.filter((item: string) => item !== 'SKJERMING'), ) + _.set( + lagreSoekRequestClone, + 'registreRequest', + lagreSoekRequestClone.registreRequest?.filter( + (item: string) => item.value !== 'SKJERMING', + ), + ) } - Object.entries(lagreSoekRequestClone)?.forEach((item, idx) => { - if (item[1]?.path === path) { - delete lagreSoekRequestClone[item[0]] - } - }) }) const updatedRequest = { ...requestClone, side: 0, seed: null } reset(updatedRequest) @@ -182,9 +181,7 @@ export const SoekForm = ({ /> </Table.HeaderCell> </Table.ExpandableRow> - <Table.ExpandableRow - content={<Adresser handleChangeAdresse={handleChangeAdresse} />} - > + <Table.ExpandableRow content={<Adresser handleChange={handleChange} />}> <Table.HeaderCell> <Header title="Adresser" @@ -196,12 +193,7 @@ export const SoekForm = ({ </Table.HeaderCell> </Table.ExpandableRow> <Table.ExpandableRow - content={ - <Familierelasjoner - handleChange={handleChange} - handleChangeAdresse={handleChangeAdresse} - /> - } + content={<Familierelasjoner handleChange={handleChange} />} > <Table.HeaderCell> <Header diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Adresser.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Adresser.tsx index a77f3f3e52f..0bcce14ecab 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Adresser.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Adresser.tsx @@ -5,8 +5,9 @@ import { SelectOptionsManager as Options } from '@/service/SelectOptions' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { adressePath } from '../SoekForm' +import { codeToNorskLabel } from '@/utils/DataFormatter' -export const Adresser = ({ handleChangeAdresse }: any) => { +export const Adresser = ({ handleChange }: any) => { return ( <SoekKategori> <div className="flexbox--full-width"> @@ -17,7 +18,11 @@ export const Adresser = ({ handleChangeAdresse }: any) => { size="large" placeholder="Velg kommunenummer ..." onChange={(val: SyntheticEvent) => - handleChangeAdresse(val?.value || null, 'kommunenummer') + handleChange( + val?.value || null, + `${adressePath}.kommunenummer`, + `Kommunenummer: ${val?.value}`, + ) } /> <FormSelect @@ -26,7 +31,11 @@ export const Adresser = ({ handleChangeAdresse }: any) => { size="large" placeholder="Velg postnummer ..." onChange={(val: SyntheticEvent) => - handleChangeAdresse(val?.value || null, 'postnummer') + handleChange( + val?.value || null, + `${adressePath}.postnummer`, + `Postnummer: ${val?.value}`, + ) } /> <FormSelect @@ -35,7 +44,11 @@ export const Adresser = ({ handleChangeAdresse }: any) => { size="large" placeholder="Velg bydelsnummer ..." onChange={(val: SyntheticEvent) => - handleChangeAdresse(val?.value || null, 'bydelsnummer') + handleChange( + val?.value || null, + `${adressePath}.bydelsnummer`, + `Bydelsnummer: ${val?.value}`, + ) } /> <FormSelect @@ -44,7 +57,11 @@ export const Adresser = ({ handleChangeAdresse }: any) => { size="xlarge" placeholder="Velg adressebeskyttelse (kode 6/7) ..." onChange={(val: SyntheticEvent) => - handleChangeAdresse(val?.value || null, 'addressebeskyttelse') + handleChange( + val?.value || null, + `${adressePath}.addressebeskyttelse`, + `Adressebeskyttelse: ${codeToNorskLabel(val?.value)}`, + ) } /> </div> @@ -53,21 +70,25 @@ export const Adresser = ({ handleChangeAdresse }: any) => { name={`${adressePath}.harBostedsadresse`} label="Har bostedsadresse" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harBostedsadresse') + handleChange(val.target.checked, `${adressePath}.harBostedsadresse`, 'Har bostedsadresse') } /> <FormCheckbox name={`${adressePath}.harOppholdsadresse`} label="Har oppholdsadresse" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harOppholdsadresse') + handleChange( + val.target.checked, + `${adressePath}.harOppholdsadresse`, + 'Har oppholdsadresse', + ) } /> <FormCheckbox name={`${adressePath}.harKontaktadresse`} label="Har kontaktadresse" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harKontaktadresse') + handleChange(val.target.checked, `${adressePath}.harKontaktadresse`, 'Har kontaktadresse') } /> {/*//Soek paa matrikkeladresse fungerer for tiden ikke*/} @@ -82,21 +103,25 @@ export const Adresser = ({ handleChangeAdresse }: any) => { name={`${adressePath}.harUtenlandsadresse`} label="Har utenlandsadresse" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harUtenlandsadresse') + handleChange( + val.target.checked, + `${adressePath}.harUtenlandsadresse`, + 'Har utenlandsadresse', + ) } /> <FormCheckbox name={`${adressePath}.harUkjentAdresse`} label="Har ukjent adresse" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harUkjentAdresse') + handleChange(val.target.checked, `${adressePath}.harUkjentAdresse`, 'Har ukjent adresse') } /> <FormCheckbox name={`${adressePath}.harBydelsnummer`} label="Har bydelsnummer" onChange={(val: SyntheticEvent) => - handleChangeAdresse(val.target.checked, 'harBydelsnummer') + handleChange(val.target.checked, `${adressePath}.harBydelsnummer`, 'Har bydelsnummer') } /> </SoekKategori> diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Annet.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Annet.tsx index 3634f9dba3b..9692882a655 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Annet.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Annet.tsx @@ -10,13 +10,19 @@ export const Annet = ({ handleChange }: any) => { name={`${personPath}.harKontaktinformasjonForDoedsbo`} label="Har kontaktinformasjon for dødsbo" onChange={(val: SyntheticEvent) => - handleChange(val.target.checked, 'harKontaktinformasjonForDoedsbo') + handleChange( + val.target.checked, + `${personPath}.harKontaktinformasjonForDoedsbo`, + 'Har kontaktinformasjon for dødsbo', + ) } /> <FormCheckbox name={`${personPath}.harOpphold`} label="Har opphold" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harOpphold')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harOpphold`, 'Har opphold') + } /> </SoekKategori> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx index 0fe596939f7..50563317720 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx @@ -18,7 +18,12 @@ export const Fagsystemer = ({ handleChangeList }: any) => { isMulti={true} size="grow" onChange={(val: SyntheticEvent) => { - handleChangeList(val, 'registreRequest') + handleChangeList( + // val?.map((item: any) => item.value) || null, + val, + 'registreRequest', + 'Fagsystem', + ) }} /> </div> @@ -31,7 +36,7 @@ export const Fagsystemer = ({ handleChangeList }: any) => { isMulti={true} size="large" onChange={(val: SyntheticEvent) => { - handleChangeList(val, 'miljoer') + handleChangeList(val, 'miljoer', 'Miljø') }} /> </div> diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Familierelasjoner.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Familierelasjoner.tsx index b8123cce64e..13cc4decd7c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Familierelasjoner.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Familierelasjoner.tsx @@ -4,8 +4,9 @@ import React, { SyntheticEvent } from 'react' import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { adressePath, personPath } from '@/pages/dollySoek/SoekForm' +import { codeToNorskLabel } from '@/utils/DataFormatter' -export const Familierelasjoner = ({ handleChange, handleChangeAdresse }: any) => { +export const Familierelasjoner = ({ handleChange }: any) => { return ( <SoekKategori> <FormSelect @@ -13,32 +14,48 @@ export const Familierelasjoner = ({ handleChange, handleChangeAdresse }: any) => options={Options('sivilstandType')?.filter((item) => item.value !== 'SAMBOER')} size="large" placeholder="Velg sivilstand ..." - onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'sivilstand')} + onChange={(val: SyntheticEvent) => + handleChange( + val?.value || null, + `${personPath}.sivilstand`, + `Sivilstand: ${codeToNorskLabel(val?.value)}`, + ) + } /> <FormCheckbox name={`${personPath}.harBarn`} label="Har barn" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harBarn')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harBarn`, 'Har barn') + } /> <FormCheckbox name={`${personPath}.harForeldre`} label="Har foreldre" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harForeldre')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harForeldre`, 'Har foreldre') + } /> <FormCheckbox name={`${personPath}.harDoedfoedtBarn`} label="Har dødfødt barn" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harDoedfoedtBarn')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harDoedfoedtBarn`, 'Har dødfødt barn') + } /> <FormCheckbox name={`${personPath}.harForeldreAnsvar`} label="Har foreldreansvar" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harForeldreAnsvar')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harForeldreAnsvar`, 'Har foreldreansvar') + } /> <FormCheckbox name={`${adressePath}.harDeltBosted`} label="Har delt bosted" - onChange={(val: SyntheticEvent) => handleChangeAdresse(val.target.checked, 'harDeltBosted')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${adressePath}.harDeltBosted`, 'Har delt bosted') + } /> </SoekKategori> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Identifikasjon.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Identifikasjon.tsx index 665f8c02dad..8f34585254c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Identifikasjon.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Identifikasjon.tsx @@ -18,7 +18,13 @@ export const Identifikasjon = ({ handleChange }: any) => { placeholder="Skriv inn ident ..." size="large" value={formMethods.watch(`${personPath}.ident`)} - onBlur={(val: SyntheticEvent) => handleChange(val?.target?.value || null, 'ident')} + onBlur={(val: SyntheticEvent) => + handleChange( + val?.target?.value || null, + `${personPath}.ident`, + `Ident: ${val?.target?.value}`, + ) + } /> <div style={{ marginLeft: '-20px', marginRight: '20px', paddingTop: '5px' }}> <Hjelpetekst> @@ -30,24 +36,34 @@ export const Identifikasjon = ({ handleChange }: any) => { options={Options('identtype')} size="small" placeholder="Velg identtype ..." - onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'identtype')} + onChange={(val: SyntheticEvent) => + handleChange(val?.value || null, `${personPath}.identtype`, `Identtype: ${val?.value}`) + } /> <FormCheckbox name={`${personPath}.harFalskIdentitet`} label="Har falsk identitet" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harFalskIdentitet')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harFalskIdentitet`, 'Har falsk identitet') + } /> <FormCheckbox name={`${personPath}.harUtenlandskIdentifikasjonsnummer`} label="Har utenlandsk identitet" onChange={(val: SyntheticEvent) => - handleChange(val.target.checked, 'harUtenlandskIdentifikasjonsnummer') + handleChange( + val.target.checked, + `${personPath}.harUtenlandskIdentifikasjonsnummer`, + 'Har utenlandsk identifikasjonsnummer', + ) } /> <FormCheckbox name={`${personPath}.harNyIdentitet`} label="Har ny identitet" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harNyIdentitet')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harNyIdentitet`, 'Har ny identitet') + } /> </SoekKategori> ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx index 7a7be89a6d6..7c8339153dd 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Personinformasjon.tsx @@ -9,6 +9,7 @@ import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst' import { SoekKategori } from '@/components/ui/soekForm/SoekForm' import { personPath } from '../SoekForm' import { useFormContext } from 'react-hook-form' +import { codeToNorskLabel } from '@/utils/DataFormatter' export const Personinformasjon = ({ handleChange, @@ -28,74 +29,124 @@ export const Personinformasjon = ({ options={Options('kjoenn')} size="small" placeholder="Velg kjønn ..." - onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'kjoenn')} + onChange={(val: SyntheticEvent) => + handleChange( + val?.value || null, + `${personPath}.kjoenn`, + `Kjønn: ${codeToNorskLabel(val?.value)}`, + ) + } /> <FormSelect name={`${personPath}.statsborgerskap`} kodeverk={AdresseKodeverk.StatsborgerskapLand} size="large" placeholder="Velg statsborgerskap ..." - onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'statsborgerskap')} + onChange={(val: SyntheticEvent) => + handleChange( + val?.value || null, + `${personPath}.statsborgerskap`, + `Statsborgerskap: ${val?.value}`, + ) + } /> <FormSelect name={`${personPath}.personStatus`} options={Options('personstatus')} size="medium" placeholder="Velg personstatus ..." - onChange={(val: SyntheticEvent) => handleChange(val?.value || null, 'personStatus')} + onChange={(val: SyntheticEvent) => + handleChange( + val?.value || null, + `${personPath}.personStatus`, + `Personstatus: ${codeToNorskLabel(val?.value)}`, + ) + } /> <FormTextInput name={`${personPath}.alderFom`} placeholder="Skriv inn alder f.o.m ..." type="number" value={watch(`${personPath}.alderFom`)} - onBlur={(val: SyntheticEvent) => handleChange(val?.target?.value || null, 'alderFom')} + onBlur={(val: SyntheticEvent) => + handleChange( + val?.target?.value || null, + `${personPath}.alderFom`, + `Alder f.o.m.: ${val?.target?.value}`, + ) + } /> <FormTextInput name={`${personPath}.alderTom`} placeholder="Skriv inn alder t.o.m ..." type="number" value={watch(`${personPath}.alderTom`)} - onBlur={(val: SyntheticEvent) => handleChange(val?.target?.value || null, 'alderTom')} + onBlur={(val: SyntheticEvent) => + handleChange( + val?.target?.value || null, + `${personPath}.alderTom`, + `Alder t.o.m.: ${val?.target?.value}`, + ) + } /> <FormCheckbox name={`${personPath}.erLevende`} label="Er levende" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'erLevende')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.erLevende`, 'Er levende') + } disabled={watch(`${personPath}.erDoed`)} /> <FormCheckbox name={`${personPath}.erDoed`} label="Er død" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'erDoed')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.erDoed`, 'Er død') + } disabled={watch(`${personPath}.erLevende`)} /> <FormCheckbox data-testid={TestComponentSelectors.TOGGLE_HAR_VERGE} name={`${personPath}.harVerge`} label="Har verge" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harVerge')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harVerge`, 'Har verge') + } /> <FormCheckbox name={`${personPath}.harInnflytting`} label="Har innflytting" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harInnflytting')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harInnflytting`, 'Har innflytting') + } /> <FormCheckbox name={`${personPath}.harUtflytting`} label="Har utflytting" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harUtflytting')} + onChange={(val: SyntheticEvent) => + handleChange(val.target.checked, `${personPath}.harUtflytting`, 'Har utflytting') + } /> <FormCheckbox name={`${personPath}.harSikkerhetstiltak`} label="Har sikkerhetstiltak" - onChange={(val: SyntheticEvent) => handleChange(val.target.checked, 'harSikkerhetstiltak')} + onChange={(val: SyntheticEvent) => + handleChange( + val.target.checked, + `${personPath}.harSikkerhetstiltak`, + 'Har sikkerhetstiltak', + ) + } /> <FormCheckbox name={`${personPath}.harTilrettelagtKommunikasjon`} label="Har tilrettelagt kommunikasjon" onChange={(val: SyntheticEvent) => - handleChange(val.target.checked, 'harTilrettelagtKommunikasjon') + handleChange( + val.target.checked, + `${personPath}.harTilrettelagtKommunikasjon`, + 'Har tilrettelagt kommunikasjon', + ) } /> <FormCheckbox diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx index 66ab476624a..7e521dd724c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx @@ -7,16 +7,10 @@ import styled from 'styled-components' import Button from '@/components/ui/button/Button' import { SisteSoek, soekType } from '@/components/ui/soekForm/SisteSoek' import { useForm } from 'react-hook-form' -import { formatISO, isDate } from 'date-fns' +import { isDate } from 'date-fns' import { fixTimezone } from '@/components/ui/form/formUtils' import { DollyApi } from '@/service/Api' -import { - codeToNorskLabel, - formatDate, - formatDateTime, - formatDateTimeWithSeconds, - oversettBoolean, -} from '@/utils/DataFormatter' +import { codeToNorskLabel } from '@/utils/DataFormatter' const initialState = { personListe: [], @@ -185,11 +179,6 @@ export default () => { const handleChange = (value: any, path: string, label: string) => { if (isDate(value)) { value = fixTimezone(value) - // value = formatDate(fixTimezone(value)) - // value = formatDate(value) - // value = formatDateTimeWithSeconds(fixTimezone(value)) - // value = formatISO(fixTimezone(value)) - // value = '2025-09-01T00:00:00' } setValue(path, value) const request = getUpdatedRequest(watch()) @@ -214,8 +203,6 @@ export default () => { } const handleChangeList = (value: any, path: string, label: string) => { - console.log('value: ', value) //TODO - SLETT MEG - // const list = value.map((item: any) => item.value || item) setValue(path, value) const request = getUpdatedRequest(watch()) setRequest({ ...request }) @@ -224,9 +211,7 @@ export default () => { if (value?.length > 0) { const request = value.map((i) => ({ path: path, - // value: i.value, value: i, - // label: label, label: label.includes(':') ? label : `${label}: ${codeToNorskLabel(i)}`, })) setLagreSoekRequest({ @@ -241,6 +226,7 @@ export default () => { } } + // TODO: Test og evt fiks denne const emptyCategory = (paths: Array<string>) => { paths.forEach((path) => { setValue(path, undefined) @@ -251,9 +237,6 @@ export default () => { mutate() } - // console.log('watch(): ', watch()) //TODO - SLETT MEG - // console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG - return ( <div> <div className="flexbox--align-center--justify-start"> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx index 6bb1a491e35..3ddcfdce3ba 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretAdresse.tsx @@ -65,7 +65,11 @@ export const FolkeregisteretAdresse = ({ handleChange }: any) => { name="avansert.harBostedsadresseHistorikk" label="Har bostedsadressehistorikk" onChange={(val: any) => - handleChange(val?.target?.checked || undefined, 'avansert.harBostedsadresseHistorikk') + handleChange( + val?.target?.checked || undefined, + 'avansert.harBostedsadresseHistorikk', + 'Har bostedsadressehistorikk', + ) } /> <FormCheckbox diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx index e02fd423eae..57904387849 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretIdentifikasjonStatus.tsx @@ -174,7 +174,7 @@ export const FolkeregisteretIdentifikasjonStatus = ({ handleChange, handleChange size="grow" label="Utenlandsk identifikasjonsnummertype" onChange={(val: SyntheticEvent) => { - return handleChangeList( + handleChangeList( val?.map((item: any) => item.value) || null, 'utenlandskPersonIdentifikasjon', 'Utenlandsk ident.nr.type', From 63bd5151609757a96d345399c499aaf6a227a6a1 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Thu, 25 Sep 2025 10:56:05 +0200 Subject: [PATCH 17/21] Felles handleclick paa sistesoek --- .../src/components/ui/soekForm/SisteSoek.tsx | 28 +------------------ .../soekFormPartials/FolkeregisteretNavn.tsx | 1 - 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 05ccb6cae80..2d7940d8178 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -1,7 +1,6 @@ import { useHentLagredeSoek } from '@/utils/hooks/useSoek' import { Chips, VStack } from '@navikt/ds-react' import * as _ from 'lodash-es' -import { codeToNorskLabel } from '@/utils/DataFormatter' import { isDate, isSameDay, isValid } from 'date-fns' export enum soekType { @@ -52,29 +51,6 @@ export const SisteSoek = ({ type, formValues, handleChange, handleChangeList }) } const handleClick = (option) => { - //TODO: Handleclick generell for lister? - console.log('option: ', option) //TODO - SLETT MEG - if (listOptions.includes(option.path)) { - const listValues = _.get(formValues, option.path) || [] - handleChangeList( - !listValues?.includes(option.value) - ? [...listValues, { value: option.value, label: codeToNorskLabel(option.value) }] - : listValues?.filter((item) => item !== option.value), - option.path, - option.label, - ) - } else { - handleChange( - _.get(formValues, option.path) !== option.value ? option.value : null, - option.path, - option.label, - ) - } - } - - //TODO: Denne ser ut til aa funke naa. Gjoer det samme paa handleClick? - //TODO: Evt. slaa sammen begge handleChanges? - const handleClickTenor = (option) => { const formValue = _.get(formValues, option.path) if (listOptions.includes(option.path)) { const listValues = formValue || [] @@ -103,9 +79,7 @@ export const SisteSoek = ({ type, formValues, handleChange, handleChangeList }) <Chips.Toggle key={option.label} selected={isSelected(option)} - onClick={() => - type === soekType.tenor ? handleClickTenor(option) : handleClick(option) - } + onClick={() => handleClick(option)} > {option.label} </Chips.Toggle> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx index 312947b699b..a7130c78aa9 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/FolkeregisteretNavn.tsx @@ -49,7 +49,6 @@ export const FolkeregisteretNavn = ({ handleChange }: any) => { ) } /> - {/*TODO: Denne feiler naar man gjoer soek med den:*/} <FormSelect name="navn.harNavnSpesialtegn" options={Options('boolean')} From af50e3397b089ac252bc897ab1020d326200f568 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Thu, 25 Sep 2025 11:21:21 +0200 Subject: [PATCH 18/21] Fix empty category tenorsoek --- .../src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx index 7e521dd724c..9092ef2584c 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx @@ -226,14 +226,16 @@ export default () => { } } - // TODO: Test og evt fiks denne const emptyCategory = (paths: Array<string>) => { - paths.forEach((path) => { + const lagreSoekRequestClone = { ...lagreSoekRequest } + paths.forEach((path: string) => { setValue(path, undefined) + delete lagreSoekRequestClone[path] }) const request = getUpdatedRequest(watch()) setRequest({ ...request }) setMarkertePersoner([]) + setLagreSoekRequest(lagreSoekRequestClone) mutate() } From 14b953601918a5bca1f9cfafd819888ed4ff96d1 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Thu, 25 Sep 2025 14:35:19 +0200 Subject: [PATCH 19/21] Opprydning siste soek --- .../components/ui/form/inputs/datepicker/DateInput.tsx | 6 ------ .../ui/form/inputs/monthpicker/Monthpicker.tsx | 7 ------- .../components/ui/form/inputs/textInput/TextInput.tsx | 7 ------- .../main/js/src/components/ui/soekForm/SisteSoek.tsx | 6 +++++- .../src/main/js/src/pages/dollySoek/DollySoekPage.tsx | 3 +-- .../pages/dollySoek/soekFormPartials/Fagsystemer.tsx | 7 +------ .../src/main/js/src/pages/tenorSoek/SoekForm.tsx | 10 +--------- .../src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx | 1 - .../tenorSoek/soekFormPartials/Arbeidsforhold.tsx | 2 +- 9 files changed, 9 insertions(+), 40 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx index 41e6c8df9cf..0d313e6b149 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/datepicker/DateInput.tsx @@ -67,11 +67,6 @@ export const DateInput = ({ const fieldValue = name ? watch(name) : '' const [formattedValue, setFormattedValue] = useState(fieldValue ? formatDate(fieldValue) : '') - // if (name === 'foedselsdato.fraOgMed') { - // console.log('fieldValue: ', fieldValue) //TODO - SLETT MEG - // console.log('formattedValue: ', formattedValue) //TODO - SLETT MEG - // } - useEffect(() => { if (!fieldValue) { setFormattedValue('') @@ -99,7 +94,6 @@ export const DateInput = ({ setValue(name, e.target.value, { shouldTouch: true }) props.onChange?.(e) setFormattedValue(e.target.value) - // setFormattedValue(formatDate(e.target.value)) } const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => { diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx index 6f5e38cb08b..c47fd0d55d9 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/monthpicker/Monthpicker.tsx @@ -60,13 +60,6 @@ export const Monthpicker = ({ } }, [eksisterendeVerdi]) - // if (name === 'inntekt.periode.fraOgMed') { - // console.log('eksisterendeVerdi: ', eksisterendeVerdi) //TODO - SLETT MEG - // console.log('inputProps: ', inputProps) //TODO - SLETT MEG - // console.log('formattedDate: ', formattedDate) //TODO - SLETT MEG - // console.log('monthpickerProps: ', monthpickerProps) //TODO - SLETT MEG - // } - return ( <InputWrapper size={'small'}> <Label name={name} label={label}> diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx index 3a8848d6979..e968fd969ba 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/textInput/TextInput.tsx @@ -156,13 +156,6 @@ export const TextInput = ({ 'skjemaelement__input--harFeil': shouldShowError, }) - // if (name === 'relasjoner.relasjonMedFoedselsaar.fraOgMed' || name === 'identifikator') { - // console.log(`fieldValue ${name}: `, fieldValue) //TODO - SLETT MEG - // console.log(`value ${name}: `, value) //TODO - SLETT MEG - // console.log(`defaultValue ${name}: `, defaultValue) //TODO - SLETT MEG - // console.log(`watch ${name}: `, watch(name)) //TODO - SLETT MEG - // } - return ( <> <input diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx index 2d7940d8178..180608f6d95 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/soekForm/SisteSoek.tsx @@ -61,7 +61,11 @@ export const SisteSoek = ({ type, formValues, handleChange, handleChangeList }) option.path, option.label, ) - } else if (formValue?.length > 8 && isDate(new Date(formValue))) { + } else if ( + formValue?.length > 8 && + isDate(new Date(formValue)) && + isValid(new Date(formValue)) + ) { handleChange( !isSameDay(new Date(formValue), new Date(option.value)) ? option.value : null, option.path, diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx index 96fead2d937..b05bc9f13f9 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/DollySoekPage.tsx @@ -13,7 +13,6 @@ import { codeToNorskLabel } from '@/utils/DataFormatter' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) - console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest @@ -45,7 +44,7 @@ export default () => { setFormRequest(request) } - const { watch, reset, control, getValues } = formMethods + const { watch, reset } = formMethods const values = watch() const handleChange = (value: any, path: string, label: string) => { diff --git a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx index 50563317720..d184610277a 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/dollySoek/soekFormPartials/Fagsystemer.tsx @@ -18,12 +18,7 @@ export const Fagsystemer = ({ handleChangeList }: any) => { isMulti={true} size="grow" onChange={(val: SyntheticEvent) => { - handleChangeList( - // val?.map((item: any) => item.value) || null, - val, - 'registreRequest', - 'Fagsystem', - ) + handleChangeList(val, 'registreRequest', 'Fagsystem') }} /> </div> diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx index e357cc13f59..ce3aff6b2ea 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/SoekForm.tsx @@ -244,15 +244,7 @@ export const SoekForm = ({ formMethods, handleChange, handleChangeList, emptyCat /> </Table.HeaderCell> </Table.ExpandableRow> - <Table.ExpandableRow - content={ - <Arbeidsforhold - handleChange={handleChange} - handleChangeList={handleChangeList} - getValue={watch} - /> - } - > + <Table.ExpandableRow content={<Arbeidsforhold handleChange={handleChange} />}> <Table.HeaderCell> <Header title="Arbeidsforhold" diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx index 9092ef2584c..ddb977fffca 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/TenorSoekPage.tsx @@ -41,7 +41,6 @@ export const tenorSoekStateLocalStorageKey = 'tenorSoekState' export default () => { const [lagreSoekRequest, setLagreSoekRequest] = useState({}) const lagreSoekRequestRef = useRef(lagreSoekRequest) - console.log('lagreSoekRequest: ', lagreSoekRequest) //TODO - SLETT MEG useEffect(() => { lagreSoekRequestRef.current = lagreSoekRequest diff --git a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx index 351b05214b3..32979269dc6 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/tenorSoek/soekFormPartials/Arbeidsforhold.tsx @@ -7,7 +7,7 @@ import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicke import { FormCheckbox } from '@/components/ui/form/inputs/checbox/Checkbox' import { formatDate } from '@/utils/DataFormatter' -export const Arbeidsforhold = ({ handleChange, handleChangeList, getValue }: any) => { +export const Arbeidsforhold = ({ handleChange }: any) => { const { domain: arbeidsforholdstypeOptions, loading: loadingArbeidsforholdstype } = useTenorDomain('Arbeidsforholdstype') From c6e34b20b59b9fc317966d7081b2150f7fb5f4d3 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Thu, 25 Sep 2025 15:35:00 +0200 Subject: [PATCH 20/21] Fix brukernavnvelger --- .../main/js/src/pages/brukerPage/BrukernavnVelger.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx b/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx index 81ec46f863e..830922a1f1b 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx @@ -115,8 +115,15 @@ export default ({ eksisterendeBrukernavn, organisasjon, addToSession }: Brukerna size="large" defaultValue={eksisterendeBrukernavn} isDisabled={loading || !!eksisterendeBrukernavn} + useControlled + /> + <DollyTextInput + name="epost" + label="Epost" + size="large" + isDisabled={loading} + useControlled /> - <DollyTextInput name="epost" label="Epost" size="large" isDisabled={loading} /> <ButtonDiv> <NavButton type="submit" From 333c8e774f7f22887c26aade0276ee5cbf41f79f Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran <betsy.carina.traran@nav.no> Date: Fri, 26 Sep 2025 09:20:46 +0200 Subject: [PATCH 21/21] Deploy test #deploy-test-frontend --- .../src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx b/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx index 830922a1f1b..df0b0fde3ae 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/brukerPage/BrukernavnVelger.tsx @@ -53,6 +53,7 @@ export default ({ eksisterendeBrukernavn, organisasjon, addToSession }: Brukerna resolver: yupResolver(validation), mode: 'onChange', }) + const [loading, setLoading] = useState(false) const [error, setError] = useState(null as string | null)