/*
 * @Author: szy
 * @Date: 2022-02-16 17:08:26
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-04-25 10:12:36
 * @FilePath: \yhht-ui\yhht-ui\packagesEle\getXY\src\main.js
 */
import Vue from 'vue';
import Main from './message.vue';
import {isObject,isVNode} from '@/lib/types'
let Message = Vue.extend(Main);
let instance;
var message = function (options) {
    if (Vue.prototype.$isServer) return;
    if(!instance){
        instance = new Message({
            data: {
                ...options               
            },
         
        });
        instance.$mount();
    }
    instance.destroy=()=>{
        document.body.removeChild(instance.$el);
        instance&&instance.$destroy()
        instance=null
        return null
    }
    instance.init(options)
    document.body.appendChild(instance.$el);
    return instance;
};
['success', 'warning', 'info', 'error'].forEach(type => {
    message[type] = (options) => {
      if (isObject(options) && !isVNode(options)) {
        return message({
          ...options,
          type
        });
      }
      return message({
        type,
        text: options
      });
    };
  });

export default message;