Skip to content

Commit 2e406d4

Browse files
Forbedret story
Diverse styling
1 parent cc9f1ed commit 2e406d4

File tree

3 files changed

+95
-14
lines changed

3 files changed

+95
-14
lines changed

packages/v2/gui/src/prosess/ung-beregning/ArbeidOgInntekt.tsx

+27-10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
type RapportertInntektDto,
66
} from '@k9-sak-web/backend/ungsak/generated';
77
import { CheckmarkCircleFillIcon, ExclamationmarkTriangleFillIcon, PersonIcon } from '@navikt/aksel-icons';
8-
import { Bleed, BodyLong, Box, Button, Heading, HStack, Table, VStack } from '@navikt/ds-react';
8+
import { Bleed, BodyLong, BodyShort, Box, Button, Heading, HStack, Label, Table, VStack } from '@navikt/ds-react';
99
import { Form, InputField, RadioGroupPanel, TextAreaField } from '@navikt/ft-form-hooks';
1010
import { minLength, required } from '@navikt/ft-form-validators';
1111
import { useForm } from 'react-hook-form';
@@ -17,6 +17,13 @@ const formaterInntekt = (inntekt: RapportertInntektDto) => {
1717
return formatCurrencyWithKr((inntekt.arbeidsinntekt ?? 0) + (inntekt.ytelse ?? 0));
1818
};
1919

20+
const formaterStatus = (status?: KontrollerInntektPeriodeDtoStatus) => {
21+
if (status === KontrollerInntektPeriodeDtoStatus.AVVIK) {
22+
return 'Avvik';
23+
}
24+
return 'Ingen avvik';
25+
};
26+
2027
type Formvalues = {
2128
fastsattArbeidsinntekt: string;
2229
fastsattYtelse: string;
@@ -145,14 +152,16 @@ export const ArbeidOgInntekt = ({ submitCallback, inntektKontrollperioder }: Arb
145152
<Table.Header>
146153
<Table.Row>
147154
<Table.HeaderCell scope="col" className={styles.firstHeaderCell}>
148-
Status
155+
<Label size="small">Status</Label>
156+
</Table.HeaderCell>
157+
<Table.HeaderCell scope="col">
158+
<Label size="small">Periode</Label>
149159
</Table.HeaderCell>
150-
<Table.HeaderCell scope="col">Periode</Table.HeaderCell>
151160
<Table.HeaderCell scope="col" align="right">
152-
Rapportert av deltager
161+
<Label size="small">Rapportert av deltager</Label>
153162
</Table.HeaderCell>
154163
<Table.HeaderCell scope="col" align="right">
155-
Rapportert i A-inntekt
164+
<Label size="small">Rapportert i A-inntekt</Label>
156165
</Table.HeaderCell>
157166
<Table.HeaderCell />
158167
</Table.Row>
@@ -162,6 +171,7 @@ export const ArbeidOgInntekt = ({ submitCallback, inntektKontrollperioder }: Arb
162171
const isLastRow = index === inntektKontrollperioder.length - 1;
163172
const harAksjonspunkt = inntekt.erTilVurdering;
164173
const harAvvik = inntekt.status === KontrollerInntektPeriodeDtoStatus.AVVIK;
174+
165175
return (
166176
<Table.ExpandableRow
167177
key={`${inntekt.periode?.fom}_${inntekt.periode?.tom}`}
@@ -172,25 +182,32 @@ export const ArbeidOgInntekt = ({ submitCallback, inntektKontrollperioder }: Arb
172182
expansionDisabled={!harAksjonspunkt}
173183
>
174184
<Table.DataCell className={styles.firstDataCell}>
175-
<HStack gap="2">
185+
<HStack gap="2" align="center">
176186
{harAvvik ? (
177187
<ExclamationmarkTriangleFillIcon fontSize="1.5rem" className={styles.exclamationmarkIcon} />
178188
) : (
179189
<CheckmarkCircleFillIcon fontSize={24} className={styles.checkmarkIcon} />
180190
)}
181-
{inntekt.status}
191+
<BodyShort size="small">{formaterStatus(inntekt.status)}</BodyShort>
182192
</HStack>
183193
</Table.DataCell>
184194
<Table.DataCell>
185195
{inntekt.periode && (
186-
<PeriodLabel dateStringFom={inntekt.periode?.fom} dateStringTom={inntekt.periode?.tom} />
196+
<BodyShort size="small">
197+
<PeriodLabel dateStringFom={inntekt.periode?.fom} dateStringTom={inntekt.periode?.tom} />
198+
</BodyShort>
187199
)}
188200
</Table.DataCell>
189201
<Table.DataCell align="right">
190-
{inntekt.rapporterteInntekter?.bruker && formaterInntekt(inntekt.rapporterteInntekter?.bruker)}
202+
<BodyShort size="small">
203+
{inntekt.rapporterteInntekter?.bruker && formaterInntekt(inntekt.rapporterteInntekter?.bruker)}
204+
</BodyShort>
191205
</Table.DataCell>
192206
<Table.DataCell align="right">
193-
{inntekt.rapporterteInntekter?.register && formaterInntekt(inntekt.rapporterteInntekter?.register)}
207+
<BodyShort size="small">
208+
{inntekt.rapporterteInntekter?.register &&
209+
formaterInntekt(inntekt.rapporterteInntekter?.register)}
210+
</BodyShort>
194211
</Table.DataCell>
195212
</Table.ExpandableRow>
196213
);

packages/v2/gui/src/prosess/ung-beregning/UngBeregning.tsx

+22-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { type UngdomsytelseSatsPeriodeDto } from '@k9-sak-web/backend/ungsak/generated';
1+
import { type KontrollerInntektDto, type UngdomsytelseSatsPeriodeDto } from '@k9-sak-web/backend/ungsak/generated';
22
import { Alert, Box, Heading, Loader, Tabs } from '@navikt/ds-react';
33
import { useQuery } from '@tanstack/react-query';
44
import { ArbeidOgInntekt } from './ArbeidOgInntekt';
@@ -17,6 +17,20 @@ interface Props {
1717
const sortSatser = (data: UngdomsytelseSatsPeriodeDto[]) =>
1818
data?.toSorted((a, b) => new Date(a.fom).getTime() - new Date(b.fom).getTime()).toReversed();
1919

20+
const sortInntekt = (data: KontrollerInntektDto): KontrollerInntektDto => {
21+
const { kontrollperioder } = data;
22+
return {
23+
kontrollperioder: kontrollperioder
24+
?.toSorted((a, b) => {
25+
if (!a.periode || !b.periode) {
26+
return 0;
27+
}
28+
return new Date(a.periode.fom).getTime() - new Date(b.periode.fom).getTime();
29+
})
30+
.toReversed(),
31+
};
32+
};
33+
2034
const UngBeregning = ({ api, behandling, barn, submitCallback }: Props) => {
2135
const {
2236
data: satser,
@@ -29,16 +43,21 @@ const UngBeregning = ({ api, behandling, barn, submitCallback }: Props) => {
2943
select: sortSatser,
3044
});
3145

32-
const { data: inntekt, isLoading: kontrollInntektIsLoading } = useQuery({
46+
const {
47+
data: inntekt,
48+
isLoading: kontrollInntektIsLoading,
49+
isError: kontrollInntektIsError,
50+
} = useQuery({
3351
queryKey: ['kontrollInntekt', behandling.uuid],
3452
queryFn: () => api.getKontrollerInntekt(behandling.uuid),
53+
select: sortInntekt,
3554
});
3655

3756
if (satserIsLoading || kontrollInntektIsLoading) {
3857
return <Loader size="large" />;
3958
}
4059

41-
if (satserIsError) {
60+
if (satserIsError || kontrollInntektIsError) {
4261
return <Alert variant="error">Noe gikk galt, vennligst prøv igjen senere</Alert>;
4362
}
4463

packages/v2/gui/src/storybook/mocks/FakeUngBeregningBackendApi.ts

+46-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import type { UngdomsytelseSatsPeriodeDto } from '@k9-sak-web/backend/ungsak/generated';
1+
import {
2+
KontrollerInntektPeriodeDtoStatus,
3+
type KontrollerInntektDto,
4+
type UngdomsytelseSatsPeriodeDto,
5+
} from '@k9-sak-web/backend/ungsak/generated';
26

37
export class FakeUngBeregningBackendApi {
48
async getSatser(): Promise<UngdomsytelseSatsPeriodeDto[]> {
@@ -15,4 +19,45 @@ export class FakeUngBeregningBackendApi {
1519
},
1620
];
1721
}
22+
23+
async getKontrollerInntekt(): Promise<KontrollerInntektDto> {
24+
return {
25+
kontrollperioder: [
26+
{
27+
erTilVurdering: false,
28+
fastsattArbeidsinntekt: 123,
29+
fastsattYtelse: 456,
30+
periode: { fom: '2025-01-01', tom: '2025-01-31' },
31+
rapporterteInntekter: {
32+
bruker: {
33+
arbeidsinntekt: 123,
34+
ytelse: 456,
35+
},
36+
register: {
37+
arbeidsinntekt: 123,
38+
ytelse: 456,
39+
},
40+
},
41+
status: KontrollerInntektPeriodeDtoStatus.INGEN_AVVIK,
42+
},
43+
{
44+
erTilVurdering: true,
45+
fastsattArbeidsinntekt: 5000,
46+
fastsattYtelse: 2500,
47+
periode: { fom: '2025-02-01', tom: '2025-02-28' },
48+
rapporterteInntekter: {
49+
bruker: {
50+
arbeidsinntekt: 4800,
51+
ytelse: 2600,
52+
},
53+
register: {
54+
arbeidsinntekt: 5200,
55+
ytelse: 2400,
56+
},
57+
},
58+
status: KontrollerInntektPeriodeDtoStatus.AVVIK,
59+
},
60+
],
61+
};
62+
}
1863
}

0 commit comments

Comments
 (0)