feat: portfolio with subpages, hero homepage, and obfuscated asset URLs

This commit is contained in:
ralksta
2026-02-14 00:59:57 +01:00
parent 688a28c7df
commit 415aef98f2
20 changed files with 2231 additions and 123 deletions

37
components/SubpageNav.tsx Normal file
View File

@@ -0,0 +1,37 @@
/**
* SubpageNav — server component that renders navigation links
* for all subpages and standalone albums in the header.
*/
import Link from 'next/link';
import { immich } from '@/lib/immich';
export async function SubpageNav() {
const [subpages, standaloneAlbums] = await Promise.all([
immich.getSubpages(),
immich.getStandaloneAlbums(),
]);
return (
<>
{subpages.map((sp) => (
<Link
key={sp.slug}
href={`/${sp.slug}`}
className="header__nav-link"
>
{sp.name}
</Link>
))}
{standaloneAlbums.map((album) => (
<Link
key={album.id}
href={`/${album.slug}`}
className="header__nav-link"
>
{album.albumName}
</Link>
))}
</>
);
}