mirror of
https://github.com/hay-kot/homebox.git
synced 2025-07-26 04:20:28 +00:00
add user profiles and theme selectors
This commit is contained in:
parent
1ca430af21
commit
72324b8439
14 changed files with 466 additions and 186 deletions
42
frontend/composables/use-theme.ts
Normal file
42
frontend/composables/use-theme.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
import { ComputedRef } from "vue";
|
||||
import { DaisyTheme } from "./use-preferences";
|
||||
|
||||
export interface UseTheme {
|
||||
theme: ComputedRef<DaisyTheme>;
|
||||
setTheme: (theme: DaisyTheme) => void;
|
||||
}
|
||||
|
||||
const themeRef = ref<DaisyTheme>("garden");
|
||||
|
||||
export function useTheme(): UseTheme {
|
||||
const preferences = useViewPreferences();
|
||||
themeRef.value = preferences.value.theme;
|
||||
|
||||
const setTheme = (newTheme: DaisyTheme) => {
|
||||
preferences.value.theme = newTheme;
|
||||
|
||||
if (htmlEl) {
|
||||
htmlEl.value.setAttribute("data-theme", newTheme);
|
||||
}
|
||||
|
||||
themeRef.value = newTheme;
|
||||
};
|
||||
|
||||
const htmlEl = ref<HTMLElement>(null);
|
||||
|
||||
onMounted(() => {
|
||||
if (htmlEl.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
htmlEl.value = document.querySelector("html");
|
||||
console.log(htmlEl.value);
|
||||
});
|
||||
|
||||
const theme = computed(() => {
|
||||
console.log(themeRef.value);
|
||||
return themeRef.value;
|
||||
});
|
||||
|
||||
return { theme, setTheme };
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue