19 lines
539 B
TypeScript
19 lines
539 B
TypeScript
type FloatingToastListener = (message: string) => void;
|
|
|
|
const listeners = new Set<FloatingToastListener>();
|
|
|
|
export function registerFloatingToastListener(fn: FloatingToastListener) {
|
|
listeners.add(fn);
|
|
return () => {
|
|
listeners.delete(fn);
|
|
};
|
|
}
|
|
|
|
/** 已有页面宿主时返回 true,否则调用方应回退到原生 toast */
|
|
export function showFloatingToast(message: string): boolean {
|
|
const text = message.trim();
|
|
if (!text || listeners.size === 0) return false;
|
|
listeners.forEach((fn) => fn(text));
|
|
return true;
|
|
}
|