All files / src/views/Package/useIntersectingHeader util.ts

100% Statements 12/12
50% Branches 1/2
100% Functions 5/5
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22    15x   1x 12x   12x 10x 10x       12x     1x 1x   1x 1x  
import { MenuItem } from "../util";
 
export const normalizeId = (id: string) => id.replace("#", "").toLowerCase();
 
export const getItemIds = (item: MenuItem) => {
  const ids = [normalizeId(item.id)];
 
  item.children?.forEach((child) => {
    Eif (child?.id) {
      ids.push(...getItemIds(child));
    }
  });
 
  return ids;
};
 
export const getElementId = (el: Element): string =>
  normalizeId(el.getAttribute("data-heading-id") as string);
 
export const getSectionIdSet = (items: MenuItem[]): Set<string> =>
  new Set(items.map(getItemIds).flat());