Skip to content

Commit 597105d

Browse files
committed
Edit-mode: Add panel to list custom mini-widgets bars contents
Signed-off-by: Arturo Manzoli <[email protected]>
1 parent 633dee2 commit 597105d

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

src/components/EditMenu.vue

+65
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,65 @@
439439
</div>
440440
</template>
441441
</ExpansiblePanel>
442+
<ExpansiblePanel
443+
v-for="miniWidgetContainer in miniWidgetsBars"
444+
:key="miniWidgetContainer.name"
445+
:compact="interfaceStore.isLg || interfaceStore.isOnSmallScreen ? true : false"
446+
invert-chevron
447+
hover-effect
448+
elevation-effect
449+
no-top-divider
450+
:is-expanded="miniWidgetContainer.widgets.length > 0"
451+
>
452+
<template #title>
453+
<div
454+
class="flex w-[90%] justify-between items-center 2xl:text-[18px] xl:text-[16px] lg:text-[14px] -mb-3 font-normal ml-2"
455+
>
456+
{{ miniWidgetContainer.name }}
457+
<v-badge
458+
:content="miniWidgetContainer.widgets.length"
459+
color="#3B78A8"
460+
rounded="md"
461+
class="ml-10 2xl:mb-1 opacity-90"
462+
:class="interfaceStore.isLg || interfaceStore.isOnSmallScreen ? 'scale-75' : ''"
463+
/>
464+
</div>
465+
</template>
466+
<template #content>
467+
<div class="w-full mb-1">
468+
<span class="w-full px-1 2xl:text-sm text-xs text-left select-none text-slate-400">{{
469+
miniWidgetContainer.name
470+
}}</span>
471+
<div class="flex flex-col items-center w-full 2xl:px-3 overflow-x-hidden grow">
472+
<TransitionGroup name="fade">
473+
<div v-if="miniWidgetContainer.widgets.isEmpty()" class="flex items-center justify-between w-full">
474+
---
475+
</div>
476+
<div
477+
v-for="widget in miniWidgetContainer.widgets"
478+
:key="widget.hash"
479+
class="flex items-center justify-center w-full border-[1px] border-[#FFFFFF15] rounded-md 2xl:mx-2 my-[3px] 2xl:p-1 pl-1 pr-[2px] py-[2px] cursor-pointer"
480+
:class="store.miniWidgetManagerVars(widget.hash).highlighted ? 'bg-[#CBCBCB64]' : 'bg-[#CBCBCB2A]'"
481+
@mouseover="store.miniWidgetManagerVars(widget.hash).highlighted = true"
482+
@mouseleave="store.miniWidgetManagerVars(widget.hash).highlighted = false"
483+
>
484+
<div class="flex items-center justify-start w-full overflow-auto">
485+
<p class="overflow-hidden select-none text-ellipsis whitespace-nowrap 2xl:text-sm text-xs ml-3">
486+
{{ widget.name || widget.component }}
487+
</p>
488+
</div>
489+
<v-divider vertical class="opacity-10 mr-1" />
490+
<div
491+
class="icon-btn mdi mdi-cog"
492+
@click="store.miniWidgetManagerVars(widget.hash).configMenuOpen = true"
493+
/>
494+
<div class="icon-btn mdi mdi-trash-can" @click="store.deleteMiniWidget(widget)" />
495+
</div>
496+
</TransitionGroup>
497+
</div>
498+
</div>
499+
</template>
500+
</ExpansiblePanel>
442501
</div>
443502
</div>
444503
<div class="flex items-center justify-between edit-panel bottom-panel" :class="{ active: editMode }">
@@ -679,6 +738,12 @@ const { showDialog, closeDialog } = useInteractionDialog()
679738
const interfaceStore = useAppInterfaceStore()
680739
const store = useWidgetManagerStore()
681740
741+
const miniWidgetsBars = computed(() =>
742+
store.miniWidgetContainersInCurrentView.filter(
743+
(container) => !container.name.startsWith('Top') && !container.name.startsWith('Bottom')
744+
)
745+
)
746+
682747
const trashList = ref<Widget[]>([])
683748
watch(trashList, () => {
684749
nextTick(() => (trashList.value = []))

0 commit comments

Comments
 (0)