feat(header): Versionsnummer unter dem Logo
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Liest KOCHWAS_TAG via +layout.server.ts aus $env/dynamic/private und zeigt den Tag als kleine graue Zeile unter dem Brand-Text auf der Startseite. Fallback "dev" wenn nicht gesetzt. Auf engen Screens mit ausgeblendetem Brand verschwindet auch die Version. docker-compose.prod.yml reicht die Host-Env-Variable jetzt in den Container durch (vorher nur fuers Image-Tag-Binding interpoliert).
This commit is contained in:
@@ -11,6 +11,8 @@ services:
|
|||||||
- IMAGE_DIR=/data/images
|
- IMAGE_DIR=/data/images
|
||||||
- SEARXNG_URL=http://searxng:8080
|
- SEARXNG_URL=http://searxng:8080
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
|
# Im Header als kleine Versionsnummer unter dem Logo angezeigt.
|
||||||
|
- KOCHWAS_TAG=${KOCHWAS_TAG:-dev}
|
||||||
depends_on:
|
depends_on:
|
||||||
- searxng
|
- searxng
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
8
src/routes/+layout.server.ts
Normal file
8
src/routes/+layout.server.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import type { LayoutServerLoad } from './$types';
|
||||||
|
import { env } from '$env/dynamic/private';
|
||||||
|
|
||||||
|
export const load: LayoutServerLoad = () => {
|
||||||
|
return {
|
||||||
|
version: env.KOCHWAS_TAG ?? 'dev'
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
import { registerServiceWorker } from '$lib/client/sw-register';
|
import { registerServiceWorker } from '$lib/client/sw-register';
|
||||||
import { SearchStore } from '$lib/client/search.svelte';
|
import { SearchStore } from '$lib/client/search.svelte';
|
||||||
|
|
||||||
let { children } = $props();
|
let { data, children } = $props();
|
||||||
|
|
||||||
const navStore = new SearchStore({
|
const navStore = new SearchStore({
|
||||||
pageSize: 30,
|
pageSize: 30,
|
||||||
@@ -115,7 +115,10 @@
|
|||||||
<header class="bar">
|
<header class="bar">
|
||||||
<div class="bar-inner">
|
<div class="bar-inner">
|
||||||
{#if $page.url.pathname === '/'}
|
{#if $page.url.pathname === '/'}
|
||||||
|
<div class="brand-stack">
|
||||||
<a href="/" class="brand">Kochwas</a>
|
<a href="/" class="brand">Kochwas</a>
|
||||||
|
<span class="version" title="Deployment-Tag">{data.version}</span>
|
||||||
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
<a href="/" class="home-back" aria-label="Zurück zur Startseite">
|
<a href="/" class="home-back" aria-label="Zurück zur Startseite">
|
||||||
<ArrowLeft size={22} strokeWidth={2} />
|
<ArrowLeft size={22} strokeWidth={2} />
|
||||||
@@ -307,6 +310,13 @@
|
|||||||
padding: 0.6rem 1rem;
|
padding: 0.6rem 1rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
.brand-stack {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
line-height: 1;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
.brand {
|
.brand {
|
||||||
font-size: 1.15rem;
|
font-size: 1.15rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -314,6 +324,13 @@
|
|||||||
color: #2b6a3d;
|
color: #2b6a3d;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
.version {
|
||||||
|
margin-top: 2px;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: #9aa8a0;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
letter-spacing: 0.02em;
|
||||||
|
}
|
||||||
.home-back {
|
.home-back {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -544,7 +561,7 @@
|
|||||||
}
|
}
|
||||||
@media (max-width: 520px) {
|
@media (max-width: 520px) {
|
||||||
/* App-Icon auf engen Screens komplett aus — die Suche bekommt den Platz. */
|
/* App-Icon auf engen Screens komplett aus — die Suche bekommt den Platz. */
|
||||||
.brand {
|
.brand-stack {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.nav-link {
|
.nav-link {
|
||||||
|
|||||||
Reference in New Issue
Block a user