JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "observe-size.ts"

Full Path: /home/markqprx/iniasli.pro/client/utils/dom/observe-size.ts
File size: 500 bytes
MIME-type: text/html
Charset: utf-8

import {RefObject} from 'react';

type Callback = (e: {width: number; height: number}) => void;

export function observeSize(
  ref: RefObject<HTMLElement>,
  callback: Callback
): () => void {
  const observer = new ResizeObserver(entries => {
    const rect = entries[0].contentRect;
    callback({width: rect.width, height: rect.height});
  });
  if (ref.current) {
    observer.observe(ref.current);
  }
  return () => {
    if (ref.current) {
      observer.unobserve(ref.current);
    }
  };
}