Files
DefinitelyTyped/types/react-measure/index.d.ts
Chris Smith cb8a120a17 Adjusted MeasureChildren have more flexible typing
- Added React.ReactNode as an accepted children type
- Added higher order component test which was the problem case
2017-07-14 09:59:10 -07:00

55 lines
2.0 KiB
TypeScript

// Type definitions for react-measure 0.4
// Project: https://github.com/souporserious/react-measure
// Definitions by: Alexey Svetliakov <https://github.com/asvetliakov>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
declare module "react-measure" {
import * as React from "react";
class Measure extends React.Component<Measure.MeasureProps> { }
namespace Measure {
type MeasurementType = "width" | "height" | "top" | "right" | "bottom" | "left";
interface Dimensions {
width?: number;
height?: number;
top?: number;
right?: number;
bottom?: number;
left?: number;
}
type MeasureChildren = React.ReactNode | React.ReactElement<any> | ((dimension: Dimensions) => React.ReactElement<any>);
interface MeasureProps {
/**
* Tries to give the most accurate measure. Currently only works with height.
* Measures the content rather than the actual box of the element.
*/
accurate?: boolean;
/**
* Provide a list of properties to fire a callback for.
*/
whitelist?: MeasurementType[];
/**
* Like whitelist, but will not fire a callback for the specified properties.
*/
blacklist?: MeasurementType[];
/**
* Determines whether or not a measurement should occur.
* @default true
*/
shouldMeasure?: boolean;
/**
* Callback when the component has been mutated. Receives dimensions, mutations, and anything passed to shouldMeasure.
*/
onMeasure?(dimensions: Dimensions): void;
/**
* Children, ordinary JSX element or function. Leaving it for reference here
*/
children?: MeasureChildren;
}
}
export = Measure;
}