react-detectable-overflow
TypeScript icon, indicating that this package has built-in type declarations

0.8.0 • Public • Published

React Detectable Overflow

npm version

A React hook and component detecting overflow state.

Install

npm install react-detectable-overflow

or

yarn add react-detectable-overflow

Example

Hook useOverflowDetector

import * as React from 'react';
import { useOverflowDetector } from 'react-detectable-overflow';

const SampleComponent = () => {
  const { ref, overflow } = useOverflowDetector({});

  return (
    <div
      ref={ref}
      style={{
        textOverflow: 'ellipsis',
        whiteSpace: 'nowrap',
        overflow: 'hidden',
        width: '120px',
        backgroundColor: overflow ? 'red' : 'green',
      }}
    >
      This is a sample text.
    </div>
  );
};

Class DetectableOverflow

import * as React from 'react';
import DetectableOverflow from 'react-detectable-overflow';

const SampleComponent = () => {
  const [overflow, setOverflow] = useState(false);

  return (
    <DetectableOverflow
      onChange={setOverflow}
      style={{
        textOverflow: 'ellipsis',
        whiteSpace: 'nowrap',
        overflow: 'hidden',
        width: '120px',
        backgroundColor: overflow ? '#F9E9CF' : '#BCF2E7',
      }}
    >
      This is a sample text.
    </DetectableOverflow>
  );
};

Caution

Be careful when the size of children content depends on overflow state. The following code perhaps causes the infinite loop of changing overflow state.

import * as React from 'react';
import { useOverflowDetector } from 'react-detectable-overflow';

// DO NOT WRITE LIKE THIS!
const SampleComponent = () => {
  const { ref, overflow } = useOverflowDetector({});

  return <div ref={ref}>{overflow ? 'short' : 'loooooooooooooooooooooooooooooooooooooong'}</div>;
};

License

This package is released under the MIT License, see LICENSE

Changelog

0.8.0

  • Add properties handleHeight and handleWidth

0.7.0

  • Add useOverflowDetector

0.4.0

  • BREAKING CHANGE: Support vertical overflow detection

Package Sidebar

Install

npm i react-detectable-overflow

Weekly Downloads

3,247

Version

0.8.0

License

MIT

Unpacked Size

20.1 kB

Total Files

20

Last publish

Collaborators

  • h-kanazawa