diff --git a/client/src/felleskomponenter/Kopiknapp.tsx b/client/src/felleskomponenter/Kopiknapp.tsx index 88c25e7b..cdddd18c 100644 --- a/client/src/felleskomponenter/Kopiknapp.tsx +++ b/client/src/felleskomponenter/Kopiknapp.tsx @@ -1,15 +1,16 @@ -import { CopyButton, Tooltip } from '@navikt/ds-react' +import { CopyButton, Tooltip, TooltipProps, CopyButtonProps } from '@navikt/ds-react' export interface KopiknappProps { tooltip: string - copyText: string + copyText: CopyButtonProps['copyText'] + placement?: TooltipProps['placement'] } export function Kopiknapp(props: KopiknappProps) { - const { tooltip, copyText } = props + const { tooltip, copyText, placement } = props return ( - - + + ) } diff --git a/client/src/saksbilde/Personlinje.tsx b/client/src/saksbilde/Personlinje.tsx index bd704d61..1b2f5b8e 100644 --- a/client/src/saksbilde/Personlinje.tsx +++ b/client/src/saksbilde/Personlinje.tsx @@ -1,16 +1,16 @@ +import { FigureCombinationIcon, FigureInwardIcon, FigureOutwardIcon } from '@navikt/aksel-icons' +import { HStack, Label, Link, Skeleton, Tag } from '@navikt/ds-react' +import { Children, ReactNode, SVGProps } from 'react' import { useNavigate } from 'react-router-dom' -import styled from 'styled-components' - -import { CopyButton, Link, Tag, Tooltip } from '@navikt/ds-react' -import { amplitude_taxonomy, logAmplitudeEvent } from '../utils/amplitude' -import { formaterFødselsnummer, formaterNavn, formaterTelefonnummer } from '../utils/formater' +import { Kopiknapp } from '../felleskomponenter/Kopiknapp.tsx' +import { Tekst } from '../felleskomponenter/typografi' import { hotsakTotalMinWidth } from '../GlobalStyles' -import { Etikett, Tekst } from '../felleskomponenter/typografi' import { usePersonContext } from '../personoversikt/PersonContext' import { AdressebeskyttelseAlert, Bruker, Kjønn, Person } from '../types/types.internal' -import { FigureCombinationIcon, FigureInwardIcon, FigureOutwardIcon } from '@navikt/aksel-icons' -import { beregnAlder } from '../utils/dato' +import { amplitude_taxonomy, logAmplitudeEvent } from '../utils/amplitude' +import { beregnAlder, formaterDato } from '../utils/dato' +import { formaterFødselsnummer, formaterNavn, formaterTelefonnummer } from '../utils/formater' export interface PersonlinjeProps { person?: Person | Bruker @@ -18,158 +18,130 @@ export interface PersonlinjeProps { } export function Personlinje({ person, loading }: PersonlinjeProps) { - if (loading) { - return - } else { - return - } -} - -export function LasterPersonlinje() { - return ( - - - - | - - | - - | - - | - - - ) -} - -function Kjønnsikon({ kjønn }: { kjønn: Kjønn }) { - switch (kjønn) { - case Kjønn.KVINNE: - return - case Kjønn.MANN: - return - default: - return - } -} - -function PersonlinjeContent({ person }: PersonlinjeProps) { const { setFodselsnummer } = usePersonContext() const navigate = useNavigate() + if (loading) return if (!person) return - const [adressebeskyttelse] = person.adressebeskyttelseOgSkjerming?.gradering || [] + const { kjønn, fødselsdato, fnr, brukernummer, telefon, dødsdato, adressebeskyttelseOgSkjerming } = person + const [adressebeskyttelse] = adressebeskyttelseOgSkjerming?.gradering || [] - const { fnr, brukernummer, kjønn, fødselsdato, telefon } = person return ( - {kjønn && } - { - logAmplitudeEvent(amplitude_taxonomy.PERSONOVERSIKT) - setFodselsnummer(fnr) - navigate('/personoversikt/saker') - }} - > -
- {`${formaterNavn(person)} (${fødselsdato && beregnAlder(fødselsdato)} år)`} -
- - | + + + + {fnr ? ( - <> + {`Fnr: ${formaterFødselsnummer(fnr)}`} - - - - + + ) : ( Fødselsnummer ikke tilgjengelig )} - {brukernummer && ( - <> - | + {`Brukernr: ${brukernummer}`} - - - - + + )} - {telefon && ( - <> - | + {`Tlf: ${formaterTelefonnummer(telefon)}`} - - - - + + + )} + {dødsdato && ( + + MORS {formaterDato(dødsdato)} + )} {adressebeskyttelse && ( - <> - | - - {AdressebeskyttelseAlert[adressebeskyttelse]} - - + + {AdressebeskyttelseAlert[adressebeskyttelse]} + )} - {person.adressebeskyttelseOgSkjerming?.skjermet && ( - <> - | - - Skjermet - - + {adressebeskyttelseOgSkjerming?.skjermet && ( + + Skjermet + )}
) } -const Container = styled.div` - display: flex; - align-items: center; - flex-shrink: 0; - height: 48px; - min-width: ${hotsakTotalMinWidth}; - box-sizing: border-box; - padding: 0 2rem; - background: var(--a-bg-subtle); - border-bottom: 1px solid var(--a-border-default); - color: var(--a-text-default); - - > svg { - margin-right: 0.5rem; - font-size: var(--a-font-size-heading-large); - } -` +export function LasterPersonlinje() { + return ( + + + + + + {Array.from({ length: 4 }, (_, key) => ( + + ))} + + ) +} -const Separator = styled.div` - margin: 0 1rem 0 1rem; -` +function Element({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} -const LoadingText = styled.div` - @keyframes placeHolderShimmer { - 0% { - background-position: -468px 0; - } - 100% { - background-position: 468px 0; - } +function Kjønnsikon({ kjønn }: { kjønn?: Kjønn }) { + const iconProps: SVGProps = { + fontSize: 'var(--a-font-size-heading-large)', + } + switch (kjønn) { + case Kjønn.KVINNE: + return + case Kjønn.MANN: + return + default: + return } +} - animation-duration: 1.25s; - animation-fill-mode: forwards; - animation-iteration-count: infinite; - animation-name: placeHolderShimmer; - animation-timing-function: linear; - background: transparent; - background: linear-gradient(to right, transparent 0%, #eaeaea 16%, transparent 33%); - background-size: 800px 104px; - border-radius: 4px; - height: 22px; - width: 150px; - margin: 4px 0; -` +function Container({ children }: { children?: ReactNode }) { + return ( + + {Children.map(children, (child, index) => ( + <> + {child && index > 0 &&
|
} + {child} + + ))} +
+ ) +} diff --git a/client/src/types/types.internal.ts b/client/src/types/types.internal.ts index 8e0503db..1e25e5a2 100644 --- a/client/src/types/types.internal.ts +++ b/client/src/types/types.internal.ts @@ -298,6 +298,7 @@ export interface Bruker extends HarNavn { brukernummer?: string kontonummer?: string adressebeskyttelseOgSkjerming: AdressebeskyttelseOgSkjerming + dødsdato?: string } export enum Adressebeskyttelse { @@ -922,6 +923,7 @@ export interface Person extends Navn, HarNavn { kommune: Kommune bydel?: Bydel adressebeskyttelseOgSkjerming: AdressebeskyttelseOgSkjerming + dødsdato?: string } export interface Saksoversikt {