diff --git a/src/__stories__/useResizeObserver.story.tsx b/src/__stories__/useResizeObserver.story.tsx index f97dcb62..d2cfdabe 100644 --- a/src/__stories__/useResizeObserver.story.tsx +++ b/src/__stories__/useResizeObserver.story.tsx @@ -5,8 +5,7 @@ import { useResizeObserver } from '..'; import ShowDocs from './util/ShowDocs'; const Demo = () => { - const ref = useRef(null); - const { width, height } = useResizeObserver(ref); + const { width, height } = useResizeObserver(); console.log('wh', width, height); return ( diff --git a/src/useResizeObserver.ts b/src/useResizeObserver.ts index 41058478..c3c246d0 100644 --- a/src/useResizeObserver.ts +++ b/src/useResizeObserver.ts @@ -1,4 +1,4 @@ -import { RefObject, useEffect, useState } from 'react'; +import { RefObject, useEffect, useRef, useState } from 'react'; import { isClient } from './util'; declare const ResizeObserver: ResizeObserver; @@ -7,18 +7,15 @@ export interface ResizeObserverResult { height: number; } -export type ResizeObserverHook = ( - ref: RefObject, - defaults: Partial -) => ResizeObserverResult; +export type ResizeObserverHook = (defaults: Partial) => [ResizeObserverResult, RefObject]; let useResizeObserver: ResizeObserverHook; if (isClient) { useResizeObserver = ( - ref: RefObject, - { width = Infinity, height = Infinity }: Partial = {} + {width = Infinity, height = Infinity}: Partial = {} ): ResizeObserverResult => { + const ref = useRef(null); const [state, setState] = useState({ width, height }); useEffect(() => { @@ -38,7 +35,7 @@ if (isClient) { return state; }; } else { - useResizeObserver = (ref, { width = Infinity, height = Infinity } = {}) => { + useResizeObserver = ({ width = Infinity, height = Infinity } = {}) => { return { width, height }; }; } diff --git a/tsconfig.json b/tsconfig.json index a30c351b..e3e45d37 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,7 @@ "sourceMap": false, "strict": true, "noUnusedLocals": true, - "noUnusedParameters": false, + "noUnusedParameters": true, "noImplicitReturns": true, "noImplicitAny": false, "noFallthroughCasesInSwitch": true,