Files
toco-react-template/src/app/message.ts

51 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-10-14 18:51:44 +08:00
/**
* 使message api
* toco-ui/antd message无法直接全局使用
*/
import { message as tocoMessage } from '@toco-design/components';
2024-10-14 18:51:44 +08:00
type Message = ReturnType<typeof tocoMessage.useMessage>[0];
class GlobalMessage {
private static instance: GlobalMessage;
private message: Message;
private constructor() {
this.message = tocoMessage;
}
public static getInstance(): GlobalMessage {
if (!GlobalMessage.instance) {
GlobalMessage.instance = new GlobalMessage();
}
return GlobalMessage.instance;
}
public setMessage(message: Message) {
this.message = message;
}
public success(content: string, duration?: number, onClose?: () => void) {
this.message.success(content, duration, onClose);
}
public error(content: string, duration?: number, onClose?: () => void) {
this.message.error(content, duration, onClose);
}
public info(content: string, duration?: number, onClose?: () => void) {
this.message.info(content, duration, onClose);
}
public warning(content: string, duration?: number, onClose?: () => void) {
this.message.warning(content, duration, onClose);
}
public loading(content: string, duration?: number, onClose?: () => void) {
this.message.loading(content, duration, onClose);
}
}
const globalMessage = GlobalMessage.getInstance();
export default globalMessage;