37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import * as React from 'react';
|
|
import type { CSSMotionProps } from './CSSMotion';
|
|
import type { KeyObject } from './util/diff';
|
|
export interface CSSMotionListProps extends Omit<CSSMotionProps, 'onVisibleChanged' | 'children'>, Omit<React.HTMLAttributes<any>, 'children'> {
|
|
keys: (React.Key | {
|
|
key: React.Key;
|
|
[name: string]: any;
|
|
})[];
|
|
component?: string | React.ComponentType | false;
|
|
/** This will always trigger after final visible changed. Even if no motion configured. */
|
|
onVisibleChanged?: (visible: boolean, info: {
|
|
key: React.Key;
|
|
}) => void;
|
|
/** All motion leaves in the screen */
|
|
onAllRemoved?: () => void;
|
|
children?: (props: {
|
|
visible?: boolean;
|
|
className?: string;
|
|
style?: React.CSSProperties;
|
|
index?: number;
|
|
[key: string]: any;
|
|
}, ref: (node: any) => void) => React.ReactElement;
|
|
}
|
|
export interface CSSMotionListState {
|
|
keyEntities: KeyObject[];
|
|
}
|
|
/**
|
|
* Generate a CSSMotionList component with config
|
|
* @param transitionSupport No need since CSSMotionList no longer depends on transition support
|
|
* @param CSSMotion CSSMotion component
|
|
*/
|
|
export declare function genCSSMotionList(transitionSupport: boolean, CSSMotion?: React.ForwardRefExoticComponent<CSSMotionProps & {
|
|
ref?: React.Ref<any>;
|
|
}>): React.ComponentClass<CSSMotionListProps>;
|
|
declare const _default: React.ComponentClass<CSSMotionListProps, any>;
|
|
export default _default;
|