"use strict"; var common_vendor = require("../../../../common/vendor.js"); var uni_modules_wotDesignUni_components_common_util = require("../common/util.js"); const toastDefaultOptionKey = "__TOAST_OPTION__"; const defaultOptions = { duration: 2e3, show: false }; const None = Symbol("None"); function useToast(selector = "") { const toastOptionKey = getToastOptionKey(selector); const toastOption = common_vendor.inject(toastOptionKey, common_vendor.ref(None)); if (toastOption.value === None) { toastOption.value = defaultOptions; common_vendor.provide(toastOptionKey, toastOption); } let timer = null; const createMethod = (toastOptions) => { return (options) => { return show(uni_modules_wotDesignUni_components_common_util.deepMerge(toastOptions, typeof options === "string" ? { msg: options } : options)); }; }; const show = (option) => { const options = uni_modules_wotDesignUni_components_common_util.deepMerge(defaultOptions, typeof option === "string" ? { msg: option } : option); toastOption.value = uni_modules_wotDesignUni_components_common_util.deepMerge(options, { show: true }); timer && clearTimeout(timer); if (toastOption.value.duration && toastOption.value.duration > 0) { timer = setTimeout(() => { timer && clearTimeout(timer); close(); }, options.duration); } }; const loading = createMethod({ iconName: "loading", duration: 0, cover: true }); const success = createMethod({ iconName: "success", duration: 1500 }); const error = createMethod({ iconName: "error" }); const warning = createMethod({ iconName: "warning" }); const info = createMethod({ iconName: "info" }); const close = () => { toastOption.value = { show: false }; }; return { show, loading, success, error, warning, info, close }; } const getToastOptionKey = (selector) => { return selector ? `${toastDefaultOptionKey}${selector}` : toastDefaultOptionKey; }; const toastIcon = { success() { return ''; }, warning() { return ''; }, info() { return ''; }, error() { return ''; } }; exports.defaultOptions = defaultOptions; exports.getToastOptionKey = getToastOptionKey; exports.toastIcon = toastIcon; exports.useToast = useToast;