From 59e57a10fd88ccbe29e71e5f0761846bcf3290b2 Mon Sep 17 00:00:00 2001 From: Tore Sinding Bekkedal Date: Tue, 12 Sep 2023 13:34:00 +0200 Subject: [PATCH] Fjerner ubrukte vedleggstyper Fjerner disse ubrukte typene: "dokumentasjon|annet", "dokumentasjon|kjoretoy", "dokumentasjon|annetverdi", "dokumentasjon|fritidseiendom", "dokumentasjon|campingvogn", "kjopekontrakt|kjopekontrakt" Prodsetting av disse endringene krever ikke streng synkronisering med backend. --- soknad-api.json | 6 -- .../redux/ettersendelse/ettersendelseSaga.ts | 2 +- .../redux/ettersendelse/ettersendelseTypes.ts | 3 +- src/lib/opplysninger.ts | 60 +------------------ src/skjema/08-vedlegg/TabellView.tsx | 4 +- src/skjema/08-vedlegg/useOpplysning.tsx | 4 +- src/skjema/08-vedlegg/useOpplysninger.tsx | 30 +++------- .../ettersendelse/ettersendelseVedlegg.tsx | 6 +- 8 files changed, 21 insertions(+), 94 deletions(-) diff --git a/soknad-api.json b/soknad-api.json index 2c68e270b..f30ed02b4 100644 --- a/soknad-api.json +++ b/soknad-api.json @@ -1488,14 +1488,9 @@ "annet|annet", "barnebidrag|betaler", "barnebidrag|mottar", - "dokumentasjon|annet", "dokumentasjon|annetboutgift", "dokumentasjon|annetinntekter", - "dokumentasjon|annetverdi", - "dokumentasjon|campingvogn", - "dokumentasjon|fritidseiendom", "dokumentasjon|forsikringsutbetaling", - "dokumentasjon|kjoretoy", "dokumentasjon|utbytte", "faktura|annetbarnutgift", "faktura|barnehage", @@ -1509,7 +1504,6 @@ "husbanken|vedtak", "husleiekontrakt|husleiekontrakt", "husleiekontrakt|kommunal", - "kjopekontrakt|kjopekontrakt", "kontooversikt|aksjer", "kontooversikt|annet", "kontooversikt|brukskonto", diff --git a/src/digisos/redux/ettersendelse/ettersendelseSaga.ts b/src/digisos/redux/ettersendelse/ettersendelseSaga.ts index d18caf4dc..a28cdcb14 100644 --- a/src/digisos/redux/ettersendelse/ettersendelseSaga.ts +++ b/src/digisos/redux/ettersendelse/ettersendelseSaga.ts @@ -131,7 +131,7 @@ function* lastOppEttersendelsesVedleggSaga(action: LastOppEttersendtVedleggActio yield call(logInfo, "Last opp vedlegg for ettersendelse feilet: " + reason.toString()); } // FIXME før prodsetting: Gjenskape denne funksjonaliteten under - // yield put(setVedleggLoading(opplysningType as VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring, false)); + // yield put(setVedleggLoading(opplysningType as VedleggFrontendType, false)); } } diff --git a/src/digisos/redux/ettersendelse/ettersendelseTypes.ts b/src/digisos/redux/ettersendelse/ettersendelseTypes.ts index 189e4bb7e..f4f0e6abd 100644 --- a/src/digisos/redux/ettersendelse/ettersendelseTypes.ts +++ b/src/digisos/redux/ettersendelse/ettersendelseTypes.ts @@ -1,6 +1,5 @@ import {REST_STATUS} from "../soknadsdata/soknadsdataTypes"; import {FilFrontend, VedleggFrontendType, VedleggFrontendVedleggStatus} from "../../../generated/model"; -import {VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring} from "../../../lib/opplysninger"; export enum EttersendelseActionTypeKeys { NY = "ettersendelse/NY", @@ -157,7 +156,7 @@ export interface EttersendelseState { } export interface EttersendelseVedleggBackend { - type: VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring; + type: VedleggFrontendType; vedleggStatus: VedleggFrontendVedleggStatus; filer: FilFrontend[]; } diff --git a/src/lib/opplysninger.ts b/src/lib/opplysninger.ts index 684a84561..a10ee208d 100644 --- a/src/lib/opplysninger.ts +++ b/src/lib/opplysninger.ts @@ -1,6 +1,6 @@ -import {VedleggFrontend, VedleggFrontends, VedleggFrontendType} from "../generated/model"; +import {VedleggFrontend, VedleggFrontendType} from "../generated/model"; -export type Opplysning = VedleggFrontendMinusEtParTingSomTrengerAvklaring & { +export type Opplysning = VedleggFrontend & { slettet?: boolean; pendingLasterOppFil?: boolean; }; @@ -24,61 +24,7 @@ export type OpplysningSpec = { sortKey: number; }; -// TODO: Avklare disse: -// Disse eksisterer på backend, men er ikke presentert på frontend. -// Skal de slettes fra frontend, eller implementeres her? -// Jeg vet ikke, så jeg patcher datatypene i første omgang. -// Når denne diskrepansen er avklart, kan man fjerne denne patchen, -// og all bruk av disse typene kan erstattes med sine respektive -// originaltyper, dvs. uten "MinusEtParTingSomTrengerAvklaring". -export const UgyldigeFrontendTyper = [ - "dokumentasjon|annet", - "dokumentasjon|kjoretoy", - "dokumentasjon|annetverdi", - "dokumentasjon|fritidseiendom", - "dokumentasjon|campingvogn", - "kjopekontrakt|kjopekontrakt", -] as const; - -/** - * VedleggFrontendType minus UgyldigeFrontendTyper - * - * @see UgyldigeFrontendTyper for kontekst - */ -export type VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring = Exclude< - VedleggFrontendType, - (typeof UgyldigeFrontendTyper)[number] ->; - -/** - * VedleggFrontend minus UgyldigeFrontendTyper - * - * @see UgyldigeFrontendTyper for kontekst - */ -export type VedleggFrontendMinusEtParTingSomTrengerAvklaring = VedleggFrontend & { - type: VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring; -}; - -/** - * VedleggFrontend minus UgyldigeFrontendTyper - * - * @see UgyldigeFrontendTyper for kontekst - */ -export type VedleggFrontendsMinusEtParTingSomTrengerAvklaring = { - okonomiskeOpplysninger: VedleggFrontendMinusEtParTingSomTrengerAvklaring[]; - slettedeVedlegg: VedleggFrontendMinusEtParTingSomTrengerAvklaring[]; - isOkonomiskeOpplysningerBekreftet: boolean; -}; - -export const invalidVedleggFrontend = ( - data: VedleggFrontend | VedleggFrontendMinusEtParTingSomTrengerAvklaring -): data is VedleggFrontend => UgyldigeFrontendTyper.includes(data.type as any); // Siden det er midlertidig hack -export const validVedleggFrontends = ( - data: VedleggFrontends | VedleggFrontendsMinusEtParTingSomTrengerAvklaring -): data is VedleggFrontendsMinusEtParTingSomTrengerAvklaring => - !(data.slettedeVedlegg?.some(invalidVedleggFrontend) || data.okonomiskeOpplysninger?.some(invalidVedleggFrontend)); - -export const opplysningSpec: Record = { +export const opplysningSpec: Record = { "lonnslipp|arbeid": { numRows: "flere", inputs: ["brutto", "netto"], diff --git a/src/skjema/08-vedlegg/TabellView.tsx b/src/skjema/08-vedlegg/TabellView.tsx index fac3a10c7..e3eadaadc 100644 --- a/src/skjema/08-vedlegg/TabellView.tsx +++ b/src/skjema/08-vedlegg/TabellView.tsx @@ -1,8 +1,8 @@ import {LinkButton} from "../../nav-soknad/components/linkButton/LinkButton"; import {useOpplysning} from "./useOpplysning"; -import {VedleggFrontendMinusEtParTingSomTrengerAvklaring} from "../../lib/opplysninger"; import {OpplysningInputRad} from "./OpplysningInputRad"; import {useTranslation} from "react-i18next"; +import {VedleggFrontend} from "../../generated/model"; const OpplysningRadNy = ({onClick, label}: {onClick: () => void; label: string}) => (
  • @@ -13,7 +13,7 @@ const OpplysningRadNy = ({onClick, label}: {onClick: () => void; label: string})
  • ); -const TabellView = ({opplysning}: {opplysning: VedleggFrontendMinusEtParTingSomTrengerAvklaring}) => { +const TabellView = ({opplysning}: {opplysning: VedleggFrontend}) => { const {t} = useTranslation(); const { textKey, diff --git a/src/skjema/08-vedlegg/useOpplysning.tsx b/src/skjema/08-vedlegg/useOpplysning.tsx index 90a7c4f79..34975936f 100644 --- a/src/skjema/08-vedlegg/useOpplysning.tsx +++ b/src/skjema/08-vedlegg/useOpplysning.tsx @@ -1,7 +1,7 @@ import {useFieldArray, useForm} from "react-hook-form"; import {z} from "zod"; import {ValideringsFeilKode} from "../../digisos/redux/validering/valideringActionTypes"; -import {opplysningSpec, VedleggFrontendMinusEtParTingSomTrengerAvklaring} from "../../lib/opplysninger"; +import {opplysningSpec} from "../../lib/opplysninger"; import {zodResolver} from "@hookform/resolvers/zod"; import {useEffect, useState} from "react"; import {useUpdateOkonomiskOpplysning} from "../../generated/okonomiske-opplysninger-ressurs/okonomiske-opplysninger-ressurs"; @@ -38,7 +38,7 @@ export type VedleggRadFrontendForm = z.infer; // This is the delay we wait between keystrokes before we push changes to backend const DEBOUNCE_DELAY_MS = 500; -export const useOpplysning = (opplysning: VedleggFrontendMinusEtParTingSomTrengerAvklaring) => { +export const useOpplysning = (opplysning: VedleggFrontend) => { const {textKey, inputs, numRows} = opplysningSpec[opplysning.type]; const behandlingsId = useBehandlingsId(); diff --git a/src/skjema/08-vedlegg/useOpplysninger.tsx b/src/skjema/08-vedlegg/useOpplysninger.tsx index cda2f13d5..d94b905e9 100644 --- a/src/skjema/08-vedlegg/useOpplysninger.tsx +++ b/src/skjema/08-vedlegg/useOpplysninger.tsx @@ -1,23 +1,14 @@ import {useBehandlingsId} from "../../lib/hooks/useBehandlingsId"; import {useHentOkonomiskeOpplysninger} from "../../generated/okonomiske-opplysninger-ressurs/okonomiske-opplysninger-ressurs"; import {VedleggFrontends} from "../../generated/model"; -import { - Opplysning, - opplysningSpec, - validVedleggFrontends, - VedleggFrontendsMinusEtParTingSomTrengerAvklaring, - vedleggGrupper, -} from "../../lib/opplysninger"; +import {Opplysning, opplysningSpec, vedleggGrupper} from "../../lib/opplysninger"; import {useMemo} from "react"; import {logError} from "../../nav-soknad/utils/loggerUtils"; -export const flettOgSorter = ({ - okonomiskeOpplysninger, - slettedeVedlegg, -}: VedleggFrontendsMinusEtParTingSomTrengerAvklaring): Opplysning[] => { - const current = okonomiskeOpplysninger.map((opplysning): Opplysning => ({...opplysning})); - const deleted = slettedeVedlegg.map((opplysning): Opplysning => ({...opplysning, slettet: true})); - return [...current, ...deleted].sort( +export const flettOgSorter = ({okonomiskeOpplysninger, slettedeVedlegg}: VedleggFrontends): Opplysning[] => { + const current = okonomiskeOpplysninger?.map((opplysning): Opplysning => ({...opplysning})); + const deleted = slettedeVedlegg?.map((opplysning): Opplysning => ({...opplysning, slettet: true})); + return [...(current ?? []), ...(deleted ?? [])].sort( (a: Opplysning, b: Opplysning) => opplysningSpec[a.type].sortKey - opplysningSpec[b.type].sortKey ); }; @@ -25,18 +16,15 @@ export const flettOgSorter = ({ export const useOpplysninger = () => { const behandlingsId = useBehandlingsId(); - const {data, isLoading, error} = useHentOkonomiskeOpplysninger< - VedleggFrontends | VedleggFrontendsMinusEtParTingSomTrengerAvklaring - >(behandlingsId, {}); + const {data, isLoading, error} = useHentOkonomiskeOpplysninger( + behandlingsId, + {} + ); if (error) { logError(`Feil ved HentOkonomiskeOpplysninger: ${error}`); } - if (data && !validVedleggFrontends(data)) { - throw new Error(`useOpplysninger mottok ugyldig type ${data} - frontends API ute av synk med Swagger?`); - } - const sorterte = useMemo(() => (data ? flettOgSorter(data) : []), [data]); // Filtrer vekk tomme grupper, slik at vi kan bruke liste.length under for å mekke grønne linjer mellom ting diff --git a/src/skjema/ettersendelse/ettersendelseVedlegg.tsx b/src/skjema/ettersendelse/ettersendelseVedlegg.tsx index c427d11e1..16c903bb5 100644 --- a/src/skjema/ettersendelse/ettersendelseVedlegg.tsx +++ b/src/skjema/ettersendelse/ettersendelseVedlegg.tsx @@ -16,7 +16,7 @@ import {REST_FEIL, REST_STATUS} from "../../digisos/redux/soknadsdata/soknadsdat import {FilFrontend, VedleggFrontendType} from "../../generated/model"; import {logError} from "../../nav-soknad/utils/loggerUtils"; import {PaperclipIcon} from "@navikt/aksel-icons"; -import {opplysningSpec, VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring} from "../../lib/opplysninger"; +import {opplysningSpec} from "../../lib/opplysninger"; const VedleggsListe = styled.div` border-radius: 4px; @@ -77,12 +77,12 @@ const EttersendelseVedlegg = ({vedlegg, ettersendelseAktivert, feilKode}: Props) const opplastingsFeil: boolean = opplastingStatus === REST_STATUS.FEILET && feiletVedleggId === vedlegg.type; const visFeilFiltypeFeilmelding: boolean = opplastingsFeil && feilKode === REST_FEIL.FEIL_FILTYPE; - const tittelKey = (opplysningType: VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring) => { + const tittelKey = (opplysningType: VedleggFrontendType) => { const key = `${opplysningSpec[opplysningType].textKey}.vedlegg.sporsmal.tittel`; return i18n.exists(key) ? t(key) : undefined; }; - const infoKey = (opplysningType: VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring) => { + const infoKey = (opplysningType: VedleggFrontendType) => { const key = `${opplysningSpec[opplysningType].textKey}.vedlegg.sporsmal.info`; return i18n.exists(key) ? t(key) : undefined; };