Files
Cupcake/app/components/ui/notice/utils.ts
T

35 lines
699 B
TypeScript

export interface NoticeItem {
key?: string;
title: string;
duration?: number;
type?: "success" | "error" | "warning";
content: React.ReactNode;
}
type NoticeFn = (notice: NoticeItem) => void;
const addNoticeFn: NoticeFn[] = [];
export const add = (notice: NoticeItem) => {
addNoticeFn.forEach((item) => {
// 如果没传递 duration,默认设置为 5000
if (!("duration" in notice)) {
notice.duration = 5000;
}
item(notice);
});
}
export const addFn = (fn: NoticeFn) => {
return addNoticeFn.push(fn) - 1;
}
export const removeFn = (fn: NoticeFn) => {
const index = addNoticeFn.indexOf(fn);
if (index > -1) {
addNoticeFn.splice(index, 1);
}
}