Updating Staging from Main#141
Conversation
- Loader now dismisses via sessionStorage flag + inline pre-paint gate, so navigating back to a page within the same browser session skips the overlay entirely (fixes the home page re-showing the loader after CH Timeline). - New nav.js injects a single sticky header (brand, primary links, auth slot, hamburger drawer on mobile) on every page, replacing the ad-hoc site-nav / top-nav markup that was duplicated per page. editable-content.js still targets .top-nav inside the header unchanged. - Home landing-nav reordered so Church history timeline is first, and the "Pantheons database", "African kingdoms", "Design system" labels are sentence-cased to match the rest of the site.
- New SiteNavPanel component (timeline-scratch/src/components/) renders a fixed, left-side overlay with a parchment card + backdrop, matching the Tour panel's visual language. Slides in from the left; closes on Escape, backdrop click, close button, or link click. - Hamburger moved from the right side of the header to the far left of .header-content — sits left of the search bar. Replaces the previous right-aligned NavDropdown in both ChurchHistoryApp and ChurchHistorySupabaseApp (including the Suggestions, Getting Started, and no-Clerk view branches). - Panel items: Home, CH Timeline, Pantheons, Biblical atlas, Timeline component (last). Active page highlighted via activeKey prop. - Removed orphaned .nav-dropdown* CSS. - Landing-nav on home: Timeline moved to the bottom and relabelled "Timeline component". - Reverts the earlier site-wide top nav + drawer experiment on the main static pages; loader sessionStorage gating is kept.
…gation-AY7NL Replace nav dropdown with slide-in SiteNavPanel overlay
Deploying profile-site with
|
| Latest commit: |
89a26bd
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b2447e88.profile-site-bgf.pages.dev |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d6a90054ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <SiteNavPanel | ||
| open={navOpen} | ||
| onClose={() => setNavOpen(false)} | ||
| activeKey="church-history" |
There was a problem hiding this comment.
Use the current page key when opening SiteNavPanel
ChurchHistoryApp renders at apps/church-history.html, but it passes activeKey="church-history", which maps to the CH Timeline link (./church-history-timeline.html) in SiteNavPanel rather than the current JSON page. That causes the panel to highlight the wrong destination and sets aria-current="page" on a link to a different URL, which is misleading for keyboard and screen-reader navigation in production.
Useful? React with 👍 / 👎.
Adds a new map-based section: an interactive Mediterranean map with a pin per first-century church. Clicking a church opens a force-directed "web" of the people, households, and communities named there in the New Testament; people who traveled between churches appear as shared nodes bridging multiple church nodes. Paul's four missionary journeys are a toggleable map overlay, and a "whole web" view shows every person and church at once. Backed by new FCC_ Supabase tables (regions, churches, people, households, the person-church membership join, scripture references, journeys, journey stops, journey people) with public-read RLS and admin-write policies, seeded with a full New Testament compilation. Scripture references are stored as reference strings only and fetched at display time via the existing NET Bible API service. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Clicking a church now renders its people/household web as a geo-anchored canvas overlay: the church sits at its real coordinates, people fan around it, and travelers' threads stretch across the map to the other churches they belong to. The web pans and zooms with the map via a d3-force simulation in screen space. Replaces the side panel — church/person/household details now appear in a compact floating card on node click, with a hover tooltip on the web. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Travelers were being dragged across the map by the link force toward every church they belong to, tangling the web. Links to other churches now carry zero force — members orbit the focused church while their connections still render as faint dashed threads reaching outward. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
- De-duplicate the two Romans 16 group households (Aristobulus, Narcissus): the pseudo-person row is dropped so each shows as a single household node. - Distinguish members from visitors by is_primary rather than raw church count — people whose home church is elsewhere orbit in a wide outer ring, while members with outside connections (Priscilla, Luke) stay in close. - Replace the dashed bridge lines with gentle curved threads that fade from the person outward toward the far church. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
The curve bow and fade gradient were scaled to the full person-to-church distance, but the far church is usually off-screen when zoomed in on a city — so the visible portion was all straight and full-opacity. Anchor the curve and fade to a fixed screen distance from the person instead. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
…d arcs - Clicking a city now flies to and centers on that city (was using fitBounds with bridge churches, which centred far off the clicked one). - Person/household names render under every dot in the focused web, positioned radially outward from the focused church; the floating tooltip replaces the dot's label on hover. - Clicking a person pins their bridges at full opacity and lights their connected cities; the highlight persists until another node is clicked or the detail card is closed (empty-map click closes the card without clearing the focused web). - Orbit radii scale with the map zoom (more gently than the map itself, clamped so dots are always individually visible and the cloud never exceeds ~42% of the viewport). - Bridge threads bow away from the focused church instead of curving consistently one way, so they radiate outward like spokes rather than crossing through the orbit cluster. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
- Bridge gradient now runs along the forward direction for a fixed screen distance, not s→t along the full chord. The chord-direction gradient meant the curve's bow apex landed deep in the faded zone (because the back-shifted control point puts the apex behind the chord midpoint), hiding the arc entirely. Bumped default head opacity to 0.7 and bow radius so the curve reads clearly. - Push fresh radii into d3-force's link-distance cache on every map move/zoom — d3 only re-reads distances when .distance(fn) is called, so orbits weren't actually expanding when zooming. - Normalise every "House church of …" / "House of …" name to "Household of …" via a single helper, and replace the standalone "House church" tooltip/subtitle/role labels with "Household". https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Bridge threads: draw a straight radial spoke from each person out past the outer (visitor) ring before starting the quadratic arc. Because no dot in the cluster sits further from the focus than the outermost ring, the spoke is guaranteed to clear every dot. The arc's control point is placed even further along the radial direction, so the curve continues bowing outward before sweeping toward the target church. Orbit shape: each member/visitor link gets a stable per-person distance multiplier (0.7-1.4x base), so dots scatter across a wide band instead of landing on a single ferris-wheel ring. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Replace the radial-spoke + radial-control geometry with a single quadratic whose control point sits at the angular midpoint between person and target (short way around the focused church), well outside the outer ring. Same- side targets still read as spoke-then-bend; opposite-side targets (e.g. Paul placed NW of Rome with all his connections east) now sweep wide around the cluster instead of spearing through it. Lower default thread opacity (0.7 -> 0.35) and stroke width so the dots read as the headline and threads as gentle connective tissue. Hover still brightens, just less aggressively. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Bridge connections only render when the active (hovered or click-pinned) node is involved — the default view stays clean and the dots are the headline. As soon as you investigate a person their threads sweep out. Stop dimming non-neighbor people, households, and bridge churches when something is active. The cluster keeps its full presence; the active spoke highlights amber for feedback. Bumped bridge head opacity to 0.8 since it no longer has to compete with a faint default-state layer. https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
No description provided.