use-resize-observer
ResizeObserverをReact Hooksから使えるようにしたlibrary
/icons/GitHub.iconZeeCoder/use-resize-observer
Denoからも使える
https://esm.sh/use-resize-observer@8.0.0
Preactと使うときは、以下の型定義ファイルを代わりに使う
code:index.d.ts
import { RefObject, RefCallback } from "https://esm.sh/preact@10.5.14";
declare type ObservedSize = {
width: number | undefined;
height: number | undefined;
};
declare type ResizeHandler = (size: ObservedSize) => void;
declare type HookResponse<T extends HTMLElement> = {
ref: RefCallback<T>;
} & ObservedSize;
declare type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
declare global {
interface ResizeObserverEntry {
readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
}
}
declare type RoundingFunction = (n: number) => number;
declare function useResizeObserver<T extends HTMLElement>(opts?: {
ref?: RefObject<T> | T | null | undefined;
onResize?: ResizeHandler;
box?: ResizeObserverBoxOptions;
round?: RoundingFunction;
}): HookResponse<T>;
export default useResizeObserver;
https://esm.sh/use-resize-observer@7.0.1?alias=react:preact&deps=preact@10.5.14&no-check
#2021-11-06 12:34:40