Skip to content

Commit

Permalink
♻️ Bruk ny generell komponent for tidligere og nyeste på vent-hendelse
Browse files Browse the repository at this point in the history
Co-authored-by: Elias Andreassen Thøgersen <[email protected]>
  • Loading branch information
navelgen and elitho committed Jan 7, 2025
1 parent 89c3a7c commit 5c7fe68
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 135 deletions.
22 changes: 1 addition & 21 deletions src/routes/saksbilde/historikk/Historikk.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import { InntektsmeldingDokumentHendelse } from '@saksbilde/historikk/hendelser/
import { SøknadDokumentHendelse } from '@saksbilde/historikk/hendelser/dokument/SøknadDokumentHendelse';
import { VedtakDokumentHendelse } from '@saksbilde/historikk/hendelser/dokument/VedtakDokumenthendelse';
import { FjernFraPåVentHendelse } from '@saksbilde/historikk/hendelser/påvent/FjernFraPåVentHendelse';
import { NyestePåVentHendelse } from '@saksbilde/historikk/hendelser/påvent/NyestePåVentHendelse';
import { TidligerePåVentHendelse } from '@saksbilde/historikk/hendelser/påvent/TidligerePåVentHendelse';
import { TotrinnsvurderingAttestertHendelse } from '@saksbilde/historikk/hendelser/totrinnsvurdering/TotrinnsvurderingAttestertHendelse';
import { TotrinnsvurderingTilGodkjenningHendelse } from '@saksbilde/historikk/hendelser/totrinnsvurdering/TotrinnsvurderingTilGodkjenningHendelse';
import { useFetchPersonQuery } from '@state/person';
Expand All @@ -39,6 +37,7 @@ import { Sykepengegrunnlagskjønnsfastsettinghendelse } from './hendelser/Sykepe
import { Utbetalinghendelse } from './hendelser/Utbetalinghendelse';
import { VedtakBegrunnelsehendelse } from './hendelser/VedtakBegrunnelsehendelse';
import { Notathendelse } from './hendelser/notat/Notathendelse';
import { PåVentHendelse } from './hendelser/påvent/PåVentHendelse';
import { useFilterState, useFilteredHistorikk, useShowHistorikkState, useShowHøyremenyState } from './state';

import styles from './Historikk.module.css';
Expand Down Expand Up @@ -232,25 +231,6 @@ const HistorikkHendelse = ({ hendelse, person }: HistorikkHendelseProps) => {
}
};

interface PåVentHendelseProps {
hendelse: HistorikkhendelseObject;
person: PersonFragment;
}

const PåVentHendelse = ({ hendelse, person }: PåVentHendelseProps) => {
if (hendelse.erNyestePåVentInnslag) {
return <NyestePåVentHendelse key={hendelse.id} {...hendelse} person={person} />;
} else {
return (
<TidligerePåVentHendelse
key={hendelse.id}
{...hendelse}
erEndring={hendelse.historikktype === PeriodehistorikkType.EndrePaVent}
/>
);
}
};

export const HistorikkSkeleton = (): ReactElement => {
return (
<HStack className={styles.historikkskeletonwrapper}>
Expand Down
6 changes: 5 additions & 1 deletion src/routes/saksbilde/historikk/hendelser/Expandable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ import styles from './Expandable.module.css';
interface ExpandableProps extends PropsWithChildren {
expandText?: string;
collapseText?: string;
flattened?: boolean;
className?: string;
}

export const Expandable = ({
expandText = 'Vis mer',
collapseText = 'Vis mindre',
flattened = false,
className,
children,
}: ExpandableProps): ReactElement => {
Expand All @@ -27,7 +29,9 @@ export const Expandable = ({
setExpanded((expanded) => !expanded);
};

return (
return flattened ? (
<div>{children}</div>
) : (
<div
role="button"
tabIndex={0}
Expand Down
67 changes: 67 additions & 0 deletions src/routes/saksbilde/historikk/hendelser/Historikkhendelse.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import React, { PropsWithChildren, ReactElement } from 'react';

import { VStack } from '@navikt/ds-react';

import { Kommentar, Maybe, PeriodehistorikkType } from '@io/graphql';
import { ExpandableHendelse } from '@saksbilde/historikk/hendelser/ExpandableHendelse';
import { Hendelse } from '@saksbilde/historikk/hendelser/Hendelse';
import { HendelseDate } from '@saksbilde/historikk/hendelser/HendelseDate';
import { KommentarSeksjon } from '@saksbilde/historikk/komponenter/kommentarer/KommentarSeksjon';
import { Kommentarer } from '@saksbilde/historikk/komponenter/kommentarer/Kommentarer';
import { DateString } from '@typer/shared';

type HistorikkhendelseProps = {
erNyesteHendelseAvType: boolean;
historikkinnslagId: number;
historikktype: PeriodehistorikkType;
timestamp: DateString;
dialogRef: Maybe<number>;
saksbehandler: Maybe<string>;
kommentarer: Array<Kommentar>;
title: string;
icon?: ReactElement;
kontekstknapp?: ReactElement;
erNyestePåVentInnslag?: boolean;
};

export const Historikkhendelse = ({
erNyesteHendelseAvType,
historikktype,
saksbehandler,
timestamp,
dialogRef,
historikkinnslagId,
kommentarer,
title,
icon,
kontekstknapp,
children,
}: PropsWithChildren<HistorikkhendelseProps>): ReactElement => {
return erNyesteHendelseAvType ? (
<Hendelse title={title} icon={icon}>
{kontekstknapp}
<HendelseDate timestamp={timestamp} ident={saksbehandler} />
<VStack gap="2">
{children}
<KommentarSeksjon
kommentarer={kommentarer}
dialogRef={dialogRef}
historikkinnslagId={historikkinnslagId}
historikktype={historikktype}
/>
</VStack>
</Hendelse>
) : (
<ExpandableHendelse
tittel={title}
ikon={icon}
tidsstempel={timestamp}
saksbehandler={saksbehandler ?? undefined}
>
<VStack gap="2">
{children}
{kommentarer && <Kommentarer kommentarer={kommentarer} />}
</VStack>
</ExpandableHendelse>
);
};

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import React from 'react';

import { BodyLong, BodyShort, HStack } from '@navikt/ds-react';

import { PeriodehistorikkType, PersonFragment } from '@io/graphql';
import { Expandable } from '@saksbilde/historikk/hendelser/Expandable';
import { PåVentIkon } from '@saksbilde/historikk/hendelser/HendelseIkon';
import { Historikkhendelse } from '@saksbilde/historikk/hendelser/Historikkhendelse';
import { PåVentDropdown } from '@saksbilde/historikk/hendelser/påvent/PåVentDropdown';
import { ÅrsakListe } from '@saksbilde/historikk/hendelser/påvent/ÅrsakListe';
import { useActivePeriod } from '@state/periode';
import { HistorikkhendelseObject } from '@typer/historikk';
import { somNorskDato } from '@utils/date';
import { isBeregnetPeriode } from '@utils/typeguards';

interface PåVentHendelseProps {
hendelse: HistorikkhendelseObject;
person: PersonFragment;
}

export const PåVentHendelse = ({ hendelse, person }: PåVentHendelseProps) => {
const aktivPeriode = useActivePeriod(person);
const erAktivPeriodePåVent = isBeregnetPeriode(aktivPeriode) && aktivPeriode?.paVent !== null;
return (
<Historikkhendelse
erNyesteHendelseAvType={hendelse.erNyestePåVentInnslag ?? false}
title={`Lagt på vent${hendelse.historikktype === PeriodehistorikkType.EndrePaVent ? ' – endret' : ''}`}
icon={<PåVentIkon />}
timestamp={hendelse.timestamp}
saksbehandler={hendelse.saksbehandler}
kontekstknapp={
erAktivPeriodePåVent ? (
<PåVentDropdown
person={person}
årsaker={hendelse.årsaker}
notattekst={hendelse.notattekst}
frist={hendelse.frist}
/>
) : undefined
}
kommentarer={hendelse.kommentarer}
dialogRef={hendelse.dialogRef}
historikkinnslagId={hendelse.historikkinnslagId}
historikktype={hendelse.historikktype}
>
<ÅrsakListe årsaker={hendelse.årsaker} />
<HStack gap="1">
<BodyShort>Frist:</BodyShort>
<BodyShort weight="semibold">{somNorskDato(hendelse.frist ?? undefined)}</BodyShort>
</HStack>
{!!hendelse.notattekst && (
<Expandable flattened={!hendelse.erNyestePåVentInnslag}>
<BodyShort weight="semibold">Notat</BodyShort>
<BodyLong style={{ whiteSpace: 'pre-wrap' }}>{hendelse.notattekst}</BodyLong>
</Expandable>
)}
</Historikkhendelse>
);
};

This file was deleted.

0 comments on commit 5c7fe68

Please sign in to comment.