28 lines
528 B
TypeScript
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);
|
|
}
|
|
}
|