Load theme in top-level App.svelte

Previously the theme was only loaded when the <ThemeSettings> component
was loaded in the footer. This stopped working since we removed the
layout around the loading spinner.
This commit is contained in:
Rūdolfs Ošiņš
2024-01-02 14:25:59 +00:00
parent d4ca379245
commit b3e212ff5b
3 changed files with 26 additions and 34 deletions
+18 -16
View File
@@ -6,20 +6,6 @@ export const theme = writable<Theme>(loadTheme());
export type CodeFont = "jetbrains" | "system";
export const codeFont = writable<CodeFont>(loadCodeFont());
export function storeCodeFont(codeFont: CodeFont): void {
window.localStorage.setItem("codefont", codeFont);
}
function loadCodeFont(): CodeFont {
const storedCodeFont = window.localStorage.getItem("codefont");
if (storedCodeFont === null) {
return "jetbrains";
} else {
return storedCodeFont as CodeFont;
}
}
export const codeFonts: {
storedName: CodeFont;
fontFamily: string;
@@ -33,6 +19,16 @@ export const codeFonts: {
{ storedName: "system", fontFamily: "monospace", displayName: "System" },
];
function loadCodeFont(): CodeFont {
const storedCodeFont = window.localStorage.getItem("codefont");
if (storedCodeFont === null) {
return "jetbrains";
} else {
return storedCodeFont as CodeFont;
}
}
function loadTheme(): Theme {
const storedTheme = window.localStorage.getItem("theme");
@@ -43,6 +39,12 @@ function loadTheme(): Theme {
}
}
export function storeTheme(theme: Theme): void {
window.localStorage.setItem("theme", theme);
export function storeTheme(newTheme: Theme): void {
theme.set(newTheme);
window.localStorage.setItem("theme", newTheme);
}
export function storeCodeFont(newCodeFont: CodeFont): void {
codeFont.set(newCodeFont);
window.localStorage.setItem("codefont", newCodeFont);
}