@combine-labs/combine-polaris
Version:
Combine Lab's product component library. Forked from Shopify's Polaris.
48 lines (47 loc) • 1.41 kB
TypeScript
import * as React from 'react';
import { Rect } from '@shopify/javascript-utilities/geometry';
import { PreferredPosition, PreferredAlignment } from './utilities/math';
export { PreferredPosition, PreferredAlignment };
export declare type Positioning = 'above' | 'below';
export interface OverlayDetails {
left: number;
desiredHeight: number;
positioning: Positioning;
measuring: boolean;
activatorRect: Rect;
}
export interface Props {
active: boolean;
activator: HTMLElement;
preferredPosition?: PreferredPosition;
preferredAlignment?: PreferredAlignment;
fullWidth?: boolean;
fixed?: boolean;
render(overlayDetails: OverlayDetails): React.ReactNode;
onScrollOut?(): void;
}
export interface State {
measuring: boolean;
activatorRect: Rect;
left: number;
top: number;
height: number;
width: number | null;
positioning: Positioning;
zIndex: number | null;
outsideScrollableContainer: boolean;
lockPosition: boolean;
}
export default class PositionedOverlay extends React.PureComponent<Props, State> {
state: State;
private overlay;
private scrollableContainer;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(): void;
componentDidUpdate(): void;
render(): JSX.Element;
private overlayDetails;
private setOverlay;
private handleMeasurement;
}