From 918b2a7d9591be20cd3401c75ae3a2b9498a104d Mon Sep 17 00:00:00 2001 From: Melonify Date: Wed, 26 Jul 2023 20:09:23 -0400 Subject: [PATCH] Add indicator to show the settings sidebar has more options below --- src/app/settings/SettingsMenu.vue | 65 ++++++++++++++++++++++++++- src/assets/svg/icons/DropdownIcon.vue | 2 +- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/app/settings/SettingsMenu.vue b/src/app/settings/SettingsMenu.vue index ccdcb1912..e946cdffa 100644 --- a/src/app/settings/SettingsMenu.vue +++ b/src/app/settings/SettingsMenu.vue @@ -28,7 +28,7 @@ - +
+
+
+
+
+
+ +
@@ -105,6 +115,7 @@ import { SITE_CURRENT_PLATFORM } from "@/common/Constant"; import { useActor } from "@/composable/useActor"; import { useSettings } from "@/composable/useSettings"; import useUpdater from "@/composable/useUpdater"; +import DropdownIcon from "@/assets/svg/icons/DropdownIcon.vue"; import LogoutIcon from "@/assets/svg/icons/LogoutIcon.vue"; import Logo7TV from "@/assets/svg/logos/Logo7TV.vue"; import TwClose from "@/assets/svg/twitch/TwClose.vue"; @@ -207,6 +218,16 @@ function openAuthWindow(): void { actor.openAuthorizeWindow(platform); } +const sidebarAtTop = ref(true); + +function processSidebarScroll(event: Event) { + const target = event.target; + + if (target instanceof Element) { + sidebarAtTop.value = target.scrollTop < 3; + } +} + const keys = useMagicKeys(); const paintToolShortcut = keys["Alt+Shift+P"]; const storeShortcut = keys["Alt+Shift+S"]; @@ -419,4 +440,46 @@ watch( height: calc(60vh); } } + +.seventv-settings-expansion-indicator { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + bottom: 0; + width: 100%; + padding: 1rem; + pointer-events: none; + opacity: 1; + transition: opacity linear 200ms; + + .color-overlay { + position: absolute; + width: 100%; + height: 100%; + mask-image: linear-gradient(to top, rgba(0, 0, 0, 100%), rgba(0, 0, 0, 0%)); + /* stylelint-disable-next-line property-no-vendor-prefix */ + -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 100%), rgba(0, 0, 0, 0%)); + + > * { + position: absolute; + width: 100%; + height: 100%; + } + + .shade-1 { + background: var(--seventv-background-shade-1); + } + + .transparent-2 { + background: var(--seventv-background-transparent-2); + } + } + + .expansion-icon { + margin-top: 3rem; + font-size: 1.75rem; + transform: rotate(180deg); + } +} diff --git a/src/assets/svg/icons/DropdownIcon.vue b/src/assets/svg/icons/DropdownIcon.vue index a36798566..d168e8ea6 100644 --- a/src/assets/svg/icons/DropdownIcon.vue +++ b/src/assets/svg/icons/DropdownIcon.vue @@ -1,5 +1,5 @@