Skip to content

H-6625: Improve loading, org invites, action bell routing#8917

Merged
CiaranMn merged 6 commits into
mainfrom
cm/frontend-ux-improvements
Jun 29, 2026
Merged

H-6625: Improve loading, org invites, action bell routing#8917
CiaranMn merged 6 commits into
mainfrom
cm/frontend-ux-improvements

Conversation

@CiaranMn

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

A few improvements to the frontend:

  1. Better loading state in the supply chain route
  2. Auto-accept org invites if arriving for email verification from link (rather than inputting code)
  3. More reliable 'load more' button handling in entities table
  4. Route notification bell to inbox section with action items

@CiaranMn CiaranMn requested review from Copilot and vilkinsons June 29, 2026 22:22
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview, Comment Jun 29, 2026 10:44pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Jun 29, 2026 10:44pm
petrinaut Skipped Skipped Jun 29, 2026 10:44pm

@cursor

cursor Bot commented Jun 29, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Relaxing getMyPendingInvitations auth and auto-accept on signup affect org membership and workspace selection; supply-chain web-ID fallback could bind to a different web than the user expects if multiple scopes have data.

Overview
Supply chain routes now use a shared SupplyChainAppSkeleton instead of generic spinners, and the supplyChain feature flag no longer blocks those paths. SupplyChainDataShell tries an ordered list of web IDs (active workspace, org memberships, account) until it finds products, tracks the winning scope, and shows clearer empty-state copy when nothing is found.

Signup / org invites: getMyPendingInvitations is gated with loggedInMiddleware only (not full signup completion), so verified users mid-signup can load invites. The signup page falls back to getMyPendingInvitations when there is no invitationId, auto-accepts when appropriate, and refetches invites and switches active workspace to the invited org after acceptance.

Entities table: “Show more” is driven by an explicit hasMoreRowsAvailable prop tied to nextCursor, not comparing row count to totalResultCount; remaining count is omitted when the total is unknown.

Inbox navigation: New getInboxHref prioritizes actions → notifications → invites; the sidebar Inbox and header bell use it (bell skips draft-entity actions).

Reviewed by Cursor Bugbot for commit cad4563. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions github-actions Bot added area/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) type/eng > frontend Owned by the @frontend team type/eng > backend Owned by the @backend team area/apps labels Jun 29, 2026
@vilkinsons vilkinsons changed the title H-6625: H-6625: Improve loading, org invites, action bell routing Jun 29, 2026
vilkinsons
vilkinsons previously approved these changes Jun 29, 2026
@CiaranMn CiaranMn enabled auto-merge June 29, 2026 22:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Frontend-focused improvements across navigation, onboarding, and the supply-chain experience. Key themes are making loading states feel more “app-like”, routing notification entrypoints to the most relevant inbox subsection, and improving reliability of incremental table loading.

Changes:

  • Introduced getInboxHref() and routed both the sidebar “Inbox” link and the header notification bell to the most relevant inbox subsection (actions/notifications/invites).
  • Replaced several supply-chain “Loading…” placeholder states with a consistent skeleton (SupplyChainAppSkeleton) and improved scope-selection behavior when data is missing.
  • Updated signup to auto-handle pending org invitations post-verification (and adjusted API middleware to allow fetching pending invites for logged-in users who haven’t completed signup), plus made “load more” handling more reliable in the entities table.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
apps/hash-frontend/src/shared/layout/layout-with-sidebar/sidebar.tsx Uses getInboxHref() so the Inbox sidebar item routes to the most relevant subsection.
apps/hash-frontend/src/shared/layout/layout-with-header/notifications-dropdown.tsx Routes the bell icon to the most relevant inbox target via getInboxHref().
apps/hash-frontend/src/shared/get-inbox-href.ts Adds a shared helper to compute the best Inbox destination.
apps/hash-frontend/src/pages/supply-chain/supply-chain-data-shell/site.tsx Replaces per-view loading state with the supply-chain skeleton.
apps/hash-frontend/src/pages/supply-chain/supply-chain-data-shell/opportunity.tsx Replaces brief loading UI with the supply-chain skeleton.
apps/hash-frontend/src/pages/supply-chain/supply-chain-data-shell.tsx Adds multi-scope registry loading fallback behavior and uses skeleton + updated empty/error UX.
apps/hash-frontend/src/pages/supply-chain/site/[site-id]/opportunity/[opportunity-type]/[product-id]/[step-id].page.tsx Uses skeleton while router params are not ready.
apps/hash-frontend/src/pages/supply-chain/shared/supply-chain-layout.tsx Uses skeleton while workspace scope is resolving.
apps/hash-frontend/src/pages/supply-chain/shared/load-state.tsx Introduces SupplyChainAppSkeleton to match supply-chain page chrome.
apps/hash-frontend/src/pages/supply-chain/product/[product-id].page.tsx Replaces product-page loading UI with the skeleton.
apps/hash-frontend/src/pages/signup.page.tsx Adds auto-handling for pending invitations after verification and refreshes invites/workspace on accept.
apps/hash-frontend/src/pages/shared/entities-visualizer/entities-table.tsx Makes “has more rows” explicit via prop and improves remaining-count rendering when totals are unknown.
apps/hash-frontend/src/pages/shared/entities-visualizer.tsx Supplies hasMoreRowsAvailable based on cursor presence.
apps/hash-frontend/src/pages/_app.page.tsx Removes supply-chain hidden-pathname gating for the supplyChain feature flag.
apps/hash-api/src/graphql/resolvers/index.ts Allows getMyPendingInvitations for logged-in users who may not have completed signup.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread apps/hash-frontend/src/pages/signup.page.tsx
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 29, 2026 22:35
@vercel vercel Bot temporarily deployed to Preview – petrinaut June 29, 2026 22:35 Inactive
@CiaranMn CiaranMn requested a review from vilkinsons June 29, 2026 22:36
@vercel vercel Bot temporarily deployed to Preview – petrinaut June 29, 2026 22:36 Inactive

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit cad4563. Configure here.

Comment thread apps/hash-frontend/src/pages/signup.page.tsx

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.

Comment thread apps/hash-frontend/src/pages/_app.page.tsx
Comment thread apps/hash-frontend/src/pages/signup.page.tsx
Comment thread apps/hash-frontend/src/pages/signup.page.tsx

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.

Comment thread apps/hash-frontend/src/pages/_app.page.tsx
@CiaranMn CiaranMn added this pull request to the merge queue Jun 29, 2026
Merged via the queue into main with commit 1cb7ffd Jun 29, 2026
50 checks passed
@CiaranMn CiaranMn deleted the cm/frontend-ux-improvements branch June 29, 2026 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash* Affects HASH (a `hash-*` app) area/apps > hash-api Affects the HASH API (app) area/apps type/eng > backend Owned by the @backend team type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

3 participants