const app = getApp()
import {
  throttle,
  getWaterDrop
} from '../../utils/index/index'
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    isVisible: {
      type: Boolean,
      value: false,
      observer: "handleVisibilityChange"
    }
  },
  props: {
    // 是否显示modal
    visible: {
      type: Boolean,
      value: false
    },
    // 自定义内容
    content: {
      type: String,
      value: ''
    },
    // 是否显示取消按钮（默认显示）
    // showCancelBtn: true,
    showCancelBtn: { // 定义一个属性
      type: Boolean,
      value: true, // 默认值
      observer(newVal, oldVal) {
        // 属性变化监听器
        console.log('myProperty changed from', oldVal, 'to', newVal);
        this.updateValue(newVal);
      }
    },
    // 是否显示确认按钮（默认不显示）
    showOkBtn: true,
    //取消按钮文本
    cancelText: '取消',
    //确认按钮文本
    okText: '确认',
    //取消按钮回调
    onCancel: {
      type: Function,
      value: () => {}
    },
    //确认按钮回调
    onOk: {
      type: Function,
      value: () => {}
    },
  },
  /**
   * 组件的初始数据
   */
  data: {
    btnStatus: true,
  },
  lifetimes: {
    attached() {
      // 初始化时手动调用
      this.handleVisibilityChange(this.data.isVisible);
    }
  },
  didMount() {
    console.log(this.props.showCancelBtn)
  },
  didUpdate(newVal, oldVal) {
    console.log('didUpdate', newVal, oldVal)
    console.log(this.props.showCancelBtn)
  },
  /**
   * 组件的方法列表
   */
  methods: {
    handleVisibilityChange(isVisible) {
      console.log("Visibility on load:", isVisible);
    },
    updateValue(newVal) {
      console.log(newVal)
      // 更新内部数据或执行其他逻辑
      this.setData({
        btnStatus: newVal
      });
    },
    cancel: throttle( function () {
      setTimeout(()=>{
        this.props.onCancel();
      }, 100)
    }, 1000),
    confirm: throttle( function () {
      setTimeout(()=>{
        this.props.onOk();
      }, 100)
    }, 1000),
  },
  observers: {}
})
