mailWhitelistPrompt.js 1.28 KB
import Vue from 'vue';

const defaultOptions = {
  title: '温馨提示',
  message: '请确保我们的发件邮箱:hagerminisite_cn@163.com,在您的收件白名单中。',
  confirmText: '确定',
};

export const mailWhitelistPromptState = Vue.observable({
  visible: false,
  title: defaultOptions.title,
  message: defaultOptions.message,
  confirmText: defaultOptions.confirmText,
});

let resolver = null;

const resetState = () => {
  mailWhitelistPromptState.visible = false;
  mailWhitelistPromptState.title = defaultOptions.title;
  mailWhitelistPromptState.message = defaultOptions.message;
  mailWhitelistPromptState.confirmText = defaultOptions.confirmText;
  resolver = null;
};

export const openMailWhitelistPrompt = (options = {}) => {
  if (resolver) {
    resolver(false);
    resetState();
  }

  mailWhitelistPromptState.title = options.title || defaultOptions.title;
  mailWhitelistPromptState.message = options.message || defaultOptions.message;
  mailWhitelistPromptState.confirmText = options.confirmText || defaultOptions.confirmText;
  mailWhitelistPromptState.visible = true;

  return new Promise(resolve => {
    resolver = resolve;
  });
};

export const closeMailWhitelistPrompt = (confirmed = false) => {
  if (resolver) {
    resolver(confirmed);
  }
  resetState();
};