Rebuild People as a family view (pedigree + family group); add recovery UI

The People page is no longer a flat list: it's a focus-person family view with a pedigree of ancestors (parents + grandparents), a spouse/partner panel, and a children panel — with inline 'add parent/child/spouse' (creates the person + the relationship), click-to-refocus, birth–death years, and a searchable people index. Modeled on how real genealogy tools center on a person and let you walk the graph.

Adds delete/restore UI: a Delete on the person page, per-tree delete + a 'Recently deleted' restore section on the trees list, and a Recovery page (sidebar) for deleted people.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Justin Paul <justin@jpaul.me>
This commit is contained in:
2026-06-06 22:19:01 -04:00
parent f2205b93f4
commit 22bc536978
7 changed files with 1002 additions and 106 deletions
+7 -1
View File
@@ -1,6 +1,6 @@
"use client";
import { BookText, FolderTree, Image as ImageIcon, LogOut, Users } from "lucide-react";
import { Archive, BookText, FolderTree, Image as ImageIcon, LogOut, Users } from "lucide-react";
import Link from "next/link";
import { usePathname, useRouter } from "next/navigation";
import { useEffect, useState } from "react";
@@ -87,6 +87,12 @@ export function AppSidebar() {
icon={ImageIcon}
active={pathname.startsWith(`/trees/${treeId}/media`)}
/>
<Item
href={`/trees/${treeId}/recovery`}
label="Recovery"
icon={Archive}
active={pathname.startsWith(`/trees/${treeId}/recovery`)}
/>
</div>
)}