Global Import in the menu; mobile drawer nav

- Add a top-level "Import" entry to the sidebar and a global /import page, so
  you can start a tree from a GEDCOM without first creating an empty one. The
  import flow now picks its destination (new tree, or an existing one) — the
  tree-scoped page reuses the same <GedcomImport> with a fixed destination and
  keeps Export.
- Extract the sidebar chrome into <AppShell> and give small screens a working
  menu: a hamburger opens the full sidebar as a slide-in drawer (it was just a
  logo + "Trees" link before). Used by both /trees and /import.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 10:40:01 -04:00
parent 5824e70895
commit 1164841950
7 changed files with 416 additions and 323 deletions
+5
View File
@@ -0,0 +1,5 @@
import { AppShell } from "@/components/app-shell";
export default function ImportLayout({ children }: { children: React.ReactNode }) {
return <AppShell>{children}</AppShell>;
}
+15
View File
@@ -0,0 +1,15 @@
import { GedcomImport } from "@/components/gedcom-import";
export default function ImportPage() {
return (
<div className="space-y-6">
<div>
<h1 className="text-2xl font-semibold">Import</h1>
<p className="mt-1 text-sm text-[var(--muted)]">
Bring in a GEDCOM file start a brand-new tree, or add to one you already have.
</p>
</div>
<GedcomImport />
</div>
);
}