feat: improve book reviews, restore detailed privacy policy, fix header logo, add theme toggle, integrate boneyard-js
- Book reviews: add line-clamp for longer review text with expand/collapse per review - Privacy policy: restore full detailed DSGVO-compliant fallback content - Header (legal pages): change logo from 'dk' to 'dk0' in circle - Header (main page): add ThemeToggle for dark/light mode switching - Skeleton loading: integrate boneyard-js for ReadBooks, CurrentlyReading, Projects - Add boneyard.config.json and bones/registry.ts placeholder
This commit is contained in:
@@ -6,7 +6,7 @@ import { ArrowUpRight } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
import Image from "next/image";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import { Skeleton } from "./ui/Skeleton";
|
||||
import { Skeleton } from "boneyard-js/react";
|
||||
|
||||
interface Project {
|
||||
id: number;
|
||||
@@ -63,18 +63,9 @@ const Projects = () => {
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<Skeleton name="projects-grid" loading={loading} animate="shimmer" transition>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-12">
|
||||
{loading ? (
|
||||
Array.from({ length: 2 }).map((_, i) => (
|
||||
<div key={i} className="space-y-6">
|
||||
<Skeleton className="aspect-[4/3] rounded-[2.5rem]" />
|
||||
<div className="space-y-3">
|
||||
<Skeleton className="h-8 w-1/2" />
|
||||
<Skeleton className="h-4 w-3/4" />
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
) : projects.length === 0 ? (
|
||||
{projects.length === 0 && !loading ? (
|
||||
<div className="col-span-2 py-12 text-center text-stone-400 dark:text-stone-600 text-sm">
|
||||
No projects yet.
|
||||
</div>
|
||||
@@ -125,6 +116,7 @@ const Projects = () => {
|
||||
</motion.div>
|
||||
)))}
|
||||
</div>
|
||||
</Skeleton>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user