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

Dev/amplitude endret situasjon #874

Merged
merged 16 commits into from
Aug 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/contexts/besvarelse.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { createContext, ReactNode, useContext, useEffect, useState } from 'react';

import { useFeatureToggleData, FeatureToggles } from './feature-toggles';
import { useAmplitudeData } from '../komponenter/hent-initial-data/amplitude-provider';

import { fetchToJson } from '../ducks/api-utils';
import { BESVARELSE_URL, OPPRETT_DIALOG_URL, requestConfig } from '../ducks/api';
Expand Down Expand Up @@ -172,6 +173,7 @@ async function opprettDialog(data: {

function BesvarelseProvider(props: { children: ReactNode }) {
const featureToggles = useFeatureToggleData();
const { oppdaterAmplitudeData } = useAmplitudeData();
const [besvarelse, settBesvarelse] = useState<BesvarelseResponse>(null);

const erToggletPa = featureToggles[FeatureToggles.BRUK_ENDRING_AV_SITUASJON];
Expand Down Expand Up @@ -208,6 +210,14 @@ function BesvarelseProvider(props: { children: ReactNode }) {
}
}, [erToggletPa]);

useEffect(() => {
if (besvarelse?.erBesvarelsenEndret === true) {
oppdaterAmplitudeData({
endretSituasjon: besvarelse.besvarelse?.dinSituasjon?.verdi || 'N/A',
});
}
}, [besvarelse]);

const contextValue = {
besvarelse,
lagreBesvarelse,
Expand Down
1 change: 1 addition & 0 deletions src/komponenter/endre-situasjon/min-situasjon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ function MinSituasjon(props: any) {
const kanViseKomponent = autentiseringData.securityLevel === InnloggingsNiva.LEVEL_4;

const endretStyle = erBesvarelsenEndret ? { background: 'var(--a-blue-50)' } : {};

if (!kanViseKomponent) return null;

return (
Expand Down
18 changes: 15 additions & 3 deletions src/komponenter/hent-initial-data/amplitude-provider.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import * as React from 'react';
import { createContext, useContext } from 'react';
import ukerFraDato from '@alheimsins/uker-fra-dato';

import { InnloggingsNiva, useAutentiseringData } from '../../contexts/autentisering';
import { DinSituasjonSvar, useBrukerregistreringData } from '../../contexts/brukerregistrering';
import { OppfolgingContext } from '../../contexts/oppfolging';
import { useBrukerinfoData } from '../../contexts/bruker-info';
import { FeautreToggleData, useFeatureToggleData } from '../../contexts/feature-toggles';
import { useArbeidssokerPerioder, useUnderOppfolging } from '../../contexts/arbeidssoker';

import { OppfolgingContext } from '../../contexts/oppfolging';
import grupperGeografiskTilknytning from '../../utils/grupper-geografisk-tilknytning';
import beregnArbeidssokerperioder from '../../lib/beregn-arbeidssokerperioder';
import dagerFraDato from '../../utils/dager-fra-dato';
import { AmplitudeData } from '../../metrics/amplitude-utils';
import { useArbeidssokerPerioder, useUnderOppfolging } from '../../contexts/arbeidssoker';
import * as SprakValg from '../../contexts/sprak';
import beregnBrukergruppe from '../../lib/beregn-brukergruppe';

Expand All @@ -36,6 +38,7 @@ export const initialAmplitudeData: AmplitudeData = {
buildTimestamp: new Date().toISOString(),
erSykmeldtMedArbeidsgiver: 'ukjent',
dinSituasjon: DinSituasjonSvar.INGEN_VERDI,
endretSituasjon: 'INGEN_DATA',
reservasjonKRR: 'ukjent',
aktiveFeatureToggles: [],
sprakValgFraCookie: 'IKKE_VALGT',
Expand Down Expand Up @@ -148,15 +151,24 @@ const AmplitudeProvider = (props: { children: React.ReactNode }) => {

const [amplitudeData, setAmplitudeData] = React.useState(data);

/*
const oppdaterAmplitudeData = React.useCallback(
(data: Partial<AmplitudeData>) => {
setAmplitudeData({
...amplitudeData,
...data,
});
},
[amplitudeData]
[amplitudeData],
);
*/

const oppdaterAmplitudeData = (data: Partial<AmplitudeData>) => {
setAmplitudeData((amplitudeData) => ({
...amplitudeData,
...data,
}));
};

return (
<AmplitudeContext.Provider value={{ amplitudeData, oppdaterAmplitudeData }}>
Expand Down
3 changes: 3 additions & 0 deletions src/metrics/amplitude-utils.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// tslint:disable align no-any
import amplitude from 'amplitude-js';

import { AMPLITUDE_API_KEY_PROD, AMPLITUDE_API_KEY_TEST, AMPLITUDE_ENDPOINT } from '../utils/konstanter';
import { InnloggingsNiva } from '../contexts/autentisering';
import { erProduksjon } from '../utils/app-state-utils';
import { DinSituasjonSvar, ForeslattInnsatsgruppe } from '../contexts/brukerregistrering';
import { PermittertSvar } from '../models/endring-av-situasjon';
import * as SprakValg from '../contexts/sprak';
import { DagpengeStatus } from '../lib/beregn-dagpenge-status';
import { AntattInaktiveringsgrunn } from '../contexts/antatt-inaktiveringsgrunn';
Expand Down Expand Up @@ -52,6 +54,7 @@ export type AmplitudeData = {
buildTimestamp: string;
erSykmeldtMedArbeidsgiver: string;
dinSituasjon: DinSituasjonSvar;
endretSituasjon: 'INGEN_DATA' | 'N/A' | DinSituasjonSvar | PermittertSvar;
reservasjonKRR: string;
aktiveFeatureToggles: string[];
sprakValgFraCookie?: SprakValg.Sprak | 'IKKE_VALGT';
Expand Down
25 changes: 12 additions & 13 deletions src/tabs/aia-tabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ import { Tabs } from '@navikt/ds-react';
import { HTMLProps, useEffect, useState } from 'react';

import { useAmplitudeData } from '../komponenter/hent-initial-data/amplitude-provider';
import useHarGyldigBehovsvurdering from '../hooks/use-har-gyldig-behovsvurdering';
import { useBeregnDagpengestatus } from '../hooks/use-beregn-dagpengestatus';
import { Data, useMeldekortData } from '../hooks/use-meldekortdata';
import { useProfil } from '../contexts/profil';

import RegistrertTittel from '../komponenter/registrert-tittel/registrert-tittel';
import MinSituasjon from '../komponenter/min-situasjon/min-situasjon';
Expand All @@ -10,22 +14,18 @@ import DagpengerOgYtelser from '../komponenter/dagpenger/dagpenger-og-ytelser';
import Meldekort from '../komponenter/meldekort/meldekort';
import { loggAktivitet } from '../metrics/metrics';
import { hentQueryParam, settQueryParam } from '../utils/query-param-utils';

import tabStyles from './tabs.module.css';
import styles from '../innhold/innhold.module.css';
import useHarGyldigBehovsvurdering from '../hooks/use-har-gyldig-behovsvurdering';
import { DagpengeStatus } from '../lib/beregn-dagpenge-status';
import { useBeregnDagpengestatus } from '../hooks/use-beregn-dagpengestatus';
import { Data, useMeldekortData } from '../hooks/use-meldekortdata';
import { datoUtenTid } from '../utils/date-utils';
import { hentIDag } from '../utils/chrono';
import { Profil } from '../profil';
import {
beregnDagerEtterFastsattMeldedag,
beregnDagerTilInaktivering,
hentMeldekortForLevering,
} from '../utils/meldekort-utils';
import { Profil } from '../profil';
import { useProfil } from '../contexts/profil';

import tabStyles from './tabs.module.css';
import styles from '../innhold/innhold.module.css';

const QUERY_PARAM = 'aia.aktivTab';

Expand Down Expand Up @@ -114,17 +114,16 @@ function skalViseMeldekortVarsel(meldekortData?: Data) {
return meldekortForLevering.length === 1 && erInnenforTidsfrist;
}
const AiaTabs = () => {
const [aktivTab, settAktivTab] = useState<TabValue>(TabValue.MIN_SITUASJON);
const harGyldigBehovsvurdering = useHarGyldigBehovsvurdering();
const visPengestotteVarsel = harIkkeSoktDagpenger(useBeregnDagpengestatus(), useProfil().profil);
const visMeldekortVarsel = skalViseMeldekortVarsel(useMeldekortData().meldekortData);
const { amplitudeData } = useAmplitudeData();

const loggTabSkifte = (tab: string) => {
loggAktivitet({ aktivitet: `Bytter til ${tab}`, komponent: 'tabs', ...amplitudeData });
};

const [aktivTab, settAktivTab] = useState<TabValue>(TabValue.MIN_SITUASJON);
const harGyldigBehovsvurdering = useHarGyldigBehovsvurdering();
const visPengestotteVarsel = harIkkeSoktDagpenger(useBeregnDagpengestatus(), useProfil().profil);
const visMeldekortVarsel = skalViseMeldekortVarsel(useMeldekortData().meldekortData);

const onChangeTab = (tab: string) => {
settQueryParam(QUERY_PARAM, tab);
settAktivTab(tab as TabValue);
Expand Down
Loading