choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
49 lines (48 loc) • 1.58 kB
TypeScript
import { CSSProperties, Key, PureComponent, ReactNode } from 'react';
import { NotificationInterface } from 'choerodon-ui/shared/notification-manager';
import { NoticeProps } from './Notice';
export declare function newNotificationInstance(properties: NotificationProps & {
getContainer?: (() => HTMLElement) | undefined;
}, callback: (api: NotificationInterface) => void): void;
export interface NotificationProps {
prefixCls?: string;
className?: string;
transitionName?: string;
animation?: string;
style?: CSSProperties;
contentClassName?: string;
closeIcon?: ReactNode;
maxCount?: number;
foldCount?: number;
}
export interface NotificationState {
notices: NoticeProps[];
scrollHeight: string | number;
totalHeight: number;
offset: number;
}
export default class Notification extends PureComponent<NotificationProps, NotificationState> {
static defaultProps: {
prefixCls: string;
animation: string;
style: {
top: number;
left: string;
};
};
static newInstance: typeof newNotificationInstance;
scrollRef: HTMLDivElement | null;
scrollEvent?: any;
isRemove: boolean;
state: NotificationState;
dispose(): void;
componentWillUnmount(): void;
getTransitionName(): string | undefined;
onAnimateEnd: () => void;
add(notice: NoticeProps): void;
remove(key: Key): void;
clearNotices: () => void;
handleNoticeClose: (eventKey: any) => void;
saveScrollRef: (dom: any) => void;
render(): JSX.Element;
}