Skip to content

Commit 1a251ea

Browse files
authored
* [email protected] * tweak ResizeObserver fake polyfill * rc * Fix TS1208 * simplify * stable release
1 parent ee3e7e5 commit 1a251ea

File tree

4 files changed

+18
-28
lines changed

4 files changed

+18
-28
lines changed

Diff for: .storybook/preview.tsx

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import 'core-js/stable';
22
import { ResizeObserver as Polyfill } from '@juggle/resize-observer';
33
import { css } from '@linaria/core';
44

5-
// @ts-expect-error
6-
if (typeof ResizeObserver === 'undefined') {
7-
// @ts-expect-error
8-
window.ResizeObserver = Polyfill;
9-
}
5+
window.ResizeObserver ??= Polyfill;
106

117
css`
128
:global() {

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
"react-sortable-hoc": "^1.11.0",
9999
"rollup": "^2.39.0",
100100
"rollup-plugin-postcss": "^4.0.0",
101-
"typescript": "~4.1.5"
101+
"typescript": "~4.2.2"
102102
},
103103
"peerDependencies": {
104104
"react": "^16.14 || ^17.0",

Diff for: src/hooks/useGridDimensions.ts

+1-14
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,12 @@
11
import { useRef, useState, useLayoutEffect } from 'react';
22

3-
// https://github.com/microsoft/TypeScript/issues/37861
4-
interface ResizeObserverEntry {
5-
contentRect: {
6-
width: number;
7-
height: number;
8-
};
9-
}
10-
11-
type ResizeObserver = new (callback: (entries: readonly ResizeObserverEntry[]) => void) => {
12-
observe: (target: Element) => void;
13-
disconnect: () => void;
14-
};
15-
163
export function useGridDimensions(): [ref: React.RefObject<HTMLDivElement>, width: number, height: number] {
174
const gridRef = useRef<HTMLDivElement>(null);
185
const [gridWidth, setGridWidth] = useState(1);
196
const [gridHeight, setGridHeight] = useState(1);
207

218
useLayoutEffect(() => {
22-
const { ResizeObserver } = window as typeof window & { ResizeObserver: ResizeObserver };
9+
const { ResizeObserver } = window;
2310

2411
// don't break in jest/jsdom and browsers that don't support ResizeObserver
2512
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition

Diff for: test/setup.ts

+15-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
// @ts-expect-error
2-
window.ResizeObserver ??= function ResizeObserver(callback: () => void) {
3-
callback();
4-
5-
return {
6-
observe() {},
7-
disconnect() {}
8-
};
1+
import 'core-js/stable';
2+
3+
window.ResizeObserver ??= class {
4+
callback: ResizeObserverCallback;
5+
6+
constructor(callback: ResizeObserverCallback) {
7+
this.callback = callback;
8+
}
9+
10+
observe() {
11+
this.callback([], this);
12+
}
13+
14+
unobserve() {}
15+
disconnect() {}
916
};
1017

1118
// patch clientWidth/clientHeight to pretend we're rendering DataGrid at 1080p

0 commit comments

Comments
 (0)