Files
ComfyUI_frontend/src/components/sidebar/SideBarThemeToggleIcon.vue
Chenlei Hu b73fe80761 [Major Refactor] Use pinia store to manage setting & nodeDef (#202)
* Node def store and settings tore

* Fix initial values

* Remove legacy setting listen

* Fix searchbox test
2024-07-24 11:49:09 -04:00

31 lines
873 B
Vue

<template>
<SideBarIcon
:icon="icon"
@click="toggleTheme"
:tooltip="$t('sideToolBar.themeToggle')"
class="comfy-vue-theme-toggle"
/>
</template>
<script setup lang="ts">
import { computed, ref } from "vue";
import SideBarIcon from "./SideBarIcon.vue";
import { useSettingStore } from "@/stores/settingStore";
const previousDarkTheme = ref("dark");
const currentTheme = computed(() =>
useSettingStore().get("Comfy.ColorPalette", "dark")
);
const isDarkMode = computed(() => currentTheme.value !== "light");
const icon = computed(() => (isDarkMode.value ? "pi pi-moon" : "pi pi-sun"));
const toggleTheme = () => {
if (isDarkMode.value) {
previousDarkTheme.value = currentTheme.value;
useSettingStore().set("Comfy.ColorPalette", "light");
} else {
useSettingStore().set("Comfy.ColorPalette", previousDarkTheme.value);
}
};
</script>