mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2026-01-17 03:52:27 +01:00
feat:#20 refactored theme switch
This commit is contained in:
@@ -15,21 +15,37 @@
|
||||
//along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import { ref } from "vue";
|
||||
import { Store } from "pinia";
|
||||
import { PrimeVueChangeTheme } from "primevue/config";
|
||||
import { EmitFn } from "primevue/ts-helpers";
|
||||
import { RemovableRef } from "@vueuse/core";
|
||||
|
||||
const darkTheme = ref("lara-dark-blue"),
|
||||
lightTheme = ref("lara-light-blue");
|
||||
lightTheme = ref("lara-light-blue");
|
||||
|
||||
type SettingsStore = Store<"settingsStore", { locale: RemovableRef<string>, isDark: boolean }, NonNullable<unknown>, {
|
||||
setLocale(locale: string): void,
|
||||
setDarkMode(isDark: boolean): void,
|
||||
getDarkMode(): boolean
|
||||
}>;
|
||||
|
||||
export function toggleTheme(store, primeVue, emit): void {
|
||||
store.setDarkMode(!store.isDark);
|
||||
setTheme(store, primeVue, emit);
|
||||
export function toggleTheme(
|
||||
store: SettingsStore,
|
||||
primeVue: { changeTheme: PrimeVueChangeTheme },
|
||||
emit: EmitFn<"dark-mode-toggled"[]>,
|
||||
): void {
|
||||
store.setDarkMode(!store.isDark);
|
||||
setTheme(store, primeVue, emit);
|
||||
}
|
||||
|
||||
export function setTheme(store, primeVue, emit, shouldBeDark: boolean) {
|
||||
store.setDarkMode(shouldBeDark);
|
||||
const isDark = ref(store.isDark);
|
||||
const newTheme = isDark.value ? darkTheme.value : lightTheme.value,
|
||||
oldTheme = isDark.value ? lightTheme.value : darkTheme.value;
|
||||
primeVue.changeTheme(oldTheme, newTheme, "theme-link", () => {});
|
||||
emit("dark-mode-toggled", isDark.value);
|
||||
}
|
||||
export function setTheme(
|
||||
store: SettingsStore,
|
||||
{ changeTheme }: { changeTheme: PrimeVueChangeTheme },
|
||||
emit: EmitFn<"dark-mode-toggled"[]>
|
||||
) {
|
||||
const isDark = ref(store.isDark);
|
||||
const newTheme = isDark.value ? darkTheme.value : lightTheme.value,
|
||||
oldTheme = isDark.value ? lightTheme.value : darkTheme.value;
|
||||
changeTheme(oldTheme, newTheme, "theme-link", () => { });
|
||||
emit("dark-mode-toggled", isDark.value);
|
||||
}
|
||||
Reference in New Issue
Block a user