Skip to content

PR: Empty States, Help Center, Deployment Pipeline, and Profile Settings#484

Merged
robertocarlous merged 5 commits into
Neurowealth:mainfrom
MethelyDev:main
Jun 23, 2026
Merged

PR: Empty States, Help Center, Deployment Pipeline, and Profile Settings#484
robertocarlous merged 5 commits into
Neurowealth:mainfrom
MethelyDev:main

Conversation

@MethelyDev

Copy link
Copy Markdown

Summary

Closes #448
Closes #439
Closes #436
Closes #438

#448 — Empty-state pages (Portfolio, History, Notifications)

  • SandboxContext: Added "notifications" to ModuleType and default scenarios so the sandbox controls all four major pages.
  • SandboxClientPage: Extended module labels, default state, and quick-action buttons to include Notifications.
  • Portfolio page (/dashboard/portfolio): Replaced the static "Chart coming soon" placeholder with a full sandbox-driven state machine — empty (EmptyState + "Connect wallet" CTA), loading (skeleton), timeout (error + Retry), partial-failure (partial data + amber warning banner), and success (mock holdings table with allocation bars, stat cards).
  • Notifications page (/dashboard/notifications): Restructured into a tabbed layout. New Inbox tab shows a notification list (unread indicators, mark-as-read actions) with empty, loading, and partial-failure states driven by SandboxContext. The original toast/banner System Demo tab is preserved in full.

All empty states follow the spec: 24–48 px icon in rounded container, max-w-[420px] body text, heading → body → CTA hierarchy, no layout shift when toggling sandbox scenarios.


#439 — Help Center, FAQs, and Support Contact Flow

  • New page /dashboard/help — three keyboard-accessible tabs:
    • FAQs: searchable + category-filtered accordion list (FAQSection). Accordions use aria-expanded, aria-controls, and keyboard Enter/Space handling for full screen-reader support.
    • Transaction Help: per-issue symptom / solution / prevention guide with severity badges (TransactionGuidance).
    • Contact Support: validated form with char counters on Subject and Message fields, async transaction ID lookup, error summary banner on submit, and a success state showing a generated reference ID and next-step guidance (SupportForm).
  • Route metadata: /dashboard/help registered with HelpCircle icon in sidebar nav and command palette.

#436 — Deployment Pipeline for Web Frontend

  • deploy-staging.yml: Fixed — was using npm (project uses Yarn), incorrect working-directory, missing yarn.lock cache. Now uses yarn install --frozen-lockfile, adds typecheck + lint before build, passes NODE_ENV=production consistently.
  • deploy-production.yml: Same fixes applied. Production deploys to Vercel with --prod flag on merge to main.
  • Dockerfile: Multi-stage build (deps → builder → runner) using node:20-alpine. Non-root nextjs user for the runtime image. Build args for NEXT_PUBLIC_APP_ENV / NEXT_PUBLIC_APP_URL.
  • docs/deployment.md: Expanded with env-var reference table, manual deploy commands, Docker usage, complete pre-release checklist, and step-by-step rollback instructions (Vercel Dashboard, git revert, Vercel CLI) with post-rollback verification checklist.

#438 — User Profile and Account Settings

  • Settings page (/dashboard/settings): Added a Profile section at the top with link-actions to /profile for "Display Name & Preferences", "Language & Region", and "Currency Display". Existing Wallet / Notifications / Security sections preserved with "Coming soon" badges.
  • Profile page (/profile): Breadcrumb updated to link back to /dashboard/settings so navigation is bidirectional. The full profile form — display name, locale, timezone, currency format, sticky save/cancel row, inline field errors, summary error banner, success banner, localStorage persistence — was already complete and satisfies all spec requirements (24 px group spacing, inline + banner validation, save persists after refresh).

Test Plan

  • Portfolio — toggle Sandbox to each of the 5 scenarios; verify no layout shift and correct state renders; "Connect wallet" CTA navigates to /dashboard
  • Notifications — switch Inbox ↔ System Demo tabs; toggle Sandbox empty/loading/partial-failure/success on Notifications module
  • History — confirm existing sandbox scenarios (empty, loading, timeout, partial-failure) still work
  • Help › FAQs — search, category filter, keyboard expand/collapse (Enter + Space), no-results state
  • Help › Transaction Help — select an issue, expand Symptoms / Solutions / Prevention sections
  • Help › Contact Support — submit with empty fields (error summary + inline errors); fix and submit (success state + reference ID); enter "404" in Transaction ID field (async validation error)
  • Staging deploy — push to dev branch; confirm GitHub Actions → Deploy to Staging completes green
  • Profile — edit display name → save → hard-refresh → value persists via localStorage
  • Settings → Profile — links navigate to /profile; /profile breadcrumb links back to /dashboard/settings

…and Notifications

- Extend SandboxContext ModuleType and defaultScenarios to include "notifications"
- SandboxClientPage: add Notifications module with full scenario controls and quick-action buttons
- Portfolio page: replace static placeholder with sandbox-aware states (empty, loading, partial-failure, timeout, success) using SandboxContext; add mock holdings table and stat cards for the success scenario
- Notifications page: restructure into tabbed layout with a Notification Inbox tab (empty, loading, partial-failure, success states via SandboxContext) alongside the preserved toast/banner System Demo tab; inbox uses EmptyState component with context-appropriate CTA
…idance, and support form

- Create /dashboard/help page with three keyboard-accessible tab sections:
  FAQs (searchable, category-filtered accordions), Transaction Help
  (symptom/solution/prevention guide per issue type), and Contact Support
  (validated form with char counters, async transaction ID check, reference
  ID on success)
- Register /dashboard/help in routeMetadata with HelpCircle icon and
  dashboardNav + commandPalette entries so it appears in sidebar and
  command palette
…pand deployment docs

- deploy-staging.yml / deploy-production.yml: fix package manager from npm
  to yarn (--frozen-lockfile), remove incorrect working-directory, add
  typecheck + lint steps before build, pass NODE_ENV consistently
- Dockerfile: add multi-stage build (deps → builder → runner) using
  node:20-alpine with non-root nextjs user for production containers
- docs/deployment.md: expand with environment variable table, manual
  deploy commands, Docker usage, and complete pre-release / post-rollback
  verification checklists
…e section to settings

- Settings page: add Profile section with links to /profile for display name,
  locale, timezone, and currency format; add link action from Currency Display
  row so all profile fields are reachable from settings
- Profile page: update breadcrumb to link back to /dashboard/settings with
  hover styling so bidirectional navigation is clear
@drips-wave

drips-wave Bot commented Jun 23, 2026

Copy link
Copy Markdown

@MethelyDev Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…eurowealth#436, Neurowealth#438

Summarises empty-state pages, help center, deployment pipeline fixes,
and profile/settings changes with a full test plan checklist.
@robertocarlous robertocarlous merged commit b7f937f into Neurowealth:main Jun 23, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants