SPB Git forge

spb/qc26

Public
10commits 1branches 0releases
2.8 MBsize
maindefault branch
17 days agolast push
Python 51.6% TypeScript 46.7% CSS 1.7%
660 B · 21 lines typescript
Raw Blame History
1"use client";23import { useEffect, useRef, useState } from "react";45/** Largeur rendue d'un conteneur (ResizeObserver). `fallback` sert au rendu serveur et au premier rendu client. */6export function useMeasure<T extends HTMLElement = HTMLDivElement>(fallback = 640) {7  const ref = useRef<T>(null);8  const [width, setWidth] = useState(fallback);9  useEffect(() => {10    const el = ref.current;11    if (!el) return;12    const ro = new ResizeObserver((entries) => {13      const w = Math.round(entries[0]?.contentRect.width ?? 0);14      if (w > 0) setWidth(w);15    });16    ro.observe(el);17    return () => ro.disconnect();18  }, []);19  return { ref, width };20}21