base_ui/components/global/ToggleButton.vue

70 lines
1.2 KiB
Vue
Raw Normal View History

2025-02-01 09:34:55 +00:00
<template>
<button v-if="isOpen" @click="toggle" class="btn btn btn-outline-primary">
<span>{{ closeText }}</span>
<svg class="nav-icon-container" :class="'icon icon-' + closeIcon">
<use :xlink:href="'#icon-' + closeIcon"></use>
</svg>
</button>
<button v-else @click="toggle" class="btn btn btn-outline-primary">
<span>{{ openText }}</span>
<svg class="nav-icon-container" :class="'icon icon-' + openIcon">
<use :xlink:href="'#icon-' + openIcon"></use>
</svg>
</button>
</template>
<script>
export default {
props: {
openIcon: {
type: String,
required: true,
},
closeIcon: {
type: String,
required: true,
},
openText: {
type: String,
required: true,
},
closeText: {
type: String,
required: true,
},
},
data() {
return {
isOpen: false,
};
},
methods: {
toggle() {
this.isOpen = !this.isOpen;
this.$emit("toggle", this.isOpen);
},
},
};
</script>
<style scoped>
/* button {
display: flex;
align-items: center;
background: none;
border: none;
cursor: pointer;
}
span {
margin-right: 8px;
}
svg {
width: 24px;
height: 24px;
} */
</style>