Newer
Older
smart-home-server / webclient-vue / src / components / ui / UiButton.vue
@Eugene Sukhodolskiy Eugene Sukhodolskiy 8 hours ago 490 bytes Scaffold Vue web client
<template>
  <button
    class="ui-button"
    :class="[`ui-button-${variant}`, { 'is-loading': loading }]"
    :disabled="disabled || loading"
    type="button"
  >
    <span v-if="loading" class="spinner" aria-hidden="true"></span>
    <slot />
  </button>
</template>

<script setup>
defineProps({
  variant: {
    type: String,
    default: "primary",
  },
  loading: {
    type: Boolean,
    default: false,
  },
  disabled: {
    type: Boolean,
    default: false,
  },
});
</script>