JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8742
  • Score
    100M100P100Q117189F
  • License MIT

Component-wrapper to determine and report children elements height

Package Exports

  • react-height

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-height) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

react-height npm

Gitter

CircleCI AppVeyor Coverage Dependencies Dev Dependencies

Component-wrapper to determine and report children elements height

Goals

  • react-height keeps things simple, therefore it does not support nested height change, it only checks immediate children change
  • not based on specific browser APIs, so can be used in other environments too
  • used as backend for react-collapse

React Height

Installation

NPM

npm install --save react react-height

Don't forget to manually install peer dependencies (react) if you use npm@3.

1998 Script Tag:

<script src="https://unpkg.com/react/dist/react.js"></script>
<script src="https://unpkg.com/react-height/build/react-height.min.js"></script>
(Module exposed as `ReactHeight`)

Demo

http://nkbt.github.io/react-height/example

Codepen demo

http://codepen.io/nkbt/pen/NGzgGb

Usage

import {ReactHeight} from 'react-height';

<ReactHeight onHeightReady={height => console.log(height)}>
  <div>Random content</div>
</ReactHeight>

Options

onHeightReady: PropTypes.func.isRequired

Callback, invoked when height is measured (and when it is changed).

getElementHeight: PropTypes.func

Function to measure your element. It receives the element as argument and defaults to el => el.clientHeight.

children: PropTypes.node.isRequired

One or multiple children with static, variable or dynamic height.

<ReactHeight onHeightReady={height => console.log(height)}>
  <p>Paragraph of text</p>
  <p>Another paragraph is also OK</p>
  <p>Images and any other content are ok too</p>
  <img src="nyancat.gif" />
</ReactHeight>

hidden: PropTypes.bool (default: false)

ReactHeight can render to null as soon as height is measured.

<ReactHeight hidden={true} onHeightReady={height => console.log(height)}>
  <div>Will be removed from the DOM when height is measured</div>
</ReactHeight>

Pass-through props

All other props are applied to a container that is being measured. So it is possible to pass style or className, for example.

<ReactHeight onHeightReady={height => console.log(height)}
  style={{width: 200, border: '1px solid red'}}
  className="myComponent">

  <div>
    Wrapper around this element will have red border, 200px width
    and `class="myComponent"`
  </div>
</ReactHeight>

Development and testing

Currently is being developed and tested with the latest stable Node 7 on OSX and Windows. Should be ok with Node 6, but not guaranteed.

To run example covering all ReactHeight features, use npm start, which will compile src/example/Example.js

git clone git@github.com:nkbt/react-height.git
cd react-height
npm install
npm start

# then
open http://localhost:8080

Tests

npm test

# to run tests in watch mode for development
npm run test:dev

# to generate test coverage (./reports/coverage)
npm run test:cov

License

MIT