From bbe7984e4ebc3a300672b685a12541d2a49c6bdb Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Sun, 9 Oct 2022 00:23:01 +0300 Subject: [PATCH] normalize context menu using @popperjs + normalize context children too + add setting to toggle context children via click or hover + add a select setting component + remove dead teleport code from sidebar tabs wrapper + general clean up --- src/components/ContextMenu.vue | 55 ++------- src/components/Contextmenu/ContextItem.vue | 116 +++++++++++++++--- src/components/RightSideBar/Queue.vue | 3 +- .../RightSideBar/Search/TabsWrapper.vue | 23 ++-- src/components/RightSideBar/SearchInput.vue | 8 +- .../SettingsView/Components/Select.vue | 52 ++++++++ src/components/SettingsView/Group.vue | 15 ++- src/components/shared/SongItem.vue | 2 +- src/composables/context.ts | 4 +- src/composables/enums.ts | 5 + src/interfaces/settings.ts | 7 +- src/settings/enums.ts | 6 + .../general/context-children-show-mode.ts | 27 ++++ src/settings/general/extend-width.ts | 6 +- src/settings/general/index.ts | 7 +- src/settings/general/now-playing.ts | 6 +- src/settings/general/sidebar.ts | 4 +- src/settings/strings.ts | 6 + src/stores/context.ts | 91 +++++++------- src/stores/settings/actions.ts | 1 - src/stores/settings/index.ts | 7 +- src/svg.d.ts | 2 +- src/views/QueueView.vue | 2 +- tsconfig.json | 2 +- 24 files changed, 314 insertions(+), 143 deletions(-) create mode 100644 src/components/SettingsView/Components/Select.vue create mode 100644 src/settings/enums.ts create mode 100644 src/settings/general/context-children-show-mode.ts delete mode 100644 src/stores/settings/actions.ts diff --git a/src/components/ContextMenu.vue b/src/components/ContextMenu.vue index ebedaae0..7b21ff4e 100644 --- a/src/components/ContextMenu.vue +++ b/src/components/ContextMenu.vue @@ -1,22 +1,8 @@ @@ -34,9 +21,12 @@ import { ref } from "vue"; import { onClickOutside } from "@vueuse/core"; import useContextStore from "../stores/context"; -import ContextItem from "./Contextmenu/ContextItem.vue"; -const context = useContextStore(); +import useSettingsStore from "../stores/settings"; +import ContextItem from "./Contextmenu/ContextItem.vue"; + +const context = useContextStore(); +const settings = useSettingsStore(); const contextMenu = ref(); let clickCount = 0; @@ -64,6 +54,7 @@ onClickOutside(contextMenu, (e) => { width: 12rem; z-index: 10000 !important; transform: scale(0); + height: min-content; padding: $small 0; background: $context; @@ -81,32 +72,4 @@ onClickOutside(contextMenu, (e) => { } } } - -.context-menu-visible { - transform: scale(1); -} - -.context-normalizedX { - .more { - transform: rotate(180deg); - } - - .context-item > .children { - left: -13rem; - transform-origin: center right; - } -} - -.context-normalizedY { - .context-item > .children { - transform-origin: bottom right; - top: -0.5rem; - } -} - -.context-many-kids { - .context-item > .children { - overflow-y: auto; - } -} diff --git a/src/components/Contextmenu/ContextItem.vue b/src/components/Contextmenu/ContextItem.vue index a2b40b2d..a38da6bc 100644 --- a/src/components/Contextmenu/ContextItem.vue +++ b/src/components/Contextmenu/ContextItem.vue @@ -1,15 +1,33 @@ diff --git a/src/components/SettingsView/Group.vue b/src/components/SettingsView/Group.vue index 677537c4..0a33734a 100644 --- a/src/components/SettingsView/Group.vue +++ b/src/components/SettingsView/Group.vue @@ -19,6 +19,12 @@ @click="setting.action()" :state="setting.source()" /> +