diff --git a/src/frontend/Komponenter/Behandling/BehandlingSide.tsx b/src/frontend/Komponenter/Behandling/BehandlingSide.tsx index ffe33c56d..e1c578fe5 100644 --- a/src/frontend/Komponenter/Behandling/BehandlingSide.tsx +++ b/src/frontend/Komponenter/Behandling/BehandlingSide.tsx @@ -119,7 +119,7 @@ const SideInnhold: FC = ({ behandling, personopplysninger, fagsak }) => { - + diff --git a/src/frontend/Komponenter/Behandling/Modal/HenleggModal.tsx b/src/frontend/Komponenter/Behandling/Modal/HenleggModal.tsx index a859bb313..daed2391b 100644 --- a/src/frontend/Komponenter/Behandling/Modal/HenleggModal.tsx +++ b/src/frontend/Komponenter/Behandling/Modal/HenleggModal.tsx @@ -1,12 +1,12 @@ import React, { FC, useState } from 'react'; import { useBehandling } from '../../../App/context/BehandlingContext'; -import { Ressurs, RessursStatus } from '../../../App/typer/ressurs'; +import { Ressurs, RessursFeilet, RessursStatus, RessursSuksess } from '../../../App/typer/ressurs'; import { Behandling } from '../../../App/typer/fagsak'; import { useApp } from '../../../App/context/AppContext'; import { EToast } from '../../../App/typer/toast'; import { EHenlagtårsak } from '../../../App/typer/behandlingsårsak'; import { ModalWrapper } from '../../../Felles/Modal/ModalWrapper'; -import { Alert, Radio, RadioGroup } from '@navikt/ds-react'; +import { Alert, Link, Radio, RadioGroup } from '@navikt/ds-react'; import styled from 'styled-components'; import { useRedirectEtterLagring } from '../../../App/hooks/felles/useRedirectEtterLagring'; import { v4 as uuidv4 } from 'uuid'; @@ -14,12 +14,24 @@ import { useToggles } from '../../../App/context/TogglesContext'; import DataViewer from '../../../Felles/DataViewer/DataViewer'; import { AnsvarligSaksbehandlerRolle } from '../../../App/typer/saksbehandler'; import { ToggleName } from '../../../App/context/toggles'; +import { base64toBlob, åpnePdfIEgenTab } from '../../../App/utils/utils'; +import { ABorderSubtle } from '@navikt/ds-tokens/dist/tokens'; +import { VStack, Stack } from '@navikt/ds-react'; +import { IPersonopplysninger } from '../../../App/typer/personopplysninger'; +import { erEtterDagensDato } from '../../../App/utils/dato'; const AlertStripe = styled(Alert)` margin-top: 1rem; `; -export const HenleggModal: FC<{ behandling: Behandling }> = ({ behandling }) => { +const HorizontalDivider = styled.div` + border-bottom: 2px solid ${ABorderSubtle}; +`; + +export const HenleggModal: FC<{ + behandling: Behandling; + personopplysninger: IPersonopplysninger; +}> = ({ behandling, personopplysninger }) => { const { visHenleggModal, settVisHenleggModal, @@ -34,9 +46,33 @@ export const HenleggModal: FC<{ behandling: Behandling }> = ({ behandling }) => nullstillIkkePersisterteKomponenter, settIkkePersistertKomponent, } = useApp(); + const fullmakter = personopplysninger.fullmakt; + const vergemål = personopplysninger.vergemål; const [henlagtårsak, settHenlagtårsak] = useState(); + const [harHuketAvSendBrev, settHarHuketAvSendBrev] = useState(true); const [låsKnapp, settLåsKnapp] = useState(false); const [feilmelding, settFeilmelding] = useState(); + const [henterBrev, settHenterBrev] = useState(false); + + const visBrevINyFane = () => { + if (!henterBrev) { + settHenterBrev(true); + axiosRequest({ + method: 'GET', + url: `familie-ef-sak/api/behandling/${behandling.id}/henlegg/brev/forhandsvisning`, + }).then((respons: RessursSuksess | RessursFeilet) => { + if (respons.status === RessursStatus.SUKSESS) { + åpnePdfIEgenTab( + base64toBlob(respons.data, 'application/pdf'), + 'Forhåndsvisning av trukket søknadsbrev' + ); + } else { + settFeilmelding(respons.frontendFeilmelding); + } + settHenterBrev(false); + }); + } + }; const utledEndepunktForHenleggelse = (rolle: AnsvarligSaksbehandlerRolle) => toggles[ToggleName.henleggBehandlingUtenÅHenleggeOppgave] && @@ -57,11 +93,12 @@ export const HenleggModal: FC<{ behandling: Behandling }> = ({ behandling }) => const endepunkt = utledEndepunktForHenleggelse(ansvarligSaksbehandlerRolle); - axiosRequest({ + axiosRequest({ method: 'POST', url: endepunkt, data: { årsak: henlagtårsak, + skalSendeHenleggelsesbrev: harValgtSendBrevOgSkalViseFramValg, }, }) .then((respons: Ressurs) => { @@ -85,8 +122,20 @@ export const HenleggModal: FC<{ behandling: Behandling }> = ({ behandling }) => const lukkModal = () => { settFeilmelding(''); settVisHenleggModal(false); + settHenlagtårsak(undefined); }; + const tilknyttetFullmakt = fullmakter.some( + (fullmakt) => fullmakt.gyldigTilOgMed === null || erEtterDagensDato(fullmakt.gyldigTilOgMed) + ); + + const henlagtårsakTrukketTilbake = henlagtårsak === EHenlagtårsak.TRUKKET_TILBAKE; + + const skalViseTilleggsvalg = + vergemål.length === 0 && !tilknyttetFullmakt && henlagtårsakTrukketTilbake; + + const harValgtSendBrevOgSkalViseFramValg = harHuketAvSendBrev && skalViseTilleggsvalg; + return ( {({ ansvarligSaksbehandler }) => { @@ -105,14 +154,65 @@ export const HenleggModal: FC<{ behandling: Behandling }> = ({ behandling }) => }} ariaLabel={'Velg årsak til henleggelse av behandlingen'} > - settHenlagtårsak(årsak)} - > - Trukket tilbake - Feilregistrert - - {feilmelding && {feilmelding}} + + settHenlagtårsak(årsak)} + > + Trukket tilbake + Feilregistrert + + {skalViseTilleggsvalg && ( + <> + + + + { + settHarHuketAvSendBrev(true); + }} + > + Ja + + settHarHuketAvSendBrev(false)} + > + Nei + + + + + Forhåndsvis brev + + + )} + {feilmelding && ( + {feilmelding} + )} + {vergemål.length > 0 && henlagtårsakTrukketTilbake && ( + + { + 'Verge registrert på bruker. Brev om trukket søknad må sendes manuelt.' + } + + )} + {tilknyttetFullmakt && henlagtårsakTrukketTilbake && ( + + { + 'Fullmakt registrert på bruker. Brev om trukket søknad må sendes manuelt.' + } + + )} + ); }}