{"version":3,"file":"useResize.js","names":["c","_c","useEffect","useState","useResize","element","$","size","setSize","t0","t1","observer","entries","forEach","entry","contentBoxSize","contentRect","newWidth","newHeight","newSize","Array","isArray","blockSize","inlineSize","height","width","observe","unobserve","t2"],"sources":["../../src/hooks/useResize.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\n\ninterface Size {\n height: number\n width: number\n}\n\ninterface Resize {\n size?: Size\n}\n\nexport const useResize = (element: HTMLElement): Resize => {\n const [size, setSize] = useState()\n\n useEffect(() => {\n let observer: any // eslint-disable-line\n\n if (element) {\n observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const {\n contentBoxSize,\n contentRect, // for Safari iOS compatibility, will be deprecated eventually (see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry/contentRect)\n } = entry\n\n let newWidth = 0\n let newHeight = 0\n\n if (contentBoxSize) {\n const newSize = Array.isArray(contentBoxSize) ? contentBoxSize[0] : contentBoxSize\n\n if (newSize) {\n const { blockSize, inlineSize } = newSize\n newWidth = inlineSize\n newHeight = blockSize\n }\n } else if (contentRect) {\n // see note above for why this block is needed\n const { height, width } = contentRect\n newWidth = width\n newHeight = height\n }\n\n setSize({\n height: newHeight,\n width: newWidth,\n })\n })\n })\n\n observer.observe(element)\n }\n\n return () => {\n if (observer) {\n observer.unobserve(element)\n }\n }\n }, [element])\n\n return {\n size,\n }\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAEA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAWpC,OAAO,MAAMC,SAAA,GAAYC,OAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACvB,OAAAM,IAAA,EAAAC,OAAA,IAAwBL,QAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAD,OAAA;IAEdI,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,QAAA;MAAc,IAEdN,OAAA;QACFM,QAAA,CAAAA,CAAA,CAAAA,GAAA,CAAAA,sBAAA,CAAAA,EAAA,CAAAA;UACEC,OAAA,CAAAC,OAAA,CAAAC,KAAA;YACE;cAAAC,cAAA;cAAAC;YAAA,IAGIF,KAAA;YAEJ,IAAAG,QAAA;YACA,IAAAC,SAAA;YAAgB,IAEZH,cAAA;cACF,MAAAI,OAAA,GAAgBC,KAAA,CAAAC,OAAA,CAAcN,cAAA,IAAkBA,cAAc,MAAMA,cAAA;cAAA,IAEhEI,OAAA;gBACF;kBAAAG,SAAA;kBAAAC;gBAAA,IAAkCJ,OAAA;gBAClCF,QAAA,CAAAA,CAAA,CAAWM,UAAA;gBACXL,SAAA,CAAAA,CAAA,CAAYI,SAAA;cAAZ;YAAA;cAAA,IAEON,WAAA;gBAET;kBAAAQ,MAAA;kBAAAC;gBAAA,IAA0BT,WAAA;gBAC1BC,QAAA,CAAAA,CAAA,CAAWQ,KAAA;gBACXP,SAAA,CAAAA,CAAA,CAAYM,MAAA;cAAZ;YAAA;YAGFhB,OAAA;cAAAgB,MAAA,EACUN,SAAA;cAAAO,KAAA,EACDR;YAAA,CACT;UAAA,CACF;QAAA;QAGFN,QAAA,CAAAe,OAAA,CAAiBrB,OAAA;MAAA;MAAA;QAAA,IAIbM,QAAA;UACFA,QAAA,CAAAgB,SAAA,CAAmBtB,OAAA;QAAA;MAAA;IAAA;IAGtBK,EAAA,IAACL,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EA5CZJ,SAAA,CAAUO,EA4CV,EAAGC,EAAS;EAAA,IAAAkB,EAAA;EAAA,IAAAtB,CAAA,QAAAC,IAAA;IAELqB,EAAA;MAAArB;IAAA;IAEPD,CAAA,MAAAC,IAAA;IAAAD,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAAA,OAFOsB,EAEP;AAAA,CACF","ignoreList":[]}