Skip to content

Commit 1fd03c7

Browse files
authored
chore: rm resize-observer-polyfill (#218)
* chore: rm resize-observer-polyfill * chore: force update
1 parent 6774b1e commit 1fd03c7

File tree

4 files changed

+30
-28
lines changed

4 files changed

+30
-28
lines changed

now.json

Lines changed: 0 additions & 14 deletions
This file was deleted.

package.json

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "rc-resize-observer",
3-
"version": "1.4.3",
2+
"name": "@rc-component/resize-observer",
3+
"version": "1.0.0-0",
44
"description": "Resize observer for React",
55
"keywords": [
66
"react",
@@ -32,7 +32,7 @@
3232
"deploy": "UMI_ENV=gh npm run build && gh-pages -d dist",
3333
"gh-pages": "npm run deploy",
3434
"prepare": "dumi setup",
35-
"prepublishOnly": "npm run compile && np --no-cleanup --yolo --no-publish",
35+
"prepublishOnly": "npm run compile && rc-np",
3636
"postpublish": "npm run gh-pages",
3737
"lint": "eslint src/ --ext .ts,.tsx,.jsx,.js,.md",
3838
"prettier": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
@@ -41,13 +41,11 @@
4141
"now-build": "npm run build"
4242
},
4343
"dependencies": {
44-
"@babel/runtime": "^7.20.7",
4544
"classnames": "^2.2.1",
46-
"@rc-component/util": "^1.2.0",
47-
"resize-observer-polyfill": "^1.5.1"
45+
"@rc-component/util": "^1.2.0"
4846
},
4947
"devDependencies": {
50-
"@rc-component/father-plugin": "^1.0.0",
48+
"@rc-component/father-plugin": "^2.0.2",
5149
"@testing-library/react": "^12.1.5",
5250
"@types/jest": "^29.5.10",
5351
"@types/react-dom": "^18.0.11",
@@ -63,7 +61,7 @@
6361
"gh-pages": "^6.1.0",
6462
"glob": "^7.1.6",
6563
"less": "^4.1.3",
66-
"np": "^9.0.0",
64+
"@rc-component/np": "^1.0.0",
6765
"prettier": "^3.2.5",
6866
"pretty-quick": "^4.0.0",
6967
"rc-test": "^7.0.15",

src/utils/observerUtil.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import ResizeObserver from 'resize-observer-polyfill';
2-
31
export type ResizeListener = (element: Element) => void;
42

53
// =============================== Const ===============================
@@ -12,8 +10,15 @@ function onResize(entities: ResizeObserverEntry[]) {
1210
});
1311
}
1412

15-
// Note: ResizeObserver polyfill not support option to measure border-box resize
16-
const resizeObserver = new ResizeObserver(onResize);
13+
// Delay create ResizeObserver since it's not supported in server side
14+
let observer: ResizeObserver;
15+
16+
function ensureResizeObserver() {
17+
if (!observer) {
18+
observer = new ResizeObserver(onResize);
19+
}
20+
return observer;
21+
}
1722

1823
// Dev env only
1924
export const _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line
@@ -23,7 +28,7 @@ export const _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // e
2328
export function observe(element: Element, callback: ResizeListener) {
2429
if (!elementListeners.has(element)) {
2530
elementListeners.set(element, new Set());
26-
resizeObserver.observe(element);
31+
ensureResizeObserver().observe(element);
2732
}
2833

2934
elementListeners.get(element).add(callback);
@@ -33,7 +38,7 @@ export function unobserve(element: Element, callback: ResizeListener) {
3338
if (elementListeners.has(element)) {
3439
elementListeners.get(element).delete(callback);
3540
if (!elementListeners.get(element).size) {
36-
resizeObserver.unobserve(element);
41+
ensureResizeObserver().unobserve(element);
3742
elementListeners.delete(element);
3843
}
3944
}

tests/setup.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,16 @@ Object.assign(Enzyme.ReactWrapper.prototype, {
1313
onResize([{ target }]);
1414
},
1515
});
16+
17+
// Mock for ResizeObserver
18+
global.ResizeObserver = class ResizeObserver {
19+
constructor(callback) {
20+
this.callback = callback;
21+
}
22+
23+
observe(target) {
24+
this.callback([{ target }]);
25+
}
26+
27+
unobserve() {}
28+
};

0 commit comments

Comments
 (0)