Implemented theme crud and basic theme loading

This commit is contained in:
2026-01-18 23:31:01 +01:00
parent 56b14f60f1
commit 3cbdd3b203
27 changed files with 1218 additions and 14 deletions

View File

@@ -10,6 +10,45 @@
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=fallback" />
<link rel="stylesheet" href="style.min.css" />
<script type="importmap"></script>
<script>
window.themeLoader = {
STYLE_TAG_ID: 'theme-variables',
applyTheme: function(cssContent) {
// Find or create the style tag
let styleTag = document.getElementById(this.STYLE_TAG_ID);
if (!styleTag) {
styleTag = document.createElement('style');
styleTag.id = this.STYLE_TAG_ID;
document.head.appendChild(styleTag);
}
// Update the style tag content
styleTag.textContent = cssContent;
},
loadInitialThemeSync: function() {
try {
const xhr = new XMLHttpRequest();
xhr.open('GET', '/api/frontend/config', false);
xhr.send(null);
if (xhr.status === 200) {
const config = JSON.parse(xhr.responseText);
this.applyTheme(config.themeCss);
document.title = config.name;
}
} catch (error) {
console.error('Failed to load initial theme:', error);
}
}
};
window.themeLoader.loadInitialThemeSync();
</script>
</head>
<body class="bg-background text-foreground">
@@ -52,6 +91,8 @@
</div>
<script src="/_content/ShadcnBlazor/interop.js" defer></script>
<script src="/_content/ShadcnBlazor.Extras/interop.js" defer></script>
<script src="/_content/ShadcnBlazor.Extras/codemirror-bundle.js" defer></script>
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
</body>