UNPKG

react-dayo

Version:

A Queue component for notification etc

59 lines (58 loc) 1.63 kB
import { BlockComponent, ISeed } from '../entities/seed'; export interface DayoOptions { to: 'top' | 'bottom'; position: 'left' | 'center' | 'right'; maxLength: number; } export declare type DayoProps = DayoOptions; export interface DayoImpl<Seed> { getOption<Key extends keyof DayoProps>(key: Key): DayoProps[Key]; getQueue(): Seed[]; setQueue(queue: Seed[]): void; onTransitionEnd(seed: Seed): () => void; } export declare type IDayo<Seed> = DayoImpl<Seed>; export interface DayoState<Seed> { queue: Seed[]; } export interface DayoOperatorImpl<Seed> { /** * Update target seed state for running re-rendering */ rewriteQueueItem(seed: Seed): void; /** * To add a seed into queue state */ addSeed(seed: Seed): void; /** * To skip a overflowed seeds in queue greater than `maxLength` */ skipOverflowSeeds(opts: { maxLength: number; }): void; } export interface DayoSelectorImpl { getQueueComponentProps(): QueueComponentProps; getBoxComponentProps(seed: ISeed): BoxComponentProps; } export interface QueueComponentProps { to: DayoOptions['to']; position: DayoOptions['position']; } export interface BoxComponentThemeParams { transitionTimingFunction: string; } export interface BoxComponentProps { BlockComponent: BlockComponent; theme: BoxComponentThemeParams; additionalProps?: object; to: DayoOptions['to']; isEnter: boolean; isEntering: boolean; isEntered: boolean; isExit: boolean; isExiting: boolean; isExited: boolean; close(): void; onTransitionEnd(): void; }