From 270990efd24bb7d926f630f94a43bcfec0915c5a Mon Sep 17 00:00:00 2001 From: Nitwel Date: Fri, 2 Oct 2020 23:59:45 +0200 Subject: [PATCH] add modeling of active items in v-list --- app/src/components/v-list/v-list-group.vue | 37 +++++++++------ app/src/components/v-list/v-list.vue | 20 +++++++-- .../docs/components/navigation-item.vue | 42 ++++++++++++++--- .../modules/docs/components/navigation.vue | 45 ++++++++++++++++--- app/src/modules/docs/routes/docs.vue | 2 +- 5 files changed, 117 insertions(+), 29 deletions(-) diff --git a/app/src/components/v-list/v-list-group.vue b/app/src/components/v-list/v-list-group.vue index aa41ab4830..52fe1c17de 100644 --- a/app/src/components/v-list/v-list-group.vue +++ b/app/src/components/v-list/v-list-group.vue @@ -1,5 +1,5 @@ diff --git a/app/src/components/v-list/v-list.vue b/app/src/components/v-list/v-list.vue index a1a4521b41..5d05a33ee6 100644 --- a/app/src/components/v-list/v-list.vue +++ b/app/src/components/v-list/v-list.vue @@ -18,7 +18,15 @@ import { defineComponent, PropType, ref, toRefs } from '@vue/composition-api'; import { useGroupableParent } from '@/composables/groupable'; export default defineComponent({ + model: { + prop: 'activeItems', + event: 'input' + }, props: { + activeItems: { + type: Array as PropType<(number | string)[]>, + default: () => [] + }, dense: { type: Boolean, default: false, @@ -36,12 +44,18 @@ export default defineComponent({ default: true, }, }, - setup(props) { + setup(props, {emit}) { + const {activeItems, multiple} = toRefs(props) useGroupableParent( - {}, + { + selection: activeItems, + onSelectionChange: (newSelection) => { + emit('input', newSelection) + } + }, { mandatory: ref(false), - multiple: toRefs(props).multiple, + multiple } ); diff --git a/app/src/modules/docs/components/navigation-item.vue b/app/src/modules/docs/components/navigation-item.vue index 4708d82fb8..31bf78d834 100644 --- a/app/src/modules/docs/components/navigation-item.vue +++ b/app/src/modules/docs/components/navigation-item.vue @@ -1,5 +1,5 @@ diff --git a/app/src/modules/docs/components/navigation.vue b/app/src/modules/docs/components/navigation.vue index e6d10ba37e..5c484836ad 100644 --- a/app/src/modules/docs/components/navigation.vue +++ b/app/src/modules/docs/components/navigation.vue @@ -1,18 +1,51 @@ diff --git a/app/src/modules/docs/routes/docs.vue b/app/src/modules/docs/routes/docs.vue index e16c48b482..e5c7ae49b5 100644 --- a/app/src/modules/docs/routes/docs.vue +++ b/app/src/modules/docs/routes/docs.vue @@ -9,7 +9,7 @@