mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
add useMeasure story
This commit is contained in:
parent
fea782051e
commit
4deb48b35e
27
src/__stories__/useMeasure.story.tsx
Normal file
27
src/__stories__/useMeasure.story.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import { storiesOf } from '@storybook/react';
|
||||
import React from 'react';
|
||||
import { useMeasure } from '..';
|
||||
import ShowDocs from './util/ShowDocs';
|
||||
|
||||
const Demo = () => {
|
||||
const [ref, { width, height }] = useMeasure();
|
||||
|
||||
return (
|
||||
<>
|
||||
<div>width: {width}</div>
|
||||
<div>height: {height}</div>
|
||||
<div
|
||||
style={{
|
||||
background: 'red',
|
||||
}}
|
||||
ref={ref}
|
||||
>
|
||||
resize me
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
storiesOf('Sensors|useMeasure', module)
|
||||
.add('Docs', () => <ShowDocs md={require('../../docs/useMeasure.md')} />)
|
||||
.add('Demo', () => <Demo />);
|
||||
@ -85,3 +85,4 @@ export { default as useVideo } from './useVideo';
|
||||
export { useWait, Waiter } from './useWait';
|
||||
export { default as useWindowScroll } from './useWindowScroll';
|
||||
export { default as useWindowSize } from './useWindowSize';
|
||||
export { default as useMeasure } from './useMeasure';
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import { useCallback, useState } from 'react';
|
||||
import ResizeObserver from 'resize-observer-polyfill';
|
||||
|
||||
export interface ContentRect {
|
||||
width: number;
|
||||
height: number;
|
||||
@ -23,7 +22,9 @@ const useMeasure = <T>(): [(instance: T) => void, ContentRect] => {
|
||||
() =>
|
||||
new ResizeObserver(entries => {
|
||||
const entry = entries[0];
|
||||
set(entry.contentRect);
|
||||
if (entry) {
|
||||
set(entry.contentRect);
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user