Skip to content

Extract Contributor Portal to standalone app#143

Merged
hawkandheron-dev merged 2 commits into
mainfrom
claude/add-contributor-portal-menu-U48c5
May 16, 2026
Merged

Extract Contributor Portal to standalone app#143
hawkandheron-dev merged 2 commits into
mainfrom
claude/add-contributor-portal-menu-U48c5

Conversation

@hawkandheron-dev
Copy link
Copy Markdown
Owner

Summary

Refactors the Contributor Portal from an embedded view within the Church History Timeline app into a standalone, site-wide application. This allows contributors to manage feedback across all Windhover projects from a single dedicated page.

Key Changes

  • New Standalone App: Created ContributorPortalApp.jsx as a dedicated root component with its own entry point (main-contributor-portal.jsx) and HTML file (contributor-portal.html)

  • Removed Embedded Portal: Removed the 'getting-started' view from ChurchHistorySupabaseApp.jsx, including the view state management, hash-based routing, and conditional rendering logic

  • Updated Navigation:

    • Changed "Contributor Portal" button in Church History Timeline from a view toggle to a link pointing to the standalone page
    • Added "Contributor Portal" link to other apps (Biblical Places, First Century Church)
    • Updated SiteNavPanel.jsx to include the new portal in the navigation menu
  • Enhanced GettingStartedPage:

    • Added support for site-wide contribution aggregation via aggregateAcrossApps prop
    • Added new props (isSignedIn, isContributor, isAdmin) to support both authenticated and unauthenticated states
    • Updated WelcomeHeader to display context-appropriate messaging based on user role and sign-in status
    • Non-contributors now see a placeholder instead of an empty contributions list
  • Multi-App Support:

    • Created appSections.js with canonical list of site sections (General, Church History Timeline, First Century Church Directory, Biblical History Atlas)
    • Updated ContributionList to group contributions by app section when groupBySection is enabled
    • Added app badge display in contribution rows for cross-app views
    • Updated IssueCreatorModal to allow selecting which app section a contribution belongs to
  • Styling: Added .button-accent variant for standout primary actions and styles for sectioned contribution groups

  • Build Config: Updated vite.config.js to include the new contributor portal entry point

Implementation Details

  • The standalone portal gracefully handles missing Clerk configuration, showing a disabled sign-in button when auth is not configured
  • Legacy deep-link support: bookmarks to #getting-started in the Church History Timeline now redirect to the standalone portal
  • Contributions can be filtered by role (contributors/admins only see the full interface; others see read-only placeholders)
  • The portal can aggregate contributions across all apps or be scoped to a single app via the aggregateAcrossApps prop

https://claude.ai/code/session_016esLPiFAgz8c6aBoLuA1rg

claude added 2 commits May 16, 2026 17:16
Reorder the landing nav, rename the Timeline component entry to "Base
timeline component," and add a visually distinct Contributor Portal link
backed by a new .button-accent design-system variant.

Open the portal page to anyone: drop the contributor/admin gate that
swapped in CollaboratorsOnlyNotice, gate the write affordances (Submit
Feedback, IssueCreatorModal, contribution list) on canWrite, and skip
the RLS-restricted fetch when the visitor can't write. Rewrite the
WelcomeHeader copy to be role-aware and explain who can do what without
inviting visitors to become contributors.
The Contributor Portal used to live inside the Church History Timeline app
with hard-coded ch-timeline scoping, which hid feedback submitted from the
Bible Atlas and First Century Church Directory. Make it a standalone page
that aggregates feedback across every app and lets submitters tag the
section their feedback is about.

- New apps/contributor-portal.html entry, with its own React shell that
  reuses GettingStartedPage in aggregate mode and shows a generic
  "Windhover · Contributor Portal" header.
- Add a section picker to IssueCreatorModal, defaulting to the host app
  but always editable so contributors can re-tag.
- Group the contribution list by section (General, CH Timeline, FCC,
  Bible Atlas) and badge each row with its section.
- Wire entry points: landing-page link, side nav, header buttons on each
  app. Legacy #getting-started hash redirects to the standalone page.

https://claude.ai/code/session_016esLPiFAgz8c6aBoLuA1rg
@hawkandheron-dev hawkandheron-dev merged commit 139b3c6 into main May 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants