Skip to content

feat: implement issues #659, #658, #654, #495 - #794

Merged
ReinaMaze merged 2 commits into
HubDApp:mainfrom
talktosam2003:feature/issues-495-654-658-659
Oct 20, 2026
Merged

ReinaMaze merged 2 commits into
HubDApp:mainfrom
talktosam2003:feature/issues-495-654-658-659

Conversation

@talktosam2003

Copy link
Copy Markdown
Contributor

Close #659
Close #658
Close #654
Close #495

…#495

HubDApp#659 - Application-wide keyboard navigation
- Add useKeyboardShortcuts hook: /, Cmd+K (search), Cmd+B (bookmarks),
  C (comparison tray), N (new project, auth-gated), ? (help modal), Esc (close)
- Add KeyboardShortcutsModal component with accessible kbd display
- Wire shortcuts into LayoutWrapper via useKeyboardShortcuts
- Add useProjectGridNavigation for arrow-key grid navigation
- Add data-grid-card + tabIndex to LazyProjectCard for arrow-key support
- Shortcuts are suppressed when focus is inside text-entry elements

HubDApp#658 - Chronological event timeline on project pages
- Add TimelineEvent and TimelineResponse types (types/timeline.ts)
- Add GET /api/projects/[id]/timeline with pagination (20/page default)
- Add ProjectTimeline component: event icons, color-coding, expand/collapse,
  empty state, load-more pagination
- Mount ProjectTimeline in the project detail page sidebar

HubDApp#654 - Threaded discussions on reviews
- Add ReviewComment types with MAX_COMMENT_DEPTH=3 (types/review-comment.ts)
- Add POST/GET/PATCH/DELETE /api/reviews/[id]/comments
  - POST: depth enforcement, DOMPurify sanitisation, max-depth 3
  - PATCH: 5-minute edit window enforcement
  - DELETE: author-only soft delete
- Add GET /api/reviews/[id]/comments/stream SSE endpoint for real-time
  comment notifications
- Add ReviewComments component: nested CommentNode, CommentForm,
  edit-within-5min, delete, load-more, SSE live updates
- Wire ReviewComments into ReviewList below each review card

HubDApp#495 - Comprehensive ProjectForm validation tests
- Add ProjectForm.validation.test.tsx with 30+ test cases covering:
  - Required field validation (name, category, description, website)
  - Name length (min 3), description length (min 10, max 500)
  - URL validation: website, GitHub/repo URL host check, optional URL fields
  - Contract address: invalid chars, wrong prefix, length, normalisation
  - Multiple simultaneous errors
  - Successful submission with correct normalised payload
  - Tag deduplication, draft cleared on success
@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@talktosam2003 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

@ReinaMaze
ReinaMaze merged commit da05455 into HubDApp:main Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants