react-motion-components
Version:
components using react & react-motion
95 lines (94 loc) • 2.23 kB
TypeScript
import * as React from 'react';
declare type Props = {
index: number;
width: number;
height: number;
direction: string;
effect: string;
children: React.ReactNode;
onClick: () => void;
onChange?: (index: number) => void;
};
declare type State = {
index: number;
index3d: number;
width: number;
height: number;
mouseXY: Array<number>;
mouseDelta: Array<number>;
distance: number;
isMoved: boolean;
isPressed: boolean;
isHorizontal: boolean;
is2dEffect: boolean;
count: number;
theta: number;
radius: number;
carousel: {
translate: {
x: number;
y: number;
z: number;
};
rotate: {
x: number;
y: number;
z: number;
deg: number;
};
};
cells: Array<Cell>;
children: Array<React.ReactNode>;
};
declare type Cell = {
translate: {
x: number;
y: number;
z: number;
};
rotate: {
x: number;
y: number;
z: number;
deg: number;
};
opacity: number;
zIndex: number;
};
declare class Carousel extends React.Component<Props, State> {
static getDerivedStateFromProps(nextProps: Props, prevState: State): {
index: number;
index3d: number;
count: number;
children: React.ReactNode[];
} | null;
constructor(props: Props);
componentDidMount(): void;
dragCell: () => {
cells: any;
};
dragCarousel: () => {
carousel: {
rotate: {
deg: number;
x: number;
y: number;
z: number;
};
translate: {
x: number;
y: number;
z: number;
};
};
};
handleMouseDown: (e: React.MouseEvent<any>) => void;
handleClick: (e: React.MouseEvent<any>) => void;
handleMouseMove: (e: {
pageX: number;
pageY: number;
}) => void;
handleMouseUp: () => void;
render(): JSX.Element;
}
export default Carousel;