feat: move filter popup to a modal
continuous-integration/drone/push Build is passing Details

This commit is contained in:
kolaente 2022-05-08 22:39:23 +02:00
parent b2c2118c58
commit 0007c30672
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 30 additions and 27 deletions

View File

@ -6,39 +6,34 @@
> >
{{ $t('filters.clear') }} {{ $t('filters.clear') }}
</x-button> </x-button>
<popup :has-overflow="true"> <x-button
<template #trigger="{toggle}"> @click="() => modalOpen = true"
<x-button variant="secondary"
@click.prevent.stop="toggle()" icon="filter"
variant="secondary" >
icon="filter" {{ $t('filters.title') }}
> </x-button>
{{ $t('filters.title') }} <modal @close="() => modalOpen = false" :enabled="modalOpen">
</x-button> <filters
</template> :has-title="true"
<template #content="{isOpen}"> v-model="value"
<filters ref="filters"
v-model="value" class="filter-popup"
ref="filters" :class="{'is-open': isOpen}"
class="filter-popup" />
:class="{'is-open': isOpen}" </modal>
/>
</template>
</popup>
</template> </template>
<script lang="ts"> <script lang="ts">
import {defineComponent} from 'vue' import {defineComponent, ref} from 'vue'
import Filters from '@/components/list/partials/filters' import Filters from '@/components/list/partials/filters.vue'
import Popup from '@/components/misc/popup'
import {getDefaultParams} from '@/composables/taskList' import {getDefaultParams} from '@/composables/taskList'
export default defineComponent({ export default defineComponent({
name: 'filter-popup', name: 'filter-popup',
components: { components: {
Popup,
Filters, Filters,
}, },
props: { props: {
@ -82,6 +77,13 @@ export default defineComponent({
immediate: true, immediate: true,
}, },
}, },
setup() {
const modalOpen = ref(false)
return {
modalOpen,
}
},
methods: { methods: {
clearFilters() { clearFilters() {
this.value = {...getDefaultParams()} this.value = {...getDefaultParams()}

View File

@ -1,5 +1,5 @@
<template> <template>
<card class="filters has-overflow"> <card class="filters has-overflow" :title="hasTitle ? $t('filters.title') : ''">
<div class="field"> <div class="field">
<fancycheckbox v-model="params.filter_include_nulls"> <fancycheckbox v-model="params.filter_include_nulls">
{{ $t('filters.attributes.includeNulls') }} {{ $t('filters.attributes.includeNulls') }}
@ -263,6 +263,10 @@ export default defineComponent({
modelValue: { modelValue: {
required: true, required: true,
}, },
hasTitle: {
type: Boolean,
default: false,
},
}, },
emits: ['update:modelValue', 'change'], emits: ['update:modelValue', 'change'],
watch: { watch: {

View File

@ -91,9 +91,6 @@ watch(
scrollLock.value = enabled scrollLock.value = enabled
store.commit('modalActive', enabled) store.commit('modalActive', enabled)
}, },
{
immediate: true,
},
) )
</script> </script>