2024-10-14 18:51:44 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 带主题等上下文的、可全局使用的message api
|
|
|
|
|
|
* toco-ui/antd 组件库的message无法直接全局使用,主题上下文会丢失
|
|
|
|
|
|
*/
|
2025-01-08 11:18:06 +08:00
|
|
|
|
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;
|