//#region src/components/checkout/components/PaymentResultToast/utils.ts
/**
* 获取弹窗配置的默认值
* @returns 默认的弹窗配置
*/
const getDefaultModalConfig = () => ({
	width: 501,
	mask: false,
	maskClosable: false,
	closable: true,
	zIndex: 1e3
});
/**
* 一键关闭当前页面上所有的 PaymentResultToast
* 这个函数是对现有 clearAllPaymentResultToasts 函数的封装，
* 提供了更友好的 API 和额外的配置选项
* 
* 使用方法：
* - closeAllPaymentResultToasts() // 带动画关闭
* - closeAllPaymentResultToasts({ immediate: true }) // 立即关闭
* 
* @param options 配置选项
* @param options.immediate 是否立即关闭（跳过退出动画），默认 false
* @returns Promise<void> 返回 Promise，在所有 Toast 关闭完成后 resolve
*/
const closeAllPaymentResultToasts = (options) => {
	const { immediate = false } = options || {};
	return new Promise((resolve) => {
		try {
			const toastElements = document.querySelectorAll("[data-toast-id]");
			if (toastElements.length === 0) {
				resolve();
				return;
			}
			if (immediate) {
				toastElements.forEach((element) => {
					if (element.parentNode) element.parentNode.removeChild(element);
				});
				resolve();
			} else {
				toastElements.forEach((element) => {
					element.classList.add("toast-exiting");
				});
				setTimeout(() => {
					toastElements.forEach((element) => {
						if (element.parentNode) element.parentNode.removeChild(element);
					});
					resolve();
				}, 300);
			}
		} catch (error) {
			console.warn("关闭 PaymentResultToast 时发生错误:", error);
			resolve();
		}
	});
};
//#endregion
export { closeAllPaymentResultToasts, getDefaultModalConfig };
