Files
toco-react-template/src/app/message.ts
2025-01-08 11:18:06 +08:00

51 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 带主题等上下文的、可全局使用的message api
* toco-ui/antd 组件库的message无法直接全局使用主题上下文会丢失
*/
import { message as tocoMessage } from '@toco-design/components';
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;