refactor(web): remove eslint-disable from useBreadcrumb via ref (#54)
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user