Skip to content

Commit

Permalink
Endre på kategorier og feature flag rundt det
Browse files Browse the repository at this point in the history
  • Loading branch information
almyy committed Nov 29, 2024
1 parent a3b2176 commit 14cc538
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 113 deletions.
68 changes: 67 additions & 1 deletion soknad-api-new.json
Original file line number Diff line number Diff line change
Expand Up @@ -1638,6 +1638,41 @@
}
}
},
"/soknad/{soknadId}/inntekt/navytelse": {
"get": {
"tags": ["nav-ytelse-controller"],
"operationId": "getNavYtelse",
"parameters": [
{"name": "soknadId", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid"}}
],
"responses": {
"413": {
"description": "Payload Too Large",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"409": {
"description": "Conflict",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"404": {
"description": "Not Found",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"401": {
"description": "Unauthorized",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/UnauthorizedMelding"}}}
},
"400": {
"description": "Bad Request",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"200": {
"description": "OK",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NavYtelseDto"}}}
}
}
}
},
"/dokument/{soknadId}/{dokumentId}": {
"get": {
"tags": ["dokument-controller"],
Expand Down Expand Up @@ -2085,8 +2120,8 @@
"type": "object",
"properties": {
"name": {"type": "string"},
"group": {"type": "string"},
"dokumentasjonForventet": {"type": "boolean"},
"group": {"type": "string"},
"type": {"type": "string"}
},
"discriminator": {"propertyName": "type"}
Expand Down Expand Up @@ -2696,6 +2731,37 @@
"statsborgerskap": {"type": "string"},
"nordiskBorger": {"type": "boolean"}
}
},
"NavUtbetalingerDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"BARNEBIDRAG_MOTTAR",
"STUDIELAN_INNTEKT",
"JOBB",
"UTBETALING_FORSIKRING",
"UTBETALING_UTBYTTE",
"UTBETALING_SALG",
"UTBETALING_ANNET",
"SLUTTOPPGJOER",
"UTBETALING_NAVYTELSE",
"UTBETALING_SKATTEETATEN",
"UTBETALING_HUSBANKEN"
]
},
"utbetalingsdato": {"type": "string"},
"belop": {"type": "number", "format": "double"}
}
},
"NavYtelseDto": {
"required": ["utbetalinger"],
"type": "object",
"properties": {
"utbetalinger": {"type": "array", "items": {"$ref": "#/components/schemas/NavUtbetalingerDto"}},
"fetchUtbetalingerFeilet": {"type": "boolean"}
}
}
}
}
Expand Down
38 changes: 38 additions & 0 deletions soknad-api-old.json
Original file line number Diff line number Diff line change
Expand Up @@ -2206,6 +2206,44 @@
}
}
},
"/feature-toggle/single": {
"get": {
"tags": ["feature-toggle-ressurs"],
"operationId": "featureToggle",
"parameters": [
{
"name": "soknadId",
"in": "query",
"required": false,
"schema": {"type": "string", "format": "uuid"}
},
{"name": "toggleName", "in": "query", "required": true, "schema": {"type": "string"}}
],
"responses": {
"413": {
"description": "Payload Too Large",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"409": {
"description": "Conflict",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"404": {
"description": "Not Found",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"401": {
"description": "Unauthorized",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/UnauthorizedMelding"}}}
},
"400": {
"description": "Bad Request",
"content": {"*/*": {"schema": {"$ref": "#/components/schemas/SoknadApiError"}}}
},
"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "boolean"}}}}
}
}
},
"/dittnav/pabegynte/inaktive": {
"get": {
"tags": ["ditt-nav-metadata-ressurs"],
Expand Down
80 changes: 13 additions & 67 deletions src/lib/hooks/data/useKategorier.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,11 @@ import {useHentBegrunnelse} from "../../../generated/begrunnelse-ressurs/begrunn
import {useBehandlingsId} from "../common/useBehandlingsId";
import {useEffect, useReducer} from "react";
import {DigisosLanguageKey} from "../../i18n/common.ts";
import {
TrainIcon,
ChildEyesIcon,
ExclamationmarkTriangleIcon,
FirstAidIcon,
HouseIcon,
LightningIcon,
CalendarIcon,
PencilWritingIcon,
CarIcon,
} from "@navikt/aksel-icons";
import {ExclamationmarkTriangleIcon, HouseIcon, LightningIcon} from "@navikt/aksel-icons";
import {UseFormGetValues, UseFormSetValue} from "react-hook-form";
import {useBegrunnelse} from "./useBegrunnelse";
import Tann from "../../components/svg/illustrasjoner/Tann.tsx";
import Eple from "../../components/svg/illustrasjoner/Eple.tsx";
import TSkjorte from "../../components/svg/illustrasjoner/TSkjorte.tsx";
import {useContextFeatureToggles} from "../../providers/useContextFeatureToggles.ts";
import {useFeatureToggle} from "../../../generated/feature-toggle-ressurs/feature-toggle-ressurs.ts";

interface Category {
key: DigisosLanguageKey;
Expand All @@ -40,15 +28,8 @@ interface CategoryAction {
categories?: SelectableCategory[];
}

const addIf = <T,>(bool: boolean, items: T[]) => {
if (bool) {
return items;
}
return [];
};

export const createCategories = (hasChildren: boolean): Category[] => [
{key: "begrunnelse.kategorier.mat", icons: [Eple], text: "Mat"},
export const categories: Category[] = [
{key: "begrunnelse.kategorier.livsopphold", icons: [Eple], text: "Livsopphold"},
{
key: "begrunnelse.kategorier.bolig",
icons: [HouseIcon],
Expand All @@ -58,45 +39,9 @@ export const createCategories = (hasChildren: boolean): Category[] => [
{
key: "begrunnelse.kategorier.nodhjelp",
ingressKey: "begrunnelse.nødhjelp.beskrivelse",
subCategories: [
{key: "begrunnelse.underkategorier.nodhjelp.mat", text: "Har ikke penger til mat i dag"},
{key: "begrunnelse.underkategorier.nodhjelp.bosted", text: "Har ikke et sted å bo i natt"},
{
key: "begrunnelse.underkategorier.nodhjelp.strøm",
text: "Strømmen er stengt / stenges i dag eller i morgen",
},
],
icons: [ExclamationmarkTriangleIcon],
text: "Nødhjelp",
},
{key: "begrunnelse.kategorier.lege", icons: [FirstAidIcon], text: "Lege og medisiner"},
{key: "begrunnelse.kategorier.tannlege", icons: [Tann], text: "Tannlege"},
{key: "begrunnelse.kategorier.klaer", icons: [TSkjorte], text: "Klær og utstyr"},
...addIf<Category>(hasChildren, [
{
key: "begrunnelse.kategorier.barnehage",
icons: [ChildEyesIcon],
text: "Barnehage og SFO/AKS",
},
{
key: "begrunnelse.kategorier.fritidsaktiviteter",
icons: [ChildEyesIcon],
text: "Fritidsaktiviteter til barn",
},
{
key: "begrunnelse.kategorier.barn",
icons: [ChildEyesIcon],
text: "Andre utgifter til barn",
},
]),
{key: "begrunnelse.kategorier.transport", icons: [CarIcon, TrainIcon], text: "Transport"},
{key: "begrunnelse.kategorier.hoytid", icons: [CalendarIcon], text: "Høytid og merkedager"},
{
key: "begrunnelse.kategorier.annet",
ingressKey: "begrunnelse.annet.beskrivelse",
icons: [PencilWritingIcon],
text: "Annet",
},
];

interface KategorierFormValues {
Expand All @@ -109,7 +54,6 @@ interface KategorierFormValues {
hva som kommer inn i hvaSokesOm.
*/
const useKategorier = <T extends KategorierFormValues>(
hasChildren: boolean,
setValue: UseFormSetValue<T | KategorierFormValues>,
getValues: UseFormGetValues<T | KategorierFormValues>
) => {
Expand Down Expand Up @@ -151,7 +95,7 @@ const useKategorier = <T extends KategorierFormValues>(
return state;
}
},
createCategories(hasChildren),
categories,
(initialState) =>
initialState.map((category) => ({
...category,
Expand All @@ -162,9 +106,11 @@ const useKategorier = <T extends KategorierFormValues>(
const toggle = (category: string, subCategory?: string) => {
return dispatch({type: "toggle", category, subCategory});
};
const featureFlagData = useContextFeatureToggles();
const {put: doPut, isPending, isError} = useBegrunnelse();
const isKategorierEnabled = featureFlagData?.["sosialhjelp.soknad.kategorier"];
const {data: isKategorierEnabled, isPending: isFeatureToggePending} = useFeatureToggle({
toggleName: "sosialhjelp.soknad.kategorier",
soknadId: behandlingsId,
});

/**
Kommer i json-format
Expand All @@ -178,7 +124,7 @@ const useKategorier = <T extends KategorierFormValues>(
if (annetText) {
setValue("hvaSokesOm", annetText);
}
const categories = createCategories(hasChildren).map((category) => {
const _categories = categories.map((category) => {
const previouslySelectedCategory = hvaSokesOm.find((it) => it.text === category.text);
if (previouslySelectedCategory) {
return {
Expand All @@ -197,9 +143,9 @@ const useKategorier = <T extends KategorierFormValues>(
}
return category;
}) as SelectableCategory[];
dispatch({type: "set", categories});
dispatch({type: "set", categories: _categories});
}
}, [data, dispatch, hasChildren, isKategorierEnabled, setValue]);
}, [data, dispatch, isKategorierEnabled, setValue]);
const put = (begrunnelseFrontend: T) => {
if (isKategorierEnabled) {
const jsonString = reducer
Expand Down Expand Up @@ -227,7 +173,7 @@ const useKategorier = <T extends KategorierFormValues>(
});
}
};
return {put, isPending, isError, reducer, dispatch, toggle};
return {put, isPending: isPending || isFeatureToggePending, isError, reducer, dispatch, toggle};
};

export default useKategorier;
13 changes: 2 additions & 11 deletions src/locales/en/skjema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -186,22 +186,13 @@ export const skjema = {
labelOld: "Give a brief reason for the application",
},
kategorier: {
annet: "Other",
barn: "Other expenses for children",
barnehage: "Kindergarten and SFO/AKS",
bolig: "Rent",
hoytid: "Holidays and special occasions",
klaer: "Clothes and equipment",
label: "What are you applying for money for?",
description:
'Here are some common expenses to apply for. You can enter others under "Other". You can select multiple categories.',
lege: "Medical help and medicine",
mat: "Food",
bolig: "Rent",
livsopphold: "Life expenses",
nodhjelp: "Emergency assistance",
strom: "Electricity and heating",
tannlege: "Dental treatment",
transport: "Transport",
fritidsaktiviteter: "Leisure activities for children",
},
kort: {
behov: {
Expand Down
13 changes: 2 additions & 11 deletions src/locales/nb/skjema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,22 +167,13 @@ export const skjema = {
labelOld: "Gi en kort begrunnelse for søknaden",
},
kategorier: {
annet: "Annet",
barn: "Andre utgifter til barn",
barnehage: "Barnehage og SFO/AKS",
bolig: "Husleie",
hoytid: "Høytid og merkedager",
klaer: "Klær og utstyr",
label: "Hva søker du om penger til?",
description:
"Her er noen utgifter det er vanlig å søke om. Du kan skrive inn andre under “Annet”. Du kan velge flere av kategoriene.",
lege: "Lege og medisiner",
mat: "Mat",
bolig: "Husleie",
livsopphold: "Livsopphold",
nodhjelp: "Nødhjelp",
strom: "Strøm og oppvarming",
tannlege: "Tannlege",
transport: "Transport",
fritidsaktiviteter: "Fritidsaktiviteter for barn",
},
kort: {
behov: {
Expand Down
13 changes: 2 additions & 11 deletions src/locales/nn/skjema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,22 +185,13 @@ export const skjema = {
labelOld: "Grunngi kort søknaden",
},
kategorier: {
annet: "Anna",
barn: "Andre utgifter til barn",
barnehage: "Barnehage og SFO/AKS",
bolig: "Husleige",
hoytid: "Høgtid og merkedagar",
klaer: "Klede og utstyr",
label: "Kva søkjer du om penger til?",
description:
"Her er nokre utgifter det er vanleg å søkje om. Du kan skrive inn andre under “Anna”. Du kan velje fleire av kategoriane.",
lege: "Lege og medisin",
mat: "Mat",
livsopphold: "Livsopphold",
bolig: "Husleige",
nodhjelp: "Nødhjelp",
strom: "Straum og oppvarming",
tannlege: "Tannlege",
transport: "Transport",
fritidsaktiviteter: "Fritidsaktivitetar for barn",
},
kort: {
behov: {
Expand Down
8 changes: 1 addition & 7 deletions src/sider/02-begrunnelse/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import KategorierChips from "../../lib/components/KategorierChips";
import {SkjemaStegErrorSummary} from "../../lib/components/SkjemaSteg/SkjemaStegErrorSummary.tsx";
import {SkjemaStegBlock} from "../../lib/components/SkjemaSteg/SkjemaStegBlock.tsx";
import {SkjemaStegTitle} from "../../lib/components/SkjemaSteg/SkjemaStegTitle.tsx";
import {useForsorgerplikt} from "../../lib/hooks/data/useForsorgerplikt.tsx";
import LocalizedTextArea from "../../lib/components/LocalizedTextArea.tsx";
import {SkjemaStegStepper} from "../../lib/components/SkjemaSteg/SkjemaStegStepper.tsx";
import {SkjemaStegButtons} from "../../lib/components/SkjemaSteg/SkjemaStegButtons.tsx";
Expand Down Expand Up @@ -59,7 +58,6 @@ export const Begrunnelse = () => {
const {begrunnelseNyTekst} = useConfigFeatureFlags();
const featureFlagData = useContextFeatureToggles();
const isKategorierEnabled = featureFlagData?.["sosialhjelp.soknad.kategorier"] ?? false;
const {forsorgerplikt} = useForsorgerplikt();
const {
register,
handleSubmit,
Expand All @@ -74,11 +72,7 @@ export const Begrunnelse = () => {
mode: "onChange",
});

const {put, isPending, reducer, toggle, isError} = useKategorier(
!!forsorgerplikt?.harForsorgerplikt,
setValue,
getValues
);
const {put, isPending, reducer, toggle, isError} = useKategorier(setValue, getValues);

const navigate = useNavigate();

Expand Down
1 change: 0 additions & 1 deletion src/sider/hovedmeny/nySoknad/NySoknadInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ export const NySoknadInfo = () => {
event.preventDefault();

await logAmplitudeStartSoknad();
console.log("Hi");
try {
const {soknadId} = await createSoknad(soknadstype);
await hentXsrfCookie(soknadId);
Expand Down
Loading

0 comments on commit 14cc538

Please sign in to comment.