Home-Toolbox-Plugin/components/ui/message/utils.ts

28 lines
528 B
TypeScript

export interface MessageItem {
key?: string;
content: React.ReactNode;
duration?: number;
}
type MessageFn = (Message: MessageItem) => void;
const addMessageFn: MessageFn[] = [];
export const add = (Message: MessageItem) => {
addMessageFn.forEach((item) => {
item(Message);
});
}
export const addFn = (fn: MessageFn) => {
return addMessageFn.push(fn) - 1;
}
export const removeFn = (fn: MessageFn) => {
const index = addMessageFn.indexOf(fn);
if (index > -1) {
addMessageFn.splice(index, 1);
}
}