Skip to content

Commit

Permalink
Merge pull request #2908 from navikt/nullstill-vedtak-fix
Browse files Browse the repository at this point in the history
Må nullstille resultattype når vedtak nullstilles - hvis ikke skjer d…
  • Loading branch information
charliemidtlyng authored Sep 27, 2024
2 parents 72a6534 + f975e59 commit 0b302ba
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 56 deletions.
1 change: 1 addition & 0 deletions src/frontend/App/hooks/useHentVedtak.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export const useHentVedtak = (
settVedtaksresultat(res.data.resultatType);
} else {
settVedtak(byggSuksessRessurs(undefined));
settVedtaksresultat(undefined);
}
} else {
settVedtak(res);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import React, { FC, useState } from 'react';
import { Behandling } from '../../../../App/typer/fagsak';
import { IVilkår } from '../../Inngangsvilkår/vilkår';
import React, { FC } from 'react';
import { EBehandlingResultat, IVedtakType } from '../../../../App/typer/vedtak';
import { erAlleVilkårOppfylt, skalViseNullstillVedtakKnapp } from '../Felles/utils';
import SelectVedtaksresultat from '../Felles/SelectVedtaksresultat';
Expand All @@ -10,19 +8,16 @@ import { OpphøreVedtak } from '../Felles/OpphøreVedtak/OpphøreVedtak';
import { barnSomOppfyllerAlleVilkår } from './Felles/utils';
import { InnvilgeVedtak } from './InnvilgeVedtak/InnvilgeVedtak';
import { useBehandling } from '../../../../App/context/BehandlingContext';
import { VedtakOgBeregningProps } from '../VedtakOgBeregningFane';

interface Props {
behandling: Behandling;
vilkår: IVilkår;
}

const VedtakOgBeregningBarnetilsyn: FC<Props> = ({ behandling, vilkår }) => {
const VedtakOgBeregningBarnetilsyn: FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => {
const behandlingId = behandling.id;
const { vedtak, vedtaksresultat } = useBehandling();

const [resultatType, settResultatType] = useState<EBehandlingResultat | undefined>(
vedtaksresultat
);
const { vedtak } = useBehandling();

const alleVilkårOppfylt = erAlleVilkårOppfylt(vilkår);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ export const NullstillVedtakModal: React.FC<{
visModal: boolean;
settVisModal: React.Dispatch<React.SetStateAction<boolean>>;
behandlingId: string;
}> = ({ visModal, settVisModal, behandlingId }) => {
nullstillResultatType: () => void;
}> = ({ visModal, settVisModal, behandlingId, nullstillResultatType }) => {
const { axiosRequest, settToast, nullstillIkkePersisterteKomponenter } = useApp();
const { hentBehandling } = useBehandling();
const { hentBehandling, hentVedtak } = useBehandling();
const [feilmelding, settFeilmelding] = useState('');

const nullstillVedtak = () => {
Expand All @@ -32,11 +33,13 @@ export const NullstillVedtakModal: React.FC<{
url: `familie-ef-sak/api/vedtak/${behandlingId}`,
}).then((resp) => {
if (resp.status === RessursStatus.SUKSESS) {
nullstillIkkePersisterteKomponenter();
settFeilmelding('');
hentBehandling.rerun();
hentVedtak.rerun();
settVisModal(false);
nullstillIkkePersisterteKomponenter();
settToast(EToast.VEDTAK_NULLSTILT);
nullstillResultatType();
} else {
settFeilmelding(resp.frontendFeilmelding);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
import React, { FC, useState } from 'react';
import React, { FC } from 'react';
import DataViewer from '../../../../Felles/DataViewer/DataViewer';
import { EBehandlingResultat } from '../../../../App/typer/vedtak';
import VedtaksresultatSwitch from './VedtaksresultatSwitch';
import SelectVedtaksresultat from '../Felles/SelectVedtaksresultat';
import { Behandling } from '../../../../App/typer/fagsak';
import { IVilkår } from '../../Inngangsvilkår/vilkår';
import {
eksistererIkkeOppfyltVilkårForOvergangsstønad,
erAlleVilkårOppfylt,
} from '../Felles/utils';
import { useBehandling } from '../../../../App/context/BehandlingContext';
import { VedtakOgBeregningProps } from '../VedtakOgBeregningFane';

interface Props {
behandling: Behandling;
vilkår: IVilkår;
}

const VedtakOgBeregningOvergangsstønad: FC<Props> = ({ behandling, vilkår }) => {
const { vedtak, vedtaksresultat } = useBehandling();

const [resultatType, settResultatType] = useState<EBehandlingResultat | undefined>(
vedtaksresultat
);
const VedtakOgBeregningOvergangsstønad: FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => {
const { vedtak } = useBehandling();

const alleVilkårOppfylt = erAlleVilkårOppfylt(vilkår);
const ikkeOppfyltVilkårEksisterer = eksistererIkkeOppfyltVilkårForOvergangsstønad(vilkår);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import React, { FC, useEffect, useState } from 'react';
import { Behandling } from '../../../../App/typer/fagsak';
import { IVilkår } from '../../Inngangsvilkår/vilkår';
import React, { FC, useEffect } from 'react';
import {
EBehandlingResultat,
IVedtakForSkolepenger,
Expand All @@ -14,22 +12,19 @@ import { AvslåVedtak } from '../Felles/AvslåVedtak/AvslåVedtak';
import { InnvilgeVedtak } from './InnvilgeVedtak/InnvilgeVedtak';
import { OpphøreVedtak } from './OpphøreVedtak/OpphøreVedtak';
import { useBehandling } from '../../../../App/context/BehandlingContext';
import { VedtakOgBeregningProps } from '../VedtakOgBeregningFane';

interface Props {
behandling: Behandling;
vilkår: IVilkår;
}

const VedtakOgBeregningSkolepenger: FC<Props> = ({ behandling, vilkår }) => {
const { vedtak, vedtaksresultat } = useBehandling();
const VedtakOgBeregningSkolepenger: FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => {
const { vedtak } = useBehandling();
const { vedtak: forrigeVedtak, hentVedtak: hentForrigeVedtak } = useHentVedtak(
behandling.forrigeBehandlingId
);

const [resultatType, settResultatType] = useState<EBehandlingResultat | undefined>(
vedtaksresultat
);

const alleVilkårOppfylt = erAlleVilkårOppfylt(vilkår);

useEffect(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { NullstillVedtakModal } from './Felles/NullstillVedtakModal';
import { NullstillVedtakModalContext } from './Felles/NullstillVedtakModalContext';
import { AlertError } from '../../../Felles/Visningskomponenter/Alerts';
import { SmallTextLabel } from '../../../Felles/Visningskomponenter/Tekster';
import { EBehandlingResultat } from '../../../App/typer/vedtak';

const Fane = styled.main`
display: flex;
Expand All @@ -38,6 +39,11 @@ export const VedtakOgBeregningFane: FC<Props> = ({ behandling }) => {

const [visNullstillVedtakModal, settVisNullstillVedtakModal] = useState(false);
const { vilkår, hentVilkår } = vilkårState;
const { vedtaksresultat } = useBehandling();

const [resultatType, settResultatType] = useState<EBehandlingResultat | undefined>(
vedtaksresultat
);

useEffect(() => {
hentVilkår(behandling.id);
Expand All @@ -51,57 +57,111 @@ export const VedtakOgBeregningFane: FC<Props> = ({ behandling }) => {
{({ vilkår }) => {
switch (behandling.stønadstype) {
case Stønadstype.OVERGANGSSTØNAD:
return <FaneOvergangsstønad behandling={behandling} vilkår={vilkår} />;
return (
<FaneOvergangsstønad
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
);
case Stønadstype.BARNETILSYN:
return <FaneBarnetilsyn behandling={behandling} vilkår={vilkår} />;
return (
<FaneBarnetilsyn
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
);
case Stønadstype.SKOLEPENGER:
return <FaneSkolepenger behandling={behandling} vilkår={vilkår} />;
return (
<FaneSkolepenger
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
);
}
}}
</DataViewer>
<NullstillVedtakModal
visModal={visNullstillVedtakModal}
settVisModal={settVisNullstillVedtakModal}
behandlingId={behandling.id}
nullstillResultatType={() => settResultatType(undefined)}
/>
</NullstillVedtakModalContext.Provider>
);
};

interface FaneProps {
export interface VedtakOgBeregningProps {
behandling: Behandling;
vilkår: IVilkår;
resultatType: EBehandlingResultat | undefined;
settResultatType: (resultat: EBehandlingResultat | undefined) => void;
}

const FaneOvergangsstønad: React.FC<FaneProps> = ({ behandling, vilkår }) => (
const FaneOvergangsstønad: React.FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => (
<Fane>
<VedtaksoppsummeringOvergangsstønad vilkår={vilkår} behandling={behandling} />
{behandling.steg === Steg.VILKÅR ? (
<AlertStripe />
) : (
<VedtakOgBeregningOvergangsstønad behandling={behandling} vilkår={vilkår} />
<VedtakOgBeregningOvergangsstønad
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
)}
</Fane>
);

const FaneBarnetilsyn: React.FC<FaneProps> = ({ behandling, vilkår }) => (
const FaneBarnetilsyn: React.FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => (
<Fane>
<VedtaksoppsummeringBarnetilsyn vilkår={vilkår} behandling={behandling} />
{behandling.steg === Steg.VILKÅR ? (
<AlertStripe />
) : (
<VedtakOgBeregningBarnetilsyn behandling={behandling} vilkår={vilkår} />
<VedtakOgBeregningBarnetilsyn
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
)}
</Fane>
);

const FaneSkolepenger: React.FC<FaneProps> = ({ behandling, vilkår }) => (
const FaneSkolepenger: React.FC<VedtakOgBeregningProps> = ({
behandling,
vilkår,
resultatType,
settResultatType,
}) => (
<Fane>
<VedtaksoppsummeringSkolepenger vilkår={vilkår} behandling={behandling} />
{behandling.steg === Steg.VILKÅR ? (
<AlertStripe />
) : (
<VedtakOgBeregningSkolepenger behandling={behandling} vilkår={vilkår} />
<VedtakOgBeregningSkolepenger
behandling={behandling}
vilkår={vilkår}
resultatType={resultatType}
settResultatType={settResultatType}
/>
)}
</Fane>
);
Expand Down

0 comments on commit 0b302ba

Please sign in to comment.