From af6004f731c5a2d6dc63b04fe08b5a87ab405b3b Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Sun, 7 Jun 2026 19:15:03 +0200 Subject: [PATCH] refactor(web): remove eslint-disable from useBreadcrumb via ref (#54) --- web/src/shell/use-breadcrumb.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/web/src/shell/use-breadcrumb.ts b/web/src/shell/use-breadcrumb.ts index 042d3ed..653e756 100644 --- a/web/src/shell/use-breadcrumb.ts +++ b/web/src/shell/use-breadcrumb.ts @@ -1,12 +1,15 @@ -import { useContext, useEffect } from "react"; +import { useContext, useEffect, useRef } from "react"; import { BreadcrumbContext, type BreadcrumbItem } from "./breadcrumb-context"; export function useBreadcrumb(trail: BreadcrumbItem[]): void { const { setTrail } = useContext(BreadcrumbContext); - const key = trail.map((i) => `${i.label} ${i.to ?? ""}`).join(""); + const trailRef = useRef(trail); useEffect(() => { - setTrail(trail); - // eslint-disable-next-line react-hooks/exhaustive-deps + trailRef.current = trail; + }); + const key = JSON.stringify(trail.map((item) => [item.label, item.to ?? null])); + useEffect(() => { + setTrail(trailRef.current); }, [key, setTrail]); }