Skip to content

Commit

Permalink
Merge branch 'master' into Dialog-ved-opplastning-av-fil
Browse files Browse the repository at this point in the history
  • Loading branch information
toresbe committed Sep 13, 2023
2 parents 51614fa + 59e57a1 commit d91865e
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 94 deletions.
6 changes: 0 additions & 6 deletions soknad-api.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -1509,7 +1504,6 @@
"husbanken|vedtak",
"husleiekontrakt|husleiekontrakt",
"husleiekontrakt|kommunal",
"kjopekontrakt|kjopekontrakt",
"kontooversikt|aksjer",
"kontooversikt|annet",
"kontooversikt|brukskonto",
Expand Down
2 changes: 1 addition & 1 deletion src/digisos/redux/ettersendelse/ettersendelseSaga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
}

Expand Down
3 changes: 1 addition & 2 deletions src/digisos/redux/ettersendelse/ettersendelseTypes.ts
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -157,7 +156,7 @@ export interface EttersendelseState {
}

export interface EttersendelseVedleggBackend {
type: VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring;
type: VedleggFrontendType;
vedleggStatus: VedleggFrontendVedleggStatus;
filer: FilFrontend[];
}
Expand Down
60 changes: 3 additions & 57 deletions src/lib/opplysninger.ts
Original file line number Diff line number Diff line change
@@ -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;
};
Expand All @@ -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<VedleggFrontendTypeMinusEtParTingSomTrengerAvklaring, OpplysningSpec> = {
export const opplysningSpec: Record<VedleggFrontendType, OpplysningSpec> = {
"lonnslipp|arbeid": {
numRows: "flere",
inputs: ["brutto", "netto"],
Expand Down
4 changes: 2 additions & 2 deletions src/skjema/08-vedlegg/TabellView.tsx
Original file line number Diff line number Diff line change
@@ -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}) => (
<li className={`pt-3 pb-4`}>
Expand All @@ -13,7 +13,7 @@ const OpplysningRadNy = ({onClick, label}: {onClick: () => void; label: string})
</li>
);

const TabellView = ({opplysning}: {opplysning: VedleggFrontendMinusEtParTingSomTrengerAvklaring}) => {
const TabellView = ({opplysning}: {opplysning: VedleggFrontend}) => {
const {t} = useTranslation();
const {
textKey,
Expand Down
4 changes: 2 additions & 2 deletions src/skjema/08-vedlegg/useOpplysning.tsx
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -38,7 +38,7 @@ export type VedleggRadFrontendForm = z.infer<typeof VedleggRadFrontendSchema>;
// 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();
Expand Down
30 changes: 9 additions & 21 deletions src/skjema/08-vedlegg/useOpplysninger.tsx
Original file line number Diff line number Diff line change
@@ -1,42 +1,30 @@
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
);
};

export const useOpplysninger = () => {
const behandlingsId = useBehandlingsId();

const {data, isLoading, error} = useHentOkonomiskeOpplysninger<
VedleggFrontends | VedleggFrontendsMinusEtParTingSomTrengerAvklaring
>(behandlingsId, {});
const {data, isLoading, error} = useHentOkonomiskeOpplysninger<VedleggFrontends | VedleggFrontends>(
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
Expand Down
6 changes: 3 additions & 3 deletions src/skjema/ettersendelse/ettersendelseVedlegg.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
};
Expand Down

0 comments on commit d91865e

Please sign in to comment.