Skip to content

Commit 51b45b8

Browse files
committed
perf: 优化界面
1 parent 0791d11 commit 51b45b8

25 files changed

Lines changed: 4046 additions & 235 deletions

src/components/LightDarkSwitch.svelte

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import { AUTO_MODE, DARK_MODE, LIGHT_MODE } from "@constants/constants.ts";
2+
import { SYSTEM_MODE, DARK_MODE, LIGHT_MODE } from "@constants/constants.ts";
33
import I18nKey from "@i18n/i18nKey";
44
import { i18n } from "@i18n/translation";
55
import Icon from "@iconify/svelte";
@@ -11,8 +11,8 @@ import {
1111
import { onMount } from "svelte";
1212
import type { LIGHT_DARK_MODE } from "@/types/config.ts";
1313
14-
const seq: LIGHT_DARK_MODE[] = [LIGHT_MODE, DARK_MODE, AUTO_MODE];
15-
let mode: LIGHT_DARK_MODE = $state(AUTO_MODE);
14+
const seq: LIGHT_DARK_MODE[] = [LIGHT_MODE, DARK_MODE, SYSTEM_MODE];
15+
let mode: LIGHT_DARK_MODE = $state(getStoredTheme());
1616
1717
onMount(() => {
1818
mode = getStoredTheme();
@@ -59,14 +59,14 @@ function hidePanel() {
5959

6060
<!-- z-50 make the panel higher than other float panels -->
6161
<div class="relative z-50" role="menu" tabindex="-1" onmouseleave={hidePanel}>
62-
<button aria-label="Light/Dark Mode" role="menuitem" class="relative btn-plain scale-animation rounded-lg h-11 w-11 active:scale-90" id="scheme-switch" onclick={toggleScheme} onmouseenter={showPanel}>
62+
<button aria-label="Light/Dark/System Mode" role="menuitem" class="relative btn-plain scale-animation rounded-lg h-11 w-11 active:scale-90" id="scheme-switch" onclick={toggleScheme} onmouseenter={showPanel}>
6363
<div class="absolute" class:opacity-0={mode !== LIGHT_MODE}>
6464
<Icon icon="material-symbols:wb-sunny-outline-rounded" class="text-[1.25rem]"></Icon>
6565
</div>
6666
<div class="absolute" class:opacity-0={mode !== DARK_MODE}>
6767
<Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem]"></Icon>
6868
</div>
69-
<div class="absolute" class:opacity-0={mode !== AUTO_MODE}>
69+
<div class="absolute" class:opacity-0={mode !== SYSTEM_MODE}>
7070
<Icon icon="material-symbols:radio-button-partial-outline" class="text-[1.25rem]"></Icon>
7171
</div>
7272
</button>
@@ -78,21 +78,21 @@ function hidePanel() {
7878
onclick={() => switchScheme(LIGHT_MODE)}
7979
>
8080
<Icon icon="material-symbols:wb-sunny-outline-rounded" class="text-[1.25rem] mr-3"></Icon>
81-
{i18n(I18nKey.lightMode)}
81+
<span data-i18n-key={I18nKey.lightMode}>{i18n(I18nKey.lightMode)}</span>
8282
</button>
8383
<button class="flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5"
8484
class:current-theme-btn={mode === DARK_MODE}
8585
onclick={() => switchScheme(DARK_MODE)}
8686
>
8787
<Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem] mr-3"></Icon>
88-
{i18n(I18nKey.darkMode)}
88+
<span data-i18n-key={I18nKey.darkMode}>{i18n(I18nKey.darkMode)}</span>
8989
</button>
9090
<button class="flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95"
91-
class:current-theme-btn={mode === AUTO_MODE}
92-
onclick={() => switchScheme(AUTO_MODE)}
91+
class:current-theme-btn={mode === SYSTEM_MODE}
92+
onclick={() => switchScheme(SYSTEM_MODE)}
9393
>
9494
<Icon icon="material-symbols:radio-button-partial-outline" class="text-[1.25rem] mr-3"></Icon>
95-
{i18n(I18nKey.systemMode)}
95+
<span data-i18n-key={I18nKey.systemMode}>{i18n(I18nKey.systemMode)}</span>
9696
</button>
9797
</div>
9898
</div>

0 commit comments

Comments
 (0)