- Move plans/ to dev-docs/, delete unused scaffold SVGs - Create .dockerignore, rename container to immich-folio - Extract BackLink component and toPhotoItems() helper in page.tsx - Add keyboard accessibility (role=button, tabIndex, onKeyDown) to PhotoGrid - Add aria-label to Lightbox EXIF toggle - Fix React lint: replace setState-in-effect with useState initializer - Add rate limiting to /api/auth (brute-force protection, 10 RPM) - Add HSTS and X-DNS-Prefetch-Control security headers - Add Secure flag to auth cookie in production - New unit tests: rate-limit.test.ts (5), auth.test.ts (12) - All 47 tests pass, 0 lint errors, build clean
30 lines
633 B
TypeScript
30 lines
633 B
TypeScript
/**
|
|
* BackLink — reusable "← Back to X" navigation link.
|
|
* Used in album headers to navigate back to a parent subpage or homepage.
|
|
*/
|
|
|
|
import Link from 'next/link';
|
|
|
|
interface BackLinkProps {
|
|
href: string;
|
|
label: string;
|
|
}
|
|
|
|
export function BackLink({ href, label }: BackLinkProps) {
|
|
return (
|
|
<Link href={href} className="album-header__back">
|
|
<svg
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
strokeWidth="2"
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
>
|
|
<polyline points="15 18 9 12 15 6" />
|
|
</svg>
|
|
{label}
|
|
</Link>
|
|
);
|
|
}
|