Files
cinny/src/app/hooks/useElementSizeObserver.ts
T
Lotus Bot 61a1f008d0 chore: upgrade i18next 26, prettier 3, fontsource-variable, domhandler 6, lint-staged 17
- i18next 23->26 + react-i18next 15->17
- prettier 2->3, reformat all files
- replace @fontsource/inter with @fontsource-variable/inter 5, update import path
- domhandler 5->6 (aligns with transitive deps)
- lint-staged 16->17
2026-05-21 23:30:50 -04:00

24 lines
692 B
TypeScript

import { useCallback } from 'react';
import { getResizeObserverEntry, useResizeObserver } from './useResizeObserver';
export const useElementSizeObserver = <T extends Element>(
element: () => T | null,
onResize: (width: number, height: number, element: T) => void,
) => {
useResizeObserver(
useCallback(
(entries) => {
const target = element();
if (!target) return;
const targetEntry = getResizeObserverEntry(target, entries);
if (targetEntry) {
const { clientWidth, clientHeight } = targetEntry.target;
onResize(clientWidth, clientHeight, target);
}
},
[element, onResize],
),
element,
);
};