@os-design/use-resize-observer 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/index.ts +35 -0
package/dist/cjs/index.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
var _useBrowserLayoutEffect = _interopRequireDefault(require("@os-design/use-browser-layout-effect"));
|
|
7
8
|
var _react = require("react");
|
|
8
9
|
var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
|
|
9
|
-
var _useBrowserLayoutEffect = _interopRequireDefault(require("@os-design/use-browser-layout-effect"));
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
11
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
12
12
|
var useResizeObserver = function useResizeObserver(target, listener) {
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useResizeObserver","target","listener","listenerRef","useRef","useEffect","current","useBrowserLayoutEffect","element","Element","undefined","eventListener","entries","observer","resizeObserver","ResizeObserver","observe","unobserve"],"sources":["../../src/index.ts"],"sourcesContent":["import { RefObject, useEffect, useRef } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_useBrowserLayoutEffect","_interopRequireDefault","require","_react","_resizeObserverPolyfill","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","useResizeObserver","target","listener","listenerRef","useRef","useEffect","current","useBrowserLayoutEffect","element","Element","undefined","eventListener","entries","observer","resizeObserver","ResizeObserver","observe","unobserve","_default","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import useBrowserLayoutEffect from '@os-design/use-browser-layout-effect';\nimport { RefObject, useEffect, useRef } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nconst useResizeObserver = (\n target: Element | RefObject<Element>,\n listener: ResizeObserverCallback\n): void => {\n const listenerRef = useRef<ResizeObserverCallback>();\n\n useEffect(() => {\n listenerRef.current = listener;\n }, [listener]);\n\n useBrowserLayoutEffect(() => {\n let element;\n if (typeof target === 'object' && target !== null) {\n element = target instanceof Element ? target : target.current;\n }\n\n if (!element) return () => undefined;\n\n const eventListener: ResizeObserverCallback = (entries, observer) => {\n if (!listenerRef.current) return;\n listenerRef.current(entries, observer);\n };\n\n const resizeObserver = new ResizeObserver(eventListener);\n resizeObserver.observe(element);\n\n return () => resizeObserver.unobserve(element);\n }, [target]);\n};\n\nexport default useResizeObserver;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAsD,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,QAAAF,GAAA,sCAAAE,OAAA,wBAAAC,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAJ,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAG,MAAA,IAAAH,GAAA,CAAAK,WAAA,KAAAF,MAAA,IAAAH,GAAA,KAAAG,MAAA,CAAAG,SAAA,qBAAAN,GAAA,KAAAE,OAAA,CAAAF,GAAA;AAEtD,IAAMO,iBAAiB,GAAG,SAApBA,iBAAiBA,CACrBC,MAAoC,EACpCC,QAAgC,EACvB;EACT,IAAMC,WAAW,GAAG,IAAAC,aAAM,EAAyB,CAAC;EAEpD,IAAAC,gBAAS,EAAC,YAAM;IACdF,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAK,kCAAsB,EAAC,YAAM;IAC3B,IAAIC,OAAO;IACX,IAAIb,OAAA,CAAOM,MAAM,MAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;MACjDO,OAAO,GAAGP,MAAM,YAAYQ,OAAO,GAAGR,MAAM,GAAGA,MAAM,CAACK,OAAO;IAC/D;IAEA,IAAI,CAACE,OAAO,EAAE,OAAO;MAAA,OAAME,SAAS;IAAA;IAEpC,IAAMC,aAAqC,GAAG,SAAxCA,aAAqCA,CAAIC,OAAO,EAAEC,QAAQ,EAAK;MACnE,IAAI,CAACV,WAAW,CAACG,OAAO,EAAE;MAC1BH,WAAW,CAACG,OAAO,CAACM,OAAO,EAAEC,QAAQ,CAAC;IACxC,CAAC;IAED,IAAMC,cAAc,GAAG,IAAIC,kCAAc,CAACJ,aAAa,CAAC;IACxDG,cAAc,CAACE,OAAO,CAACR,OAAO,CAAC;IAE/B,OAAO;MAAA,OAAMM,cAAc,CAACG,SAAS,CAACT,OAAO,CAAC;IAAA;EAChD,CAAC,EAAE,CAACP,MAAM,CAAC,CAAC;AACd,CAAC;AAAC,IAAAiB,QAAA,GAEalB,iBAAiB;AAAAmB,OAAA,cAAAD,QAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import useBrowserLayoutEffect from '@os-design/use-browser-layout-effect';
|
|
1
2
|
import { useEffect, useRef } from 'react';
|
|
2
3
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
3
|
-
import useBrowserLayoutEffect from '@os-design/use-browser-layout-effect';
|
|
4
4
|
const useResizeObserver = (target, listener) => {
|
|
5
5
|
const listenerRef = useRef();
|
|
6
6
|
useEffect(() => {
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useEffect","useRef","ResizeObserver","
|
|
1
|
+
{"version":3,"file":"index.js","names":["useBrowserLayoutEffect","useEffect","useRef","ResizeObserver","useResizeObserver","target","listener","listenerRef","current","element","Element","undefined","eventListener","entries","observer","resizeObserver","observe","unobserve"],"sources":["../../src/index.ts"],"sourcesContent":["import useBrowserLayoutEffect from '@os-design/use-browser-layout-effect';\nimport { RefObject, useEffect, useRef } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nconst useResizeObserver = (\n target: Element | RefObject<Element>,\n listener: ResizeObserverCallback\n): void => {\n const listenerRef = useRef<ResizeObserverCallback>();\n\n useEffect(() => {\n listenerRef.current = listener;\n }, [listener]);\n\n useBrowserLayoutEffect(() => {\n let element;\n if (typeof target === 'object' && target !== null) {\n element = target instanceof Element ? target : target.current;\n }\n\n if (!element) return () => undefined;\n\n const eventListener: ResizeObserverCallback = (entries, observer) => {\n if (!listenerRef.current) return;\n listenerRef.current(entries, observer);\n };\n\n const resizeObserver = new ResizeObserver(eventListener);\n resizeObserver.observe(element);\n\n return () => resizeObserver.unobserve(element);\n }, [target]);\n};\n\nexport default useResizeObserver;\n"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,sCAAsC;AACzE,SAAoBC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACpD,OAAOC,cAAc,MAAM,0BAA0B;AAErD,MAAMC,iBAAiB,GAAGA,CACxBC,MAAoC,EACpCC,QAAgC,KACvB;EACT,MAAMC,WAAW,GAAGL,MAAM,CAAyB,CAAC;EAEpDD,SAAS,CAAC,MAAM;IACdM,WAAW,CAACC,OAAO,GAAGF,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdN,sBAAsB,CAAC,MAAM;IAC3B,IAAIS,OAAO;IACX,IAAI,OAAOJ,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;MACjDI,OAAO,GAAGJ,MAAM,YAAYK,OAAO,GAAGL,MAAM,GAAGA,MAAM,CAACG,OAAO;IAC/D;IAEA,IAAI,CAACC,OAAO,EAAE,OAAO,MAAME,SAAS;IAEpC,MAAMC,aAAqC,GAAGA,CAACC,OAAO,EAAEC,QAAQ,KAAK;MACnE,IAAI,CAACP,WAAW,CAACC,OAAO,EAAE;MAC1BD,WAAW,CAACC,OAAO,CAACK,OAAO,EAAEC,QAAQ,CAAC;IACxC,CAAC;IAED,MAAMC,cAAc,GAAG,IAAIZ,cAAc,CAACS,aAAa,CAAC;IACxDG,cAAc,CAACC,OAAO,CAACP,OAAO,CAAC;IAE/B,OAAO,MAAMM,cAAc,CAACE,SAAS,CAACR,OAAO,CAAC;EAChD,CAAC,EAAE,CAACJ,MAAM,CAAC,CAAC;AACd,CAAC;AAED,eAAeD,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGrD,QAAA,MAAM,iBAAiB,WACb,OAAO,GAAG,UAAU,OAAO,CAAC,YAC1B,sBAAsB,KAC/B,IAyBF,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/use-resize-observer",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.15",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -14,7 +14,15 @@
|
|
|
14
14
|
"./package.json": "./package.json"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
|
-
"dist"
|
|
17
|
+
"dist",
|
|
18
|
+
"src",
|
|
19
|
+
"!**/*.test.ts",
|
|
20
|
+
"!**/*.test.tsx",
|
|
21
|
+
"!**/__tests__",
|
|
22
|
+
"!**/*.stories.tsx",
|
|
23
|
+
"!**/*.stories.mdx",
|
|
24
|
+
"!**/*.example.tsx",
|
|
25
|
+
"!**/*.emotion.d.ts"
|
|
18
26
|
],
|
|
19
27
|
"sideEffects": false,
|
|
20
28
|
"scripts": {
|
|
@@ -29,11 +37,11 @@
|
|
|
29
37
|
"access": "public"
|
|
30
38
|
},
|
|
31
39
|
"dependencies": {
|
|
32
|
-
"@os-design/use-browser-layout-effect": "^1.0.
|
|
40
|
+
"@os-design/use-browser-layout-effect": "^1.0.14",
|
|
33
41
|
"resize-observer-polyfill": "^1.5.1"
|
|
34
42
|
},
|
|
35
43
|
"peerDependencies": {
|
|
36
44
|
"react": ">=18"
|
|
37
45
|
},
|
|
38
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "3d6b264027712ef81a75379fe3fde3c76c3079af"
|
|
39
47
|
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import useBrowserLayoutEffect from '@os-design/use-browser-layout-effect';
|
|
2
|
+
import { RefObject, useEffect, useRef } from 'react';
|
|
3
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
4
|
+
|
|
5
|
+
const useResizeObserver = (
|
|
6
|
+
target: Element | RefObject<Element>,
|
|
7
|
+
listener: ResizeObserverCallback
|
|
8
|
+
): void => {
|
|
9
|
+
const listenerRef = useRef<ResizeObserverCallback>();
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
listenerRef.current = listener;
|
|
13
|
+
}, [listener]);
|
|
14
|
+
|
|
15
|
+
useBrowserLayoutEffect(() => {
|
|
16
|
+
let element;
|
|
17
|
+
if (typeof target === 'object' && target !== null) {
|
|
18
|
+
element = target instanceof Element ? target : target.current;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!element) return () => undefined;
|
|
22
|
+
|
|
23
|
+
const eventListener: ResizeObserverCallback = (entries, observer) => {
|
|
24
|
+
if (!listenerRef.current) return;
|
|
25
|
+
listenerRef.current(entries, observer);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const resizeObserver = new ResizeObserver(eventListener);
|
|
29
|
+
resizeObserver.observe(element);
|
|
30
|
+
|
|
31
|
+
return () => resizeObserver.unobserve(element);
|
|
32
|
+
}, [target]);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default useResizeObserver;
|