From 00f7ee6de1e203d1827c58396a4ada573af10714 Mon Sep 17 00:00:00 2001 From: Ludvig Hozman Date: Fri, 7 Feb 2025 15:36:12 +0100 Subject: [PATCH] =?UTF-8?q?Lenke=20for=20=C3=A5=20laste=20ned=20dokument?= =?UTF-8?q?=20som=20ikke=20kan=20vises?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Og fjerne ikke-fungerende last-ned knapp. --- .../saksdokumenter/DokumentLenke.tsx | 29 +++++++------------ src/components/ObjectHttpFeilHandtering.tsx | 23 +++++++++++++++ 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/app/personside/infotabs/saksoversikt/saksdokumenter/DokumentLenke.tsx b/src/app/personside/infotabs/saksoversikt/saksdokumenter/DokumentLenke.tsx index cb51ad344..be6fa840e 100644 --- a/src/app/personside/infotabs/saksoversikt/saksdokumenter/DokumentLenke.tsx +++ b/src/app/personside/infotabs/saksoversikt/saksdokumenter/DokumentLenke.tsx @@ -1,12 +1,8 @@ import { Link, useLocation } from '@tanstack/react-router'; import { Element, Undertekst } from 'nav-frontend-typografi'; -import styled from 'styled-components'; import { type Dokument, DokumentStatus, type Journalpost } from '../../../../../models/saksoversikt/journalpost'; import type { Sakstema } from '../../../../../models/saksoversikt/sakstema'; -import theme from '../../../../../styles/personOversiktTheme'; -import { getSaksdokumentUrl } from '../dokumentvisning/getSaksdokumentUrl'; import { erSakerFullscreen } from '../utils/erSakerFullscreen'; -import SvgDownload from './../../../../../svg/download.svg'; interface Props { dokument: Dokument; @@ -15,19 +11,6 @@ interface Props { journalPost: Journalpost; } -const LastNedLenke = styled.a` - margin-left: 0.5rem; - - svg { - position: relative; - top: 2px; - } - - &:hover { - color: ${theme.color.lenkeSelected}; - } -`; - const dokumentTekst = (dokument: Dokument) => { return ( dokument.tittel + @@ -56,7 +39,7 @@ function DokumentLenke(props: Props) { ); } - const saksdokumentUrl = getSaksdokumentUrl(journalpostId, dokumentReferanse); + // const saksdokumentUrl = getSaksdokumentUrl(journalpostId, dokumentReferanse); return ( <> {apneDokumentINyttVindu ? ( @@ -71,16 +54,24 @@ function DokumentLenke(props: Props) { ) : ( {dokumentTekst(props.dokument)} )} + + {/* + // Disabled as the link is wrong and does not work + Last ned pdf + */} ); } diff --git a/src/components/ObjectHttpFeilHandtering.tsx b/src/components/ObjectHttpFeilHandtering.tsx index 796d531d1..1f7e85eba 100644 --- a/src/components/ObjectHttpFeilHandtering.tsx +++ b/src/components/ObjectHttpFeilHandtering.tsx @@ -1,10 +1,22 @@ +import { Normaltekst } from 'nav-frontend-typografi'; import type * as React from 'react'; import { type ReactNode, useEffect, useState } from 'react'; +import styled from 'styled-components'; import { postConfig } from '../api/config'; import { CenteredLazySpinner } from './LazySpinner'; type Omit = Pick>; +const supportedFileTypes = ['application/pdf', '']; +const canEmbedFileType = (contentType: string) => supportedFileTypes.includes(contentType.toLowerCase()); + +const DownloadLink = styled.div` + flex: 1 1 auto; + display: flex; + justify-content: center; + align-items: center; +`; + interface Props extends Omit, HTMLObjectElement>, 'onError'> { url: string; @@ -49,6 +61,17 @@ export function ObjectHttpFeilHandtering({ url, fnr, onError, children, ...rest return <>{children}; } + if (!canEmbedFileType(contentType)) { + return ( + + + Vedlegget kan ikke vises i nettleseren. Last ned filen for å se innholdet:{' '} + Last ned dokument + + + ); + } + //biome-ignore lint/correctness/noChildrenProp: biome migration //biome-ignore lint/a11y/useAltText: biome migration return ;