diff --git a/packages/behandling-omsorgspenger/src/panelDefinisjoner/faktaPaneler/VurderNyoppstartetFaktaPanelDef.tsx b/packages/behandling-omsorgspenger/src/panelDefinisjoner/faktaPaneler/VurderNyoppstartetFaktaPanelDef.tsx
index 3937cffc5c..626a2f75bb 100644
--- a/packages/behandling-omsorgspenger/src/panelDefinisjoner/faktaPaneler/VurderNyoppstartetFaktaPanelDef.tsx
+++ b/packages/behandling-omsorgspenger/src/panelDefinisjoner/faktaPaneler/VurderNyoppstartetFaktaPanelDef.tsx
@@ -1,6 +1,6 @@
import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes';
import { FaktaPanelDef } from '@k9-sak-web/behandling-felles';
-import { VurderNyoppstartet } from '@k9-sak-web/gui/fakta/vurder-nyoppstartet/VurderNyoppstartet.js';
+import { VurderNyoppstartetIndex } from '@k9-sak-web/gui/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.js';
import { faktaPanelCodes } from '@k9-sak-web/konstanter';
import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js';
@@ -16,7 +16,7 @@ class VurderNyoppstartetFaktaPanelDef extends FaktaPanelDef {
getKomponent = props => {
const deepCopyProps = JSON.parse(JSON.stringify(props));
konverterKodeverkTilKode(deepCopyProps, false);
- return ;
+ return ;
};
}
diff --git a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.stories.tsx b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.stories.tsx
deleted file mode 100644
index 8cd3d8ccb9..0000000000
--- a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.stories.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import type { Meta, StoryObj } from '@storybook/react';
-import { expect, fn, userEvent, waitFor } from '@storybook/test';
-import { VurderNyoppstartet } from './VurderNyoppstartet';
-
-const meta: Meta = {
- title: 'gui/prosess/vurder-nyoppstartet/VurderNyoppstartet',
- component: VurderNyoppstartet,
-};
-
-export default meta;
-
-type Story = StoryObj;
-
-export const Default: Story = {
- args: {
- submitCallback: fn(),
- harApneAksjonspunkter: true,
- aksjonspunkter: [],
- },
- play: async ({ canvas, args, step }) => {
- step('Skal sende inn nyoppstartet dato', async () => {
- await userEvent.click(canvas.getByLabelText('Ja'));
- await userEvent.type(canvas.getByLabelText('Dato for nyoppstartet'), '2023-01-01');
- await userEvent.type(canvas.getByLabelText('Begrunnelse'), 'Dette er en begrunnelse');
- await userEvent.click(canvas.getByText('Bekreft'));
- await waitFor(() => expect(args.submitCallback).toHaveBeenCalledTimes(1));
- expect(args.submitCallback).toHaveBeenCalledWith({
- begrunnelse: 'Dette er en begrunnelse',
- erNyoppstartet: true,
- kode: '9016',
- nyoppstartetFom: '2023-01-01',
- fortsettBehandling: true,
- });
- });
- },
- render: props => ,
-};
diff --git a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.tsx b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.tsx
index f745715acc..9b215f2b9f 100644
--- a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.tsx
+++ b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartet.tsx
@@ -1,4 +1,3 @@
-import type { AksjonspunktDto } from '@k9-sak-web/backend/k9sak/generated';
import AksjonspunktCodes from '@k9-sak-web/lib/kodeverk/types/AksjonspunktCodes.js';
import { Alert, Box, Button, Heading, HStack, VStack } from '@navikt/ds-react';
import { Datepicker, Form, RadioGroupPanel, TextAreaField } from '@navikt/ft-form-hooks';
@@ -6,36 +5,32 @@ import { hasValidDate, minLength, required } from '@navikt/ft-form-validators';
import { useForm, useWatch } from 'react-hook-form';
interface FormValues {
- begrunnelse: string;
- erNyoppstartet: boolean;
- fom: string;
+ begrunnelse: string | null;
+ erNyoppstartet: boolean | null;
+ fom: string | null;
}
-interface SubmitValues extends FormValues {
+export interface SubmitValues {
kode: string;
- fortsettBehandling: boolean;
+ begrunnelse: string | null;
+ avklarNyoppstartet: { fom: string | null; erNyoppstartet: boolean };
}
interface VurderNyoppstartetProps {
submitCallback: (data: SubmitValues[]) => void;
harApneAksjonspunkter: boolean;
readOnly: boolean;
- aksjonspunkter: AksjonspunktDto[];
+ formDefaultValues: FormValues;
}
export const VurderNyoppstartet = ({
submitCallback,
harApneAksjonspunkter,
readOnly,
- aksjonspunkter,
+ formDefaultValues,
}: VurderNyoppstartetProps) => {
- const aksjonspunkt = aksjonspunkter.find(ap => ap.definisjon === AksjonspunktCodes.VURDER_NYOPPSTARTET);
const formMethods = useForm({
- defaultValues: {
- begrunnelse: aksjonspunkt?.begrunnelse || undefined,
- erNyoppstartet: undefined,
- fom: undefined,
- },
+ defaultValues: formDefaultValues,
});
const erNyoppstartet = useWatch({ control: formMethods.control, name: 'erNyoppstartet' });
@@ -43,10 +38,12 @@ export const VurderNyoppstartet = ({
const onSubmit = (values: FormValues) => {
submitCallback([
{
- ...values,
- fom: values.erNyoppstartet ? values.fom : '',
+ begrunnelse: values.begrunnelse,
kode: AksjonspunktCodes.VURDER_NYOPPSTARTET,
- fortsettBehandling: true, // skal mest sannsynlig bort
+ avklarNyoppstartet: {
+ fom: values.erNyoppstartet ? values.fom : null,
+ erNyoppstartet: !!values.erNyoppstartet,
+ },
},
]);
};
diff --git a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.stories.tsx b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.stories.tsx
new file mode 100644
index 0000000000..fe3f910d63
--- /dev/null
+++ b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.stories.tsx
@@ -0,0 +1,51 @@
+import type { Meta, StoryObj } from '@storybook/react';
+import { expect, fn, userEvent, waitFor } from '@storybook/test';
+import { http, HttpResponse } from 'msw';
+import { VurderNyoppstartetIndex } from './VurderNyoppstartetIndex';
+
+const meta: Meta = {
+ title: 'gui/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex',
+ component: VurderNyoppstartetIndex,
+};
+
+export default meta;
+
+type Story = StoryObj;
+
+export const Default: Story = {
+ args: {
+ submitCallback: fn(),
+ harApneAksjonspunkter: true,
+ aksjonspunkter: [],
+ },
+ parameters: {
+ msw: {
+ handlers: [
+ http.get('/k9/sak/api/behandling/nyoppstartet', async () => {
+ return HttpResponse.json({}, { status: 200 });
+ }),
+ ],
+ },
+ },
+ play: async ({ canvas, args, step }) => {
+ step('Skal sende inn nyoppstartet dato', async () => {
+ await waitFor(() => expect(canvas.getByText('Ja')).toBeInTheDocument());
+ await userEvent.click(canvas.getByLabelText('Ja'));
+ await userEvent.type(canvas.getByLabelText('Dato for nyoppstartet'), '2023-01-01');
+ await userEvent.type(canvas.getByLabelText('Begrunnelse'), 'Dette er en begrunnelse');
+ await userEvent.click(canvas.getByText('Bekreft'));
+ await waitFor(() => expect(args.submitCallback).toHaveBeenCalledTimes(1));
+ expect(args.submitCallback).toHaveBeenCalledWith([
+ {
+ begrunnelse: 'Dette er en begrunnelse',
+ kode: '9016',
+ avklarNyoppstartet: {
+ erNyoppstartet: true,
+ fom: '2023-01-01',
+ },
+ },
+ ]);
+ });
+ },
+ render: props => ,
+};
diff --git a/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.tsx b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.tsx
new file mode 100644
index 0000000000..76419a6b57
--- /dev/null
+++ b/packages/v2/gui/src/fakta/vurder-nyoppstartet/VurderNyoppstartetIndex.tsx
@@ -0,0 +1,63 @@
+import AksjonspunktCodes from '@k9-sak-web/lib/kodeverk/types/AksjonspunktCodes.js';
+import { Loader } from '@navikt/ds-react';
+import type { AksjonspunktDto } from '@navikt/k9-sak-typescript-client';
+import { useQuery } from '@tanstack/react-query';
+import axios from 'axios';
+import NetworkErrorPage from '../../sak/feilmeldinger/NetworkErrorPage.js';
+import { type SubmitValues, VurderNyoppstartet } from './VurderNyoppstartet.js';
+
+interface VurderNyoppstartetIndexProps {
+ behandlingUUID: string;
+ submitCallback: (data: SubmitValues[]) => void;
+ harApneAksjonspunkter: boolean;
+ readOnly: boolean;
+ aksjonspunkter: AksjonspunktDto[];
+}
+
+interface NyoppstartetData {
+ erNyoppstartet: boolean | null;
+ fom: string | null;
+}
+
+export const VurderNyoppstartetIndex = ({
+ behandlingUUID,
+ submitCallback,
+ harApneAksjonspunkter,
+ readOnly,
+ aksjonspunkter,
+}: VurderNyoppstartetIndexProps) => {
+ const aksjonspunkt = aksjonspunkter.find(ap => ap.definisjon === AksjonspunktCodes.VURDER_NYOPPSTARTET);
+
+ const {
+ data: nyoppstartetData,
+ isFetching,
+ isError,
+ } = useQuery({
+ queryKey: ['nyoppstartet', behandlingUUID],
+ queryFn: () =>
+ axios
+ .get('/k9/sak/api/behandling/nyoppstartet', { params: { behandlingUuid: behandlingUUID } })
+ .then(({ data }) => data),
+ });
+
+ const formDefaultValues = {
+ begrunnelse: aksjonspunkt?.begrunnelse ?? null,
+ erNyoppstartet: nyoppstartetData?.erNyoppstartet ?? null,
+ fom: nyoppstartetData?.fom ?? null,
+ };
+
+ if (isFetching) {
+ return ;
+ }
+ if (isError) {
+ return ;
+ }
+ return (
+
+ );
+};