UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

36 lines (35 loc) 834 B
import { c } from "react-compiler-runtime"; import { useEffect, useState } from "react"; //#region src/hooks/useOverflow.ts function useOverflow(ref) { const $ = c(3); const [hasOverflow, setHasOverflow] = useState(false); let t0; let t1; if ($[0] !== ref) { t0 = () => { if (ref.current === null) return; const observer = new ResizeObserver((entries) => { for (const entry of entries) if (entry.target.scrollHeight > entry.target.clientHeight || entry.target.scrollWidth > entry.target.clientWidth) { setHasOverflow(true); break; } }); observer.observe(ref.current); return () => { observer.disconnect(); }; }; t1 = [ref]; $[0] = ref; $[1] = t0; $[2] = t1; } else { t0 = $[1]; t1 = $[2]; } useEffect(t0, t1); return hasOverflow; } //#endregion export { useOverflow };