Skip to content

Commit ab34e54

Browse files
authored
Merge pull request #14 from envato/typescript-4-6
Upgrade dependencies to support TypeScript 4.6+ types
2 parents b458306 + 9dbf6a8 commit ab34e54

7 files changed

+26
-25
lines changed

package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"description": "Respond to changes in a DOM element's size. With React Breakpoints, element queries are no longer \"web design's unicorn\" 🦄",
55
"main": "dist/index.js",
66
"scripts": {
7+
"compile": "tsc --noEmit",
78
"build": "tsc -b",
89
"prepare": "npm run build"
910
},
@@ -32,8 +33,8 @@
3233
},
3334
"homepage": "https://github.com/envato/react-breakpoints#readme",
3435
"peerDependencies": {
35-
"react": "16.8 - 17",
36-
"react-dom": "16.8 - 17"
36+
"react": "16.8 - 18",
37+
"react-dom": "16.8 - 18"
3738
},
3839
"devDependencies": {
3940
"@types/react": "^17.0.0",
@@ -52,10 +53,10 @@
5253
"prettier": "^2.2.1",
5354
"react": "^17.0.1",
5455
"react-dom": "^17.0.1",
55-
"typescript": "^4.2.2"
56+
"typescript": "^4.6.0"
5657
},
5758
"dependencies": {
58-
"@envato/react-resize-observer-hook": "^1.2.0"
59+
"@envato/react-resize-observer-hook": "^1.3.0"
5960
},
6061
"eslintConfig": {
6162
"extends": "react-app"

src/Context.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1+
import type { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
12
import { createContext } from 'react';
2-
import { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
33

44
export const Context = createContext<ExtendedResizeObserverEntry | null>(null);

src/Observe.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import { ReactNode } from 'react';
2-
import { ObservedElement, useResizeObserver } from '@envato/react-resize-observer-hook';
1+
import type { ReactNode } from 'react';
2+
import type { ObservedElement } from '@envato/react-resize-observer-hook';
3+
import type { UseBreakpointsOptions } from './useBreakpoints';
4+
import { useResizeObserver } from '@envato/react-resize-observer-hook';
35
import { Context } from './Context';
4-
import { UseBreakpointsOptions, useBreakpoints } from './useBreakpoints';
6+
import { useBreakpoints } from './useBreakpoints';
57

68
interface ObservedElementProps {
79
ref: React.RefCallback<ObservedElement | null>;

src/findBreakpoint.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Breakpoints } from './Breakpoints';
1+
import type { Breakpoints } from './Breakpoints';
22

33
/**
44
* From a `breakpoints` object, find the first key that is equal to or greater than

src/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
export { Provider, useResizeObserver } from '@envato/react-resize-observer-hook';
1+
export type { ExtendedResizeObserverEntry, ObservedElement } from '@envato/react-resize-observer-hook';
2+
export type { UseBreakpointsOptions, UseBreakpointsResult } from './useBreakpoints';
3+
export { createResizeObserver, Provider, useResizeObserver } from '@envato/react-resize-observer-hook';
24
export { Observe } from './Observe';
35
export { useBreakpoints } from './useBreakpoints';
46
export { Context } from './Context';

src/useBreakpoints.ts

+6-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import type { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
2+
import type { Breakpoints } from './Breakpoints';
13
import { useRef, useState, useEffect, useMemo } from 'react';
2-
import { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
3-
import { Breakpoints } from './Breakpoints';
44
import { useResizeObserverEntry } from './useResizeObserverEntry';
55
import { findBreakpoint } from './findBreakpoint';
66

@@ -28,19 +28,19 @@ export type UseBreakpointsResult = [any, any] & Matches;
2828
const boxOptions = {
2929
BORDER_BOX: 'border-box', // https://caniuse.com/mdn-api_resizeobserverentry_borderboxsize
3030
CONTENT_BOX: 'content-box', // https://caniuse.com/mdn-api_resizeobserverentry_contentboxsize
31-
DEVICE_PIXEL_CONTENT_BOX: 'device-pixel-content-box' // https://github.com/w3c/csswg-drafts/pull/4476
31+
DEVICE_PIXEL_CONTENT_BOX: 'device-pixel-content-box' // https://caniuse.com/mdn-api_resizeobserverentry_devicepixelcontentboxsize
3232
};
3333

3434
/**
35-
* See API Docs: {@linkcode https://github.com/envato/react-breakpoints/blob/master/docs/api.md#usebreakpoints|useBreakpoints}
35+
* See API Docs: {@linkcode https://github.com/envato/react-breakpoints/blob/main/docs/api.md#usebreakpoints useBreakpoints}
3636
*
3737
* Pass in an options object with at least one of the following properties:
3838
* - `widths`: objects with width breakpoints as keys and anything as their values;
3939
* - `heights`: objects with height breakpoints as keys and anything as their values.
4040
*
4141
* You may also pass the following additional optional properties:
4242
* - `box`: the box to measure on the observed element, one of `'border-box' | 'content-box' | 'device-pixel-content-box'`;
43-
* - `fragment`: index of {@link https://github.com/w3c/csswg-drafts/pull/4529|fragment} of the observed element to measure (default `0`).
43+
* - `fragment`: index of {@link https://github.com/w3c/csswg-drafts/pull/4529 fragment} of the observed element to measure (default `0`).
4444
*
4545
* Optionally pass in a `ResizeObserverEntry` as the second argument to override fetching one from context.
4646
*
@@ -106,11 +106,7 @@ export const useBreakpoints = (
106106
break;
107107

108108
case boxOptions.DEVICE_PIXEL_CONTENT_BOX:
109-
if (typeof resizeObserverEntry.devicePixelContentBoxSize !== 'undefined') {
110-
observedBoxSize = resizeObserverEntry.devicePixelContentBoxSize[fragment];
111-
} else {
112-
throw Error('resizeObserverEntry does not contain devicePixelContentBoxSize.');
113-
}
109+
observedBoxSize = resizeObserverEntry.devicePixelContentBoxSize[fragment];
114110
break;
115111

116112
default:

src/useResizeObserverEntry.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1+
import type { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
12
import { useContext } from 'react';
2-
import { ExtendedResizeObserverEntry } from '@envato/react-resize-observer-hook';
33
import { Context } from './Context';
44

55
/**
6-
* See API Docs: {@linkcode https://github.com/envato/react-breakpoints/blob/master/docs/api.md#useresizeobserverentry|useResizeObserverEntry}
6+
* See API Docs: {@linkcode https://github.com/envato/react-breakpoints/blob/main/docs/api.md#useresizeobserverentry useResizeObserverEntry}
77
*
88
* Returns the `ResizeObserverEntry` from the nearest Context.
99
*
1010
* You can also pass in a `ResizeObserverEntry`, which will be returned verbatim.
1111
* You will almost certainly never need to do this, but because you may not
1212
* conditionally call hooks, it can be useful to pass in the `ResizeObserverEntry`
1313
* you receive from
14-
* {@linkcode https://github.com/envato/react-breakpoints/blob/master/docs/api.md#useresizeobserver|useResizeObserver}
14+
* {@linkcode https://github.com/envato/react-breakpoints/blob/main/docs/api.md#useresizeobserver useResizeObserver}
1515
* in the same component instead of relying on the value from the nearest Context.
1616
*
1717
* This is allowed to facilitate the abstraction in
18-
* {@linkcode https://github.com/envato/react-breakpoints/blob/master/docs/api.md#usebreakpoints|useBreakpoints}
18+
* {@linkcode https://github.com/envato/react-breakpoints/blob/main/docs/api.md#usebreakpoints useBreakpoints}
1919
* which is used in the
20-
* {@linkcode https://github.com/envato/react-breakpoints/blob/master/docs/api.md#observe|Observe}
20+
* {@linkcode https://github.com/envato/react-breakpoints/blob/main/docs/api.md#observe Observe}
2121
* component.
2222
*
2323
* @example

0 commit comments

Comments
 (0)