Skip to content

feat(onboard): show the community and its channels on the joined screen (#394, #399) - #476

Draft
adenarc wants to merge 1 commit into
mainfrom
feat/onboard-community-394-399
Draft

adenarc wants to merge 1 commit into
mainfrom
feat/onboard-community-394-399

Conversation

@adenarc

@adenarc adenarc commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

For #394 and #399. Draft until the everything-dev release that includes NEARBuilders/everything-dev#662 (merged, not yet in a release; latest is rc.27). After that, City Node needs the platform pin bump to rc.28.

What this does

  • Show the community's channels on the joined screen #394, community channels on the joined screen.
    • everything-dev#662 adds an onboard.community.url auth variable. After a code is redeemed, the joined screen fetches that app path with the redeemed organization ID and shows Visit {community} plus the community's channels.
    • New public GET /communities/by-organization/{organizationId} (getOnboardCommunity) returns { name, href, channels }:
      • it resolves the organization to its active tenant, then to the community's node, using the same first-by-name-then-id pick as the dashboard;
      • child nodes keep their parentId in the link;
      • channels come from the published discovery profile only, and a failed discovery read returns no channels rather than hiding the link;
      • an unknown or suspended community returns 404, which the joined screen treats as "no community" without holding up the page.
    • bos.app.ts sets onboard.community.url to /api/communities/by-organization/{organizationId}.
    • The default next/home/explore links (/build, /dashboard, /explore) already fit City Node, so they're left as is.
  • Don't tell people who left that they've rejoined #399, rescan after leaving. This lands entirely upstream in #662: the "You're no longer a member" state, the MembershipEnded error and clearing the stale active organization. City Node needs no code for it, only the pin bump.

Tested

  • pnpm typecheck, pnpm lint, api tests (435) and ui tests (1126) pass.
  • New integration tests cover published channels (signed out), no or unpublished channels, a child node's parentId, and unknown or suspended communities.
  • Local stack with seeded data:
    • /api/communities/by-organization/<org> returns the name, /n/<slug> and both channels;
    • a community without a profile returns empty channels;
    • an unknown org returns 404;
    • the linked community page renders with its channels.

Before marking ready

Screenshots

No visible change in City Node yet. This PR adds an API route and auth config; the joined screen that uses them is the upstream auth plugin's page, which only gains "Visit {community}" and channels after the rc with everything-dev#662 is pinned. Joined-screen screenshots (with channels, without channels, and 375px) will be added with the pin bump, before this leaves draft.

…en (#394)

Adds a public GET /communities/by-organization/{organizationId} that the
auth plugin's joined screen reads for "Visit {community}" and channels,
and points the onboard config from everything-dev #662 at it.

This branch has not been deployed

No deployments
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.

Don't tell people who left that they've rejoined Show the community's channels on the joined screen

1 participant