Skip to content

Commit c3081ae

Browse files
authored
Merge pull request #5271 from navikt/delete-useTitle
Fjerner useTitle og bruker React 19s støtte for title-tag
2 parents 9ce4c3e + fff32fd commit c3081ae

20 files changed

+45
-66
lines changed

Diff for: frontend/frontend-common/hooks/useTitle.ts

-6
This file was deleted.

Diff for: frontend/frontend-common/index.ts

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import useDebounce from "./hooks/useDebounce";
2-
import { useTitle } from "./hooks/useTitle";
32
import { SokeSelect } from "./components/SokeSelect";
43
import { shallowEquals } from "./utils/shallow-equals";
54
import { ControlledSokeSelect } from "./components/ControlledSokeSelect";
@@ -31,7 +30,6 @@ export {
3130
SokeSelect,
3231
ControlledSokeSelect,
3332
shallowEquals,
34-
useTitle,
3533
NavEnhetFilter,
3634
NavEnhetFilterTag,
3735
FilterTag,

Diff for: frontend/mr-admin-flate/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
<meta charset="UTF-8" />
66
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>NAV Tiltaksadministrasjon</title>
8+
<!-- <title>Nav Tiltaksadministrasjon</title> -->
99
</head>
1010

1111
<body>
1212
<div id="root"></div>
1313
<script type="module" src="/src/main.tsx"></script>
1414
</body>
1515

16-
</html>
16+
</html>

Diff for: frontend/mr-admin-flate/src/Forside.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { useTitle } from "@mr/frontend-common";
21
import { ForsidekortListe } from "./components/forsidekort/ForsidekortListe";
32
import { BrukerNotifikasjoner } from "./components/notifikasjoner/BrukerNotifikasjoner";
43
import { HeroBanner } from "./HeroBanner";
54

65
export function Forside() {
7-
useTitle("Nav Tiltaksadministrasjon");
86
return (
97
<main>
8+
<title>Nav Tiltaksadministrasjon</title>
109
<div className="bg-[var(--a-deepblue-800)] p-16 min-h-[15rem] w-full mb-6">
1110
<HeroBanner />
1211
</div>

Diff for: frontend/mr-admin-flate/src/pages/arbeidsbenk/ArbeidsbenkPage.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { ContentBox } from "@/layouts/ContentBox";
22
import { HeaderBanner } from "@/layouts/HeaderBanner";
33
import { Tiltakskode, Toggles } from "@mr/api-client-v2";
4-
import { useTitle } from "@mr/frontend-common";
54
import { BellDotFillIcon } from "@navikt/aksel-icons";
65
import { Tabs } from "@navikt/ds-react";
76
import { useSuspenseQuery } from "@tanstack/react-query";
@@ -10,7 +9,6 @@ import { useFeatureToggle } from "../../api/features/useFeatureToggle";
109
import { ulesteNotifikasjonerQuery } from "./notifikasjoner/notifikasjonerQueries";
1110

1211
export function ArbeidsbenkPage() {
13-
useTitle("Arbeidsbenk");
1412
const { pathname } = useLocation();
1513
const navigate = useNavigate();
1614

@@ -23,6 +21,7 @@ export function ArbeidsbenkPage() {
2321

2422
return (
2523
<main>
24+
<title>Arbeidsbenk</title>
2625
<HeaderBanner
2726
heading="Arbeidsbenk"
2827
harUndermeny

Diff for: frontend/mr-admin-flate/src/pages/arbeidsbenk/notifikasjoner/NotifikasjonerPage.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { useTitle } from "@mr/frontend-common";
21
import { Tabs } from "@navikt/ds-react";
32
import { useQuery } from "@tanstack/react-query";
43
import { Outlet, useLocation, useNavigate } from "react-router";
@@ -9,7 +8,6 @@ export function NotifikasjonerPage() {
98
const { data: leste } = useQuery({ ...lesteNotifikasjonerQuery });
109
const { data: uleste } = useQuery({ ...ulesteNotifikasjonerQuery });
1110
const navigate = useNavigate();
12-
useTitle("Notifikasjoner");
1311

1412
return (
1513
<main>

Diff for: frontend/mr-admin-flate/src/pages/arbeidsbenk/oppgaver/OppgaverPage.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useOppgaver } from "@/api/oppgaver/useOppgaver";
33
import { EmptyState } from "@/components/notifikasjoner/EmptyState";
44
import { Oppgave } from "@/components/oppgaver/Oppgave";
55
import { GetOppgaverResponse } from "@mr/api-client-v2";
6-
import { useOpenFilterWhenThreshold, useTitle } from "@mr/frontend-common";
6+
import { useOpenFilterWhenThreshold } from "@mr/frontend-common";
77
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
88
import { Select } from "@navikt/ds-react";
99
import { useAtom } from "jotai/index";
@@ -42,7 +42,6 @@ export function OppgaverPage() {
4242
// eslint-disable-next-line @typescript-eslint/no-unused-vars
4343
const [_, setTagsHeight] = useState(0);
4444
const [sorting, setSorting] = useState<OppgaverSorting>("nyeste");
45-
useTitle("Oppgaver");
4645
const [filter] = useAtom(oppgaverFilterAtom);
4746
const { data: tiltakstyper } = useTiltakstyper();
4847
const { data: regioner } = useRegioner();

Diff for: frontend/mr-admin-flate/src/pages/arrangor/ArrangorerPage.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ import { ArrangorerFilterTags } from "@/components/filter/ArrangorerFilterTags";
44
import { ArrangorIkon } from "@/components/ikoner/ArrangorIkon";
55
import { ArrangorerTabell } from "@/components/tabell/ArrangorerTabell";
66
import { ReloadAppErrorBoundary } from "@/ErrorBoundary";
7+
import { ContentBox } from "@/layouts/ContentBox";
78
import { HeaderBanner } from "@/layouts/HeaderBanner";
8-
import { useOpenFilterWhenThreshold, useTitle } from "@mr/frontend-common";
9+
import { useOpenFilterWhenThreshold } from "@mr/frontend-common";
910
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
1011
import { useState } from "react";
1112
import { NullstillKnappForArrangorer } from "./NullstillKnappForArrangorer";
12-
import { ContentBox } from "@/layouts/ContentBox";
1313

1414
export function ArrangorerPage() {
15-
useTitle("Arrangører");
1615
const [filterOpen, setFilterOpen] = useOpenFilterWhenThreshold(1450);
1716
const [tagsHeight, setTagsHeight] = useState(0);
1817

1918
return (
2019
<>
2120
<HeaderBanner heading="Arrangører" ikon={<ArrangorIkon />} />
21+
<title>Arrangører</title>
2222
<ReloadAppErrorBoundary>
2323
<ContentBox>
2424
<FilterAndTableLayout

Diff for: frontend/mr-admin-flate/src/pages/avtaler/AvtalePage.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { Brodsmule, Brodsmuler } from "@/components/navigering/Brodsmuler";
55
import { AvtalestatusTag } from "@/components/statuselementer/AvtalestatusTag";
66
import { useNavigateAndReplaceUrl } from "@/hooks/useNavigateWithoutReplacingUrl";
77
import { ContentBox } from "@/layouts/ContentBox";
8-
import { useTitle } from "@mr/frontend-common";
98
import { Heading, Tabs, VStack } from "@navikt/ds-react";
109
import React from "react";
1110
import { Outlet, useLocation, useMatch } from "react-router";
@@ -29,7 +28,6 @@ export function AvtalePage() {
2928
const { data: avtale } = useAvtale(avtaleId);
3029

3130
const brodsmuler = useAvtaleBrodsmuler(avtale?.id);
32-
useTitle(`Avtale ${avtale?.navn ? `- ${avtale.navn}` : ""}`);
3331

3432
const currentTab = () => {
3533
if (pathname.includes("gjennomforinger")) {
@@ -41,6 +39,7 @@ export function AvtalePage() {
4139

4240
return (
4341
<>
42+
<title>{`Avtale ${avtale?.navn ? `- ${avtale.navn}` : ""}`}</title>
4443
<Brodsmuler brodsmuler={brodsmuler} />
4544
<Header>
4645
<div className="flex justify-start gap-6 items-center flex-wrap">

Diff for: frontend/mr-admin-flate/src/pages/avtaler/AvtalerPage.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@ import { ContentBox } from "@/layouts/ContentBox";
1111
import { HeaderBanner } from "@/layouts/HeaderBanner";
1212
import { NullstillKnappForAvtaler } from "@/pages/avtaler/NullstillKnappForAvtaler";
1313
import { LagretDokumenttype } from "@mr/api-client-v2";
14-
import { LagredeFilterOversikt, useOpenFilterWhenThreshold, useTitle } from "@mr/frontend-common";
14+
import { LagredeFilterOversikt, useOpenFilterWhenThreshold } from "@mr/frontend-common";
1515
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
1616
import { TilToppenKnapp } from "@mr/frontend-common/components/tilToppenKnapp/TilToppenKnapp";
1717
import { useAtom } from "jotai/index";
1818
import { useState } from "react";
1919

2020
export function AvtalerPage() {
21-
useTitle("Avtaler");
2221
const [filterOpen, setFilterOpen] = useOpenFilterWhenThreshold(1450);
2322
const [tagsHeight, setTagsHeight] = useState(0);
2423
const { data: lagredeFilter = [] } = useLagredeFilter(LagretDokumenttype.AVTALE);
@@ -28,6 +27,7 @@ export function AvtalerPage() {
2827

2928
return (
3029
<>
30+
<title>Avtaler</title>
3131
<HeaderBanner heading="Oversikt over avtaler" harUndermeny ikon={<AvtaleIkon />} />
3232
<ReloadAppErrorBoundary>
3333
<ContentBox>

Diff for: frontend/mr-admin-flate/src/pages/gjennomforing/GjennomforingDetaljer.tsx

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { AmoKategoriseringDetaljer } from "@/components/amoKategorisering/AmoKat
44
import { Bolk } from "@/components/detaljside/Bolk";
55
import { Metadata, Separator } from "@/components/detaljside/Metadata";
66
import { NokkeltallDeltakere } from "@/components/gjennomforing/NokkeltallDeltakere";
7+
import { StengtHosArrangorTable } from "@/components/gjennomforing/stengt/StengtHosArrangorTable";
78
import { TiltakTilgjengeligForArrangor } from "@/components/gjennomforing/TilgjengeligTiltakForArrangor";
89
import { Laster } from "@/components/laster/Laster";
910
import { gjennomforingTekster } from "@/components/ledetekster/gjennomforingLedetekster";
@@ -13,22 +14,18 @@ import { ArrangorKontaktpersonDetaljer } from "@/pages/arrangor/ArrangorKontaktp
1314
import { Kontaktperson } from "@/pages/gjennomforing/Kontaktperson";
1415
import { formaterDato, formatertVentetid } from "@/utils/Utils";
1516
import { AvtaleDto, GjennomforingDto, GjennomforingOppstartstype } from "@mr/api-client-v2";
16-
import { useTitle } from "@mr/frontend-common";
1717
import { Lenke } from "@mr/frontend-common/components/lenke/Lenke";
1818
import { NOM_ANSATT_SIDE } from "@mr/frontend-common/constants";
1919
import { isKursTiltak } from "@mr/frontend-common/utils/utils";
2020
import { BodyShort, HelpText, HStack, Tag, VStack } from "@navikt/ds-react";
2121
import { Link } from "react-router";
22-
import { StengtHosArrangorTable } from "@/components/gjennomforing/stengt/StengtHosArrangorTable";
2322

2423
interface Props {
2524
gjennomforing: GjennomforingDto;
2625
avtale?: AvtaleDto;
2726
}
2827

2928
export function GjennomforingDetaljer({ gjennomforing, avtale }: Props) {
30-
useTitle(`Gjennomføring ${gjennomforing.navn ? `- ${gjennomforing.navn}` : null}`);
31-
3229
const navnPaaNavEnheterForKontaktperson = (enheterForKontaktperson: string[]): string => {
3330
return (
3431
gjennomforing?.navEnheter

Diff for: frontend/mr-admin-flate/src/pages/gjennomforing/GjennomforingInfo.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export function GjennomforingInfo() {
3030

3131
return (
3232
<div data-testid="gjennomforing_info-container">
33+
<title>{`Gjennomføring ${gjennomforing.navn ? `- ${gjennomforing.navn}` : null}`}</title>
3334
<Tabs defaultValue={activeTab}>
3435
<Tabs.List className="flex flex-row justify-between">
3536
<div>

Diff for: frontend/mr-admin-flate/src/pages/gjennomforing/GjennomforingerPage.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@ import { ContentBox } from "@/layouts/ContentBox";
1111
import { HeaderBanner } from "@/layouts/HeaderBanner";
1212
import { NullstillKnappForGjennomforinger } from "@/pages/gjennomforing/NullstillKnappForGjennomforinger";
1313
import { LagretDokumenttype } from "@mr/api-client-v2";
14-
import { LagredeFilterOversikt, useOpenFilterWhenThreshold, useTitle } from "@mr/frontend-common";
14+
import { LagredeFilterOversikt, useOpenFilterWhenThreshold } from "@mr/frontend-common";
1515
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
1616
import { TilToppenKnapp } from "@mr/frontend-common/components/tilToppenKnapp/TilToppenKnapp";
1717
import { useAtom } from "jotai/index";
1818
import { useState } from "react";
1919

2020
export function GjennomforingerPage() {
21-
useTitle("Gjennomføringer");
2221
const [filterOpen, setFilterOpen] = useOpenFilterWhenThreshold(1450);
2322
const [tagsHeight, setTagsHeight] = useState(0);
2423
const [filter, setFilter] = useAtom(gjennomforingfilterAtom);
@@ -27,6 +26,7 @@ export function GjennomforingerPage() {
2726

2827
return (
2928
<>
29+
<title>Gjennomføringer</title>
3030
<HeaderBanner heading="Oversikt over gjennomføringer" ikon={<GjennomforingIkon />} />
3131
<ContentBox>
3232
<FilterAndTableLayout

Diff for: frontend/mr-admin-flate/src/pages/tiltakstyper/DetaljerTiltakstypePage.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { Brodsmule, Brodsmuler } from "@/components/navigering/Brodsmuler";
44
import { TiltakstypestatusTag } from "@/components/statuselementer/TiltakstypestatusTag";
55
import { useNavigateAndReplaceUrl } from "@/hooks/useNavigateWithoutReplacingUrl";
66
import { ContentBox } from "@/layouts/ContentBox";
7-
import { useTitle } from "@mr/frontend-common";
87
import { Alert, Heading, Tabs } from "@navikt/ds-react";
98
import { Link, Outlet, useLocation, useMatch, useParams } from "react-router";
109
import { useTiltakstypeById } from "../../api/tiltakstyper/useTiltakstypeById";
@@ -15,8 +14,6 @@ export function DetaljerTiltakstypePage() {
1514
const { tiltakstypeId } = useParams();
1615
const { data: tiltakstype } = useTiltakstypeById();
1716

18-
useTitle(`Tiltakstyper ${tiltakstype?.navn ? `- ${tiltakstype.navn}` : ""}`);
19-
2017
const match = useMatch("/tiltakstyper/:tiltakstypeId/avtaler");
2118
const brodsmuler: (Brodsmule | undefined)[] = [
2219
{ tittel: "Tiltakstyper", lenke: "/tiltakstyper" },
@@ -37,6 +34,7 @@ export function DetaljerTiltakstypePage() {
3734

3835
return (
3936
<main>
37+
<title>{`Tiltakstyper ${tiltakstype?.navn ? `- ${tiltakstype.navn}` : ""}`}</title>
4038
<Brodsmuler brodsmuler={brodsmuler} />
4139
<Header>
4240
<TiltakstypeIkon />

Diff for: frontend/mr-admin-flate/src/pages/tiltakstyper/TiltakstyperPage.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ import { TiltakstypeTabell } from "@/components/tabell/TiltakstypeTabell";
33
import { ReloadAppErrorBoundary } from "@/ErrorBoundary";
44
import { ContentBox } from "@/layouts/ContentBox";
55
import { HeaderBanner } from "@/layouts/HeaderBanner";
6-
import { useTitle } from "@mr/frontend-common";
76
import { TilToppenKnapp } from "@mr/frontend-common/components/tilToppenKnapp/TilToppenKnapp";
87
import { Skeleton } from "@navikt/ds-react";
98
import { Suspense } from "react";
109

1110
export function TiltakstyperPage() {
12-
useTitle("Tiltakstyper");
1311
return (
1412
<>
13+
<title>Tiltakstyper</title>
1514
<HeaderBanner heading="Oversikt over tiltakstyper" ikon={<TiltakstypeIkon />} />
1615
<ContentBox>
1716
<ReloadAppErrorBoundary>

Diff for: frontend/mr-admin-flate/src/pages/tiltakstyper/avtaler/AvtalerForTiltakstypePage.tsx

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
import { LagredeFilterOversikt, useTitle, useOpenFilterWhenThreshold } from "@mr/frontend-common";
21
import { AvtaleFilterSchema, getAvtalerForTiltakstypeFilterAtom } from "@/api/atoms";
2+
import { useLagredeFilter } from "@/api/lagret-filter/useLagredeFilter";
3+
import { useSlettFilter } from "@/api/lagret-filter/useSlettFilter";
4+
import { AvtaleFilter } from "@/components/filter/AvtaleFilter";
5+
import { AvtaleFilterButtons } from "@/components/filter/AvtaleFilterButtons";
6+
import { AvtaleFiltertags } from "@/components/filter/AvtaleFiltertags";
37
import { AvtaleTabell } from "@/components/tabell/AvtaleTabell";
48
import { useGetTiltakstypeIdFromUrlOrThrow } from "@/hooks/useGetTiltakstypeIdFromUrl";
5-
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
6-
import { AvtaleFiltertags } from "@/components/filter/AvtaleFiltertags";
7-
import { AvtaleFilterButtons } from "@/components/filter/AvtaleFilterButtons";
8-
import { AvtaleFilter } from "@/components/filter/AvtaleFilter";
9-
import { useState } from "react";
9+
import { ContentBox } from "@/layouts/ContentBox";
1010
import { NullstillKnappForAvtaler } from "@/pages/avtaler/NullstillKnappForAvtaler";
11+
import { LagretDokumenttype } from "@mr/api-client-v2";
12+
import { LagredeFilterOversikt, useOpenFilterWhenThreshold } from "@mr/frontend-common";
13+
import { FilterAndTableLayout } from "@mr/frontend-common/components/filterAndTableLayout/FilterAndTableLayout";
1114
import { TilToppenKnapp } from "@mr/frontend-common/components/tilToppenKnapp/TilToppenKnapp";
1215
import { useAtom } from "jotai/index";
13-
import { LagretDokumenttype } from "@mr/api-client-v2";
14-
import { ContentBox } from "@/layouts/ContentBox";
15-
import { useSlettFilter } from "@/api/lagret-filter/useSlettFilter";
16-
import { useLagredeFilter } from "@/api/lagret-filter/useLagredeFilter";
16+
import { useState } from "react";
1717

1818
export function AvtalerForTiltakstypePage() {
19-
useTitle("Tiltakstyper - Avtaler");
20-
2119
const tiltakstypeId = useGetTiltakstypeIdFromUrlOrThrow();
2220
const filterAtom = getAvtalerForTiltakstypeFilterAtom(tiltakstypeId);
2321
const [filterOpen, setFilterOpen] = useOpenFilterWhenThreshold(1450);
@@ -29,6 +27,7 @@ export function AvtalerForTiltakstypePage() {
2927
return (
3028
<>
3129
<ContentBox>
30+
<title>Tiltakstyper - Avtaler</title>
3231
<FilterAndTableLayout
3332
filter={
3433
<AvtaleFilter

Diff for: frontend/mulighetsrommet-veileder-flate/src/apps/lokal/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
</main>
1717
</body>
1818

19-
</html>
19+
</html>

0 commit comments

Comments
 (0)