Add namespace settings dropdown component

This commit is contained in:
kolaente 2021-01-28 23:07:56 +01:00
parent f1ef4f9f37
commit f3c28451f6
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 66 additions and 1 deletions

View File

@ -110,7 +110,6 @@ export default {
methods: {
hide(e) {
if (this.listSettingsOpen) {
console.log('hide', e)
closeWhenClickedOutside(e, this.$refs.dropdown, () => {
this.listSettingsOpen = false
})

View File

@ -0,0 +1,66 @@
<template>
<div class="dropdown is-right is-active" ref="dropdown">
<div class="dropdown-trigger">
<icon icon="ellipsis-h" @click="open = !open" class="icon"/>
</div>
<transition name="fade">
<div class="dropdown-menu" v-if="open">
<div class="dropdown-content">
<router-link
:to="{ name: 'namespace.settings.edit', params: { namespaceId: namespace.id } }"
class="dropdown-item">
Edit this namespace
</router-link>
<router-link
:to="{ name: 'namespace.settings.share', params: { namespaceId: namespace.id } }"
class="dropdown-item">
Share this namespace
</router-link>
<router-link
:to="{ name: 'list.create', params: { id: namespace.id } }"
class="dropdown-item">
Create a new list
</router-link>
<router-link
:to="{ name: 'namespace.settings.delete', params: { namespaceId: namespace.id } }"
class="dropdown-item">
Delete this namespace
</router-link>
</div>
</div>
</transition>
</div>
</template>
<script>
import {closeWhenClickedOutside} from '@/helpers/closeWhenClickedOutside'
export default {
name: 'namespace-settings-dropdown',
data() {
return {
open: false,
}
},
mounted() {
document.addEventListener('click', this.hide)
},
beforeDestroy() {
document.removeEventListener('click', this.hide)
},
props: {
namespace: {
required: true,
},
},
methods: {
hide(e) {
if (this.open) {
closeWhenClickedOutside(e, this.$refs.dropdown, () => {
this.open = false
})
}
},
},
}
</script>