Skip to content
This repository has been archived by the owner on Jun 7, 2024. It is now read-only.

Commit

Permalink
c kopierer endre situasjon til ny mappe for nytt api
Browse files Browse the repository at this point in the history
  • Loading branch information
zrrrzzt committed Feb 27, 2024
1 parent 657b58a commit c80677b
Show file tree
Hide file tree
Showing 12 changed files with 2,128 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/dev.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'core-js';
import 'intersection-observer';
import { createRoot } from 'react-dom/client';
import App from './main';
import App from './main-standard';
import DemoDashboard from './demo/demo-dashboard';
import './index.css';

Expand Down
86 changes: 86 additions & 0 deletions src/komponenter/endre-situasjon-nytt-api/dagpenger-info.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { VeiledningsProps } from './veiledning';
import { Link, ReadMore } from '@navikt/ds-react';
import { dagpengerSoknadLenke } from '../../innhold/lenker';
import prettyPrintDato from '../../utils/pretty-print-dato';
import { plussDager } from '../../utils/date-utils';
import { PermittertSvar } from '../../models/endring-av-situasjon';

const OPPSIGELSE = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { oppsigelseDato, sisteArbeidsdagDato } = tilleggsData;

return (
<>
Du bør sende inn <Link href={dagpengerSoknadLenke}>ny søknad om ordinære dagpenger</Link> mellom{' '}
{prettyPrintDato(plussDager(new Date(oppsigelseDato!), -7).toISOString())} og{' '}
{prettyPrintDato(sisteArbeidsdagDato!)}.
<ReadMore header={'Hva baserer vi denne veiledningen på?'}>
<p>Du har oppgitt at siste dag med lønn fra arbeidsgiver er {prettyPrintDato(sisteArbeidsdagDato!)}.</p>
<p>
Du kan tidligst kan få dagpenger fra den dagen du sender inn en ny søknad om ordinære dagpenger,
<br />
og du kan tidligst sende inn søknad 7 dager før datoen du søker om å få dagpenger fra.
</p>
<p>Reglene er sånn at du ikke kan få utbetalt dagpenger for datoer før du har sendt inn søknaden.</p>
<p>Du kan lese mer om regelverket for dagpenger her.</p>
</ReadMore>
</>
);
};

const NY_JOBB = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

return (
<>
Du vil kunne motta dagpenger i oppsigelsesperioden.
<br />
Oppsigelsestid når du er permittert er 14 dager.
</>
);
};

const MIDLERTIDIG_JOBB = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

return <>Dagpengeutbetalingene vil avhenge av hvor mye du jobber og lønnen i den midlertidige jobben.</>;
};

const KONKURS = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { sisteArbeidsdagDato } = tilleggsData;

return (
<>
Du kan <Link href={dagpengerSoknadLenke}>søke om dagpenger som forskudd på lønnsgaranti</Link>, mellom{' '}
{prettyPrintDato(plussDager(new Date(sisteArbeidsdagDato!), -7).toISOString())} og{' '}
{prettyPrintDato(sisteArbeidsdagDato!)}
</>
);
};

function DagpengerInfo(props: VeiledningsProps) {
const { valgtSituasjon } = props;

if (valgtSituasjon === PermittertSvar.OPPSIGELSE) {
return <OPPSIGELSE {...props} />;
} else if (valgtSituasjon === PermittertSvar.MIDLERTIDIG_JOBB) {
return <MIDLERTIDIG_JOBB {...props} />;
} else if (valgtSituasjon === PermittertSvar.KONKURS) {
return <KONKURS {...props} />;
} else if (valgtSituasjon === PermittertSvar.NY_JOBB) {
return <NY_JOBB {...props} />;
}
return null;
}
export default DagpengerInfo;
81 changes: 81 additions & 0 deletions src/komponenter/endre-situasjon-nytt-api/les-igjen-modal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import React from 'react';
import { Button, Modal } from '@navikt/ds-react';

import Veiledning from './veiledning';
import { loggAktivitet } from '../../metrics/metrics';

import flex from '../../flex.module.css';

interface LesIgjenModalProps {
openModal: boolean;
setOpenModal: React.Dispatch<React.SetStateAction<boolean>>;
amplitudeData: any;
besvarelse: any | null;
}

const LesIgjenModal = (props: LesIgjenModalProps) => {
const { openModal, setOpenModal, besvarelse, amplitudeData } = props;
const valgtSituasjon = besvarelse?.dinSituasjon.verdi;
const tilleggsData = besvarelse?.dinSituasjon.tilleggsData;

const Innhold = (props: any) => {
const [openedDagpenger, setOpenedDagpenger] = React.useState(false);
const [openedRegistrering, setOpenedRegistrering] = React.useState(false);
const { valgtSituasjon, tilleggsData, amplitudeData } = props;

const handleReadmoreDagpenger = (komponent: string) => {
if (!openedDagpenger) {
loggAktivitet({
aktivitet: 'Leser dagpengeveiledning',
komponent,
...amplitudeData,
});
setOpenedDagpenger(true);
}
};

const handleReadmoreRegistrering = (komponent: string) => {
if (!openedRegistrering) {
loggAktivitet({
aktivitet: 'Leser registreringsveiledning',
komponent,
...amplitudeData,
});
setOpenedRegistrering(true);
}
};

if (!valgtSituasjon || !tilleggsData) return null;

return (
<>
<Veiledning
valgtSituasjon={valgtSituasjon}
tilleggsData={tilleggsData}
handleReadmoreRegistrering={handleReadmoreRegistrering}
handleReadmoreDagpenger={handleReadmoreDagpenger}
/>
<div className={`${flex.flex} ${flex.flexEnd}`}>
<Button variant={'primary'} onClick={() => setOpenModal(false)}>
Lukk
</Button>
</div>
</>
);
};

return (
<Modal
open={openModal}
onClose={() => setOpenModal(false)}
width={'medium'}
header={{ heading: 'Jobbsituasjonen min har endret seg', size: 'medium' }}
>
<Modal.Body>
<Innhold tilleggsData={tilleggsData} valgtSituasjon={valgtSituasjon} amplitudeData={amplitudeData} />
</Modal.Body>
</Modal>
);
};

export default LesIgjenModal;
124 changes: 124 additions & 0 deletions src/komponenter/endre-situasjon-nytt-api/meldekort-info.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import prettyPrintDato from '../../utils/pretty-print-dato';
import { ReadMore } from '@navikt/ds-react';
import { plussDager } from '../../utils/date-utils';
import { VeiledningsProps } from './veiledning';
import { PermittertSvar } from '../../models/endring-av-situasjon';

const OPPSIGELSE = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { oppsigelseDato, sisteArbeidsdagDato } = tilleggsData;

return (
<>
Frem til {prettyPrintDato(oppsigelseDato!)} kan du få utbetalt dagpenger som permittert.
<br />
Det er derfor viktig at du fortsetter å sende inn meldekortene frem til og med perioden som dekker{' '}
{prettyPrintDato(oppsigelseDato!)}.
<ReadMore header={'Hva baserer vi denne veiledningen på?'}>
<p>
Når du blir oppsagt er den siste dagen du får dagpenger som permittert for den dagen du mottok
beskjeden om at du ble oppsagt.
</p>
<p>Du har oppgitt at du fikk denne beskjeden {prettyPrintDato(oppsigelseDato!)}</p>
<p>
Arbeidsgiveren din har ansvaret for å betale lønn fra{' '}
{prettyPrintDato(plussDager(new Date(oppsigelseDato!), 1).toISOString())} frem til og med{' '}
{prettyPrintDato(sisteArbeidsdagDato!)}.
</p>
<p>Du kan lese mer om regelverket for permittering her</p>
</ReadMore>
</>
);
};
const TILBAKE_TIL_JOBB = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { forsteArbeidsdagDato } = tilleggsData;

return (
<>
Du må levere meldekort frem til og med meldekortet som rapporterer for{' '}
{prettyPrintDato(plussDager(new Date(forsteArbeidsdagDato!), -1).toISOString())}.
</>
);
};

const NY_JOBB = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { sisteArbeidsdagDato } = tilleggsData;

return (
<>
Du må levere meldekort frem til og med meldekortet som rapporterer for{' '}
{prettyPrintDato(sisteArbeidsdagDato!)}.
</>
);
};

const KONKURS = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { sisteArbeidsdagDato } = tilleggsData;

return (
<>
Du må levere meldekort frem til og med meldekortet som rapporterer for{' '}
{prettyPrintDato(sisteArbeidsdagDato!)}.
</>
);
};

const MIDLERTIDIG_JOBB = (props: VeiledningsProps) => {
return <>Du må fortsette å sende inn meldekort i perioden du er midlertidig i arbeid.</>;
};

const ENDRET_PERMITTERINGSPROSENT = (props: VeiledningsProps) => {
return <>Du må fortsette å sende meldekort hver 14. dag.</>;
};
const SAGT_OPP = (props: VeiledningsProps) => {
const { tilleggsData } = props;

if (!tilleggsData) return null;

const { oppsigelseDato } = tilleggsData;

return (
<>
Frem til {prettyPrintDato(oppsigelseDato!)} kan du få utbetalt dagpenger som permittert.
<br />
Det er derfor viktig at du fortsetter å sende inn meldekortene frem til og med perioden som dekker{' '}
{prettyPrintDato(oppsigelseDato!)}.
</>
);
};
function MeldekortInfo(props: VeiledningsProps) {
const { valgtSituasjon } = props;

if (valgtSituasjon === PermittertSvar.OPPSIGELSE) {
return <OPPSIGELSE {...props} />;
} else if (valgtSituasjon === PermittertSvar.TILBAKE_TIL_JOBB) {
return <TILBAKE_TIL_JOBB {...props} />;
} else if (valgtSituasjon === PermittertSvar.MIDLERTIDIG_JOBB) {
return <MIDLERTIDIG_JOBB {...props} />;
} else if (valgtSituasjon === PermittertSvar.KONKURS) {
return <KONKURS {...props} />;
} else if (valgtSituasjon === PermittertSvar.NY_JOBB) {
return <NY_JOBB {...props} />;
} else if (valgtSituasjon === PermittertSvar.ENDRET_PERMITTERINGSPROSENT) {
return <ENDRET_PERMITTERINGSPROSENT {...props} />;
} else if (valgtSituasjon === PermittertSvar.SAGT_OPP) {
return <SAGT_OPP {...props} />;
}
return null;
}
export default MeldekortInfo;
49 changes: 49 additions & 0 deletions src/komponenter/endre-situasjon-nytt-api/min-situasjon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { useAmplitudeData } from '../hent-initial-data/amplitude-provider';
import { useArbeidssokerPerioder } from '../../contexts/arbeidssoker';
import { useBesvarelse } from '../../contexts/besvarelse';
import { InnloggingsNiva, useAutentiseringData } from '../../contexts/autentisering';

import Sammendrag from './sammendrag';
import beregnArbeidssokerperioder from '../../lib/beregn-arbeidssokerperioder';
import AiAInViewport from '../aia-in-viewport/aia-in-viewport';
import ErRendret from '../er-rendret/er-rendret';
import { useBrukerregistreringData } from '../../hooks/use-brukerregistrering-data';
import { Box, Detail } from '@navikt/ds-react';
import useSkalBrukeTabs from '../../hooks/use-skal-bruke-tabs';

function MinSituasjon() {
const brukerregistreringData = useBrukerregistreringData();
const arbeidssokerperiodeData = useArbeidssokerPerioder();
const { amplitudeData } = useAmplitudeData();
const autentiseringData = useAutentiseringData();
const { besvarelse } = useBesvarelse();
const besvarelseData = besvarelse ? besvarelse.besvarelse : null;

const { aktivPeriodeStart } = beregnArbeidssokerperioder(arbeidssokerperiodeData);
const { opprettetDato, manueltRegistrertAv } = brukerregistreringData?.registrering || {};
const { endretTidspunkt, endretAv, erBesvarelsenEndret } = besvarelse || {};
const kanViseKomponent = autentiseringData.securityLevel === InnloggingsNiva.LEVEL_4;
const skalVisesITabs = useSkalBrukeTabs();
if (!kanViseKomponent) return null;

return (
<Box>
<ErRendret loggTekst="Rendrer endring av situasjon" />
<Box>
{!skalVisesITabs && <Detail uppercase>Min situasjon</Detail>}
<Sammendrag
startDato={opprettetDato || aktivPeriodeStart}
manueltRegistrertAv={manueltRegistrertAv}
amplitudeData={amplitudeData}
besvarelse={besvarelseData}
endretTidspunkt={endretTidspunkt}
endretAv={endretAv}
erBesvarelsenEndret={erBesvarelsenEndret}
/>
</Box>
<AiAInViewport loggTekst="Viser endring av situasjon" />
</Box>
);
}

export default MinSituasjon;
Loading

0 comments on commit c80677b

Please sign in to comment.