From 5e4684a2c904f3e583f78f6d5cf85cec5832aef3 Mon Sep 17 00:00:00 2001 From: zyronon Date: Thu, 2 Nov 2023 16:40:08 +0800 Subject: [PATCH] Optimize UI interface --- src/App.vue | 15 +---- src/components/Practice/Practice.vue | 4 +- src/components/Toolbar/Toolbar.vue | 94 +++++++++++++++++++--------- src/components/Tooltip.vue | 1 - src/hooks/useTheme.ts | 24 +++++-- 5 files changed, 90 insertions(+), 48 deletions(-) diff --git a/src/App.vue b/src/App.vue index 99baecc6..8cb0fbf9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,19 +9,12 @@ import {useRuntimeStore} from "@/stores/runtime.ts"; import {useSettingStore} from "@/stores/setting.ts"; import {cloneDeep} from "lodash-es"; import Backgorund from "@/components/Backgorund.vue"; +import useTheme from "@/hooks/useTheme.ts"; const store = useBaseStore() const runtimeStore = useRuntimeStore() const settingStore = useSettingStore() - -// 查询当前系统主题颜色 -const match: MediaQueryList = window.matchMedia("(prefers-color-scheme: dark)") -// 监听系统主题变化 -match.addEventListener('change', followSystem) - -function followSystem() { - document.documentElement.className = match.matches ? 'dark' : 'light' -} +const {setTheme} = useTheme() watch(store.$state, (n) => { localStorage.setItem(SaveDict.key, JSON.stringify({val: n, version: SaveDict.version})) @@ -50,9 +43,7 @@ useStartKeyboardEventListener() onMounted(() => { store.init() settingStore.init() - if (settingStore.theme !== 'auto') { - document.documentElement.className = settingStore.theme - } + setTheme(settingStore.theme) }) useEventListener('keyup', (e: KeyboardEvent) => { diff --git a/src/components/Practice/Practice.vue b/src/components/Practice/Practice.vue index 080ecd13..4469527a 100644 --- a/src/components/Practice/Practice.vue +++ b/src/components/Practice/Practice.vue @@ -70,8 +70,8 @@ function test() {
- - + +
(null) +const moreOptionsRef = $ref(null) watch([() => settingStore.showToolbar, () => headerRef], n => { - console.log('n', n) if (n[1]) { if (n[0]) { n[1].style.marginTop = '10rem' @@ -40,6 +41,18 @@ watch([() => settingStore.showToolbar, () => headerRef], n => { } } }) + +function toggle() { + if (settingStore.collapse) { + setTimeout(() => { + moreOptionsRef.style.overflow = 'unset' + }, 300) + } else { + moreOptionsRef.style.overflow = 'hidden' + } + settingStore.collapse = !settingStore.collapse + +}