Fiz o desafio tentando usar Composition API
Botão
<template>
<button class="button" :disabled="disabilitado" @click="emitClick">
<span class="icon" v-if="icone !== ''">
<i :class="icone"></i>
</span>
<span>{{ nome }}</span>
</button>
</template>
<script setup lang="ts">
defineProps({
icone: { type: String, default: '' },
nome: { type: String, default: ''},
disabilitado: { type: Boolean, default: false }
});
const emit = defineEmits(['btnClicked']);
function emitClick() {
emit('btnClicked');
}
</script>
Temporizador
<BotaoIcone
:disabilitado="cronometroRodando"
nome="Play"
icone="fa-solid fa-play"
@btn-clicked="iniciar"
/>
<BotaoIcone
:disabilitado="!cronometroRodando"
nome="Stop"
icone="fas fa-stop"
@btn-clicked="finalizar"
/>