import { VantComponent } from '../common/component';
import { safeArea } from '../mixins/safe-area';

VantComponent({
  mixins: [safeArea()],

  classes: [
    'bar-class',
    'price-class',
    'button-class'
  ],

  props: {
    tip: {
      type: null,
      observer: 'updateTip'
    },
    tipIcon: String,
    type: Number,
    price: {
      type: null,
      observer: 'updatePrice'
    },
    label: String,
    loading: Boolean,
    disabled: Boolean,
    buttonText: String,
    currency: {
      type: String,
      value: '¥'
    },
    buttonType: {
      type: String,
      value: 'danger'
    },
    decimalLength: {
      type: Number,
      value: 2,
      observer: 'updatePrice'
    },
    suffixLabel: String
  },

  methods: {
    updatePrice() {
      const { price, decimalLength } = this.data;
      this.set({
        hasPrice: typeof price === 'number',
        priceStr: (price / 100).toFixed(decimalLength)
      });
    },

    updateTip() {
      this.set({ hasTip: typeof this.data.tip === 'string' });
    },

    onSubmit(event: Weapp.Event) {
      this.$emit('submit', event.detail);
    }
  }
});