kubric
Version:
Android's co-ordinator layout ported to work on react native (iOS and Android)
40 lines (39 loc) • 1.99 kB
TypeScript
import { ViewProperties, Animated, ViewStyle, ImageStyle, Insets, ImageURISource } from 'react-native';
import * as React from 'react';
import { CLScrollBehaviour } from '../Behaviours';
export interface CLBarProps extends ViewProperties {
safeAreaInsets?: Insets;
scrollBehaviourOffset: Animated.AnimatedInterpolation;
scrollBehaviours: CLScrollBehaviour[];
contentRenderer: (index: number, scrollBehaviourOffset: Animated.AnimatedInterpolation) => React.ReactElement<any> | undefined | null;
showSeparator?: boolean;
}
interface CLBarInterface {
getDimensionRange: () => {
minHeight: number;
maxHeight: number;
};
getBehaviours: () => CLScrollBehaviour[];
}
interface CLBarState {
maxHeight: number;
minHeight: number;
heightAnimatedValue: Animated.AnimatedInterpolation;
}
export declare class CLAppBar extends React.Component<CLBarProps, CLBarState> implements CLBarInterface {
constructor(props: CLBarProps, context?: any);
static getDerivedState<K extends keyof CLBarState>(nextProps: CLBarProps, _: Pick<CLBarState, K> | CLBarState | undefined): Pick<CLBarState, K> | CLBarState;
getDimensionRange: () => {
minHeight: number;
maxHeight: number;
};
getBehaviours: () => CLScrollBehaviour[];
shouldComponentUpdate(nextProps: Readonly<CLBarProps>, _nextState: Readonly<any>, _nextContext: any): boolean;
UNSAFE_componentWillReceiveProps(nextProps: CLBarProps, _nextContext: any): void;
render(): React.ReactNode;
protected containerStyle: () => ViewStyle;
protected shadowImageSource: () => number | ImageURISource;
protected separatorStyle: () => ImageStyle;
protected renderItems: (scrollBehaviourOffset: Animated.AnimatedInterpolation) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>[];
}
export {};