Skip to content

Commit

Permalink
hopp over api kall dersom data ikke har endret seg
Browse files Browse the repository at this point in the history
  • Loading branch information
RamziAbuQassim committed Sep 29, 2023
1 parent f20ae95 commit 258d090
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@ import Måned from '~src/types/Måned';
import messages from '../../Tilbakekreving-nb';

import styles from './VurderTilbakekreving.module.less';
import { VurderTilbakekrevingFormData, vurderTilbakekrevingSchema } from './VurderTilbakekrevingUtils';
import {
VurderTilbakekrevingFormData,
eqVurderTilbakekrevingFormData,
vurderTilbakekrevingSchema,
} from './VurderTilbakekrevingUtils';

const VurderTilbakekreving = (props: {
sakId: string;
Expand All @@ -39,6 +43,12 @@ const VurderTilbakekreving = (props: {
const { formatMessage } = useI18n({ messages });
const [status, lagre] = useAsyncActionCreator(vurderTilbakekrevingsbehandling);

const nesteUrl = routes.tilbakekrevingValgtBehandling.createURL({
sakId: props.sakId,
behandlingId: props.tilbakekreving.id,
steg: TilbakekrevingSteg.Brev,
});

const defaultValuesFraBehandling = props.tilbakekreving.månedsvurderinger.map((måned) => ({
måned: Måned.fromString(måned.måned),
vurdering: måned.vurdering,
Expand All @@ -49,69 +59,55 @@ const VurderTilbakekreving = (props: {
vurdering: null,
}));

const initialValues =
defaultValuesFraBehandling.length > 0
? { grunnlagsperioder: defaultValuesFraBehandling }
: { grunnlagsperioder: defaultValuesFraKravgunnlag };

const form = useForm<VurderTilbakekrevingFormData>({
defaultValues: {
grunnlagsperioder:
defaultValuesFraBehandling.length > 0 ? defaultValuesFraBehandling : defaultValuesFraKravgunnlag,
},
defaultValues: initialValues,
resolver: yupResolver(vurderTilbakekrevingSchema),
});
const { fields } = useFieldArray({ name: fieldName, control: form.control });

const handleLagreOgFortsettSenereClick = async (
data: VurderTilbakekrevingFormData,
trigger: UseFormTrigger<VurderTilbakekrevingFormData>,
) => {
await trigger().then((isValid) => {
if (isValid) {
lagre(
{
sakId: props.sakId,
saksversjon: props.saksversjon,
behandlingId: props.tilbakekreving.id,
måneder: data.grunnlagsperioder.map((periode) => ({
måned: periode.måned.toString(),
vurdering: periode.vurdering!,
})),
},
() => {
navigate(
routes.saksoversiktValgtSak.createURL({
sakId: props.sakId,
}),
);
},
);
}
});
};

const handleSubmit = (values: VurderTilbakekrevingFormData) => {
const save = (data: VurderTilbakekrevingFormData, onSuccess: () => void) => {
lagre(
{
sakId: props.sakId,
saksversjon: props.saksversjon,
behandlingId: props.tilbakekreving.id,
måneder: values.grunnlagsperioder.map((periode) => ({
måneder: data.grunnlagsperioder.map((periode) => ({
måned: periode.måned.toString(),
vurdering: periode.vurdering!,
})),
},
() => {
navigate(
routes.tilbakekrevingValgtBehandling.createURL({
sakId: props.sakId,
behandlingId: props.tilbakekreving.id,
steg: TilbakekrevingSteg.Brev,
}),
);
},
onSuccess,
);
};

const { fields } = useFieldArray({
name: fieldName,
control: form.control,
});
const handleLagreOgFortsettSenereClick = async (
data: VurderTilbakekrevingFormData,
trigger: UseFormTrigger<VurderTilbakekrevingFormData>,
) => {
if (eqVurderTilbakekrevingFormData.equals(initialValues, data)) {
navigate(routes.saksoversiktValgtSak.createURL({ sakId: props.sakId }));
return;
}

await trigger().then((isValid) => {
if (isValid) {
save(data, () => navigate(routes.saksoversiktValgtSak.createURL({ sakId: props.sakId })));
}
});
};

const handleSubmit = (values: VurderTilbakekrevingFormData) => {
if (eqVurderTilbakekrevingFormData.equals(initialValues, values)) {
navigate(nesteUrl);
return;
}
save(values, () => navigate(nesteUrl));
};

return (
<ToKolonner tittel={formatMessage('vurderTilbakekreving.tittel')}>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import { Nullable } from '~src/lib/types';
import { getEq } from 'fp-ts/Array';
import { struct } from 'fp-ts/lib/Eq';
import * as S from 'fp-ts/lib/string';

import { Nullable, eqNullable } from '~src/lib/types';
import yup from '~src/lib/validering';
import { TilbakekrevingsVurdering } from '~src/types/ManuellTilbakekrevingsbehandling';
import Måned from '~src/types/Måned';
Expand All @@ -12,6 +16,15 @@ interface GrunnlagsperiodeFormData {
vurdering: Nullable<TilbakekrevingsVurdering>;
}

export const eqGrunnlagsperiodeFormData = struct<GrunnlagsperiodeFormData>({
måned: Måned.eq(),
vurdering: eqNullable(S.Eq),
});

export const eqVurderTilbakekrevingFormData = struct<VurderTilbakekrevingFormData>({
grunnlagsperioder: getEq(eqGrunnlagsperiodeFormData),
});

export const vurderTilbakekrevingSchema = yup.object<VurderTilbakekrevingFormData>({
grunnlagsperioder: yup
.array<GrunnlagsperiodeFormData>(
Expand Down
6 changes: 6 additions & 0 deletions src/types/Måned.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import * as DateFns from 'date-fns';
import { Eq, contramap } from 'fp-ts/lib/Eq';
import * as S from 'fp-ts/lib/string';

import * as DateUtils from '~src/utils/date/dateUtils';

Expand Down Expand Up @@ -73,6 +75,10 @@ class Måned {
};
}

static eq(): Eq<Måned> {
return contramap((måned: Måned) => `${måned.#år}-${måned.#måned}`)(S.Eq);
}

/**
*
* @param input et vilkårlig string input, som helst skal være på formatet yyyy-mm eller yyyy-mm-dd
Expand Down

0 comments on commit 258d090

Please sign in to comment.