12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <template>
- <div class="dropdown" :class="{'is-active': isActive}">
- <div class="dropdown-trigger">
- <div
- @click="isActive = !isActive"
- aria-haspopup="true"
- aria-controls="dropdown-menu">
- <span></span>
- <span class="icon is-small">
- <i class="fas fa-angle-down" aria-hidden="true"></i>
- </span>
- </div>
- </div>
- <div class="dropdown-menu" id="dropdown-menu" role="menu">
- <div class="dropdown-content">
- <a v-for="(item, index) in items" :key="item.name"
- @click.prevent="emitOption(index)"
- class="dropdown-item">
- {{item.name}}
- </a>
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- props: {
- items: {
- type: Array,
- required: true
- }
- },
- data() {
- return {
- isActive: false
- }
- },
- methods: {
- emitOption(optionIndex) {
- this.$emit('optionChanged', this.items[optionIndex])
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .dropdown-trigger {
- &:hover {
- cursor: pointer;
- }
- }
- i {
- font-size: 25px;
- align-self: end;
- }
- </style>
|