Skip to content

Conversation

@Benjtalkshow
Copy link
Collaborator

@Benjtalkshow Benjtalkshow commented Feb 5, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added team invitation rejection capability for users.
    • Introduced invitation management interface to view sent and received team invitations with status tracking.
    • Added ability to invite participants to teams directly from their profiles.
    • Introduced modal for sending optional messages with team invitations.
  • Improvements

    • Updated team invitation acceptance flow and messaging.
    • Enhanced participant profiles with team and invitation status information.
    • Improved Settings page layout with better spacing.

@vercel
Copy link

vercel bot commented Feb 5, 2026

@Benjtalkshow is attempting to deploy a commit to the Threadflow Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link

coderabbitai bot commented Feb 5, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR introduces a comprehensive team invitation system for hackathons, enabling users to invite others to teams and manage invitations. Changes include new API endpoints for sending and receiving invitations, custom hooks for invitation state management, new UI components for viewing and managing invitations, team participant data enrichment, and updated invitation acceptance/rejection workflows. The API layer restructures team operations and introduces invitation-specific endpoints alongside the legacy token-based acceptance method.

Changes

Cohort / File(s) Summary
Team Invitation API Layer
lib/api/hackathons.ts, lib/api/hackathons/teams.ts
New invitation types (InvitationStatus, TeamInvitation, InviteUserToTeamRequest, GetInvitationsResponse) and endpoints (inviteUserToTeam, getMyTeamInvitations, acceptTeamInvitation, rejectTeamInvitation, cancelTeamInvitation, getTeamInvitations). Renamed legacy acceptTeamInvitation to acceptTeamInvitationToken. Updated TeamRecruitmentPost structure with teamName, description, members array, and isOpen field replacing projectName, status, and team size fields.
Invitation Management Hooks
hooks/hackathon/use-team-invitations.ts
New useTeamInvitations hook for managing leader's sent invitations (fetch, send, cancel) and useMyTeamInvitations hook for current user's received invitations (fetch, accept, reject). Both support auto-fetch, loading states, and toast-based error/success feedback.
Invitation Pages
app/(landing)/hackathons/[slug]/team-invitations/[token]/accept/page.tsx, app/(landing)/hackathons/[slug]/team-invitations/[token]/reject/page.tsx
Updated accept page to use new inviteId-based API (invitationToken param) with teamId fallback; new reject page with auth verification, UI state management, error handling, success toast, and redirect logic for declining invitations.
Invitation UI Components
components/hackathons/team-formation/InviteUserModal.tsx, components/hackathons/team-formation/MyInvitationsList.tsx, components/hackathons/team-formation/TeamInvitationsList.tsx
New InviteUserModal for composing and sending team invitations with character-limited message. New MyInvitationsList showing tabbed received/sent invitations with status badges and action buttons (accept/decline/cancel). New TeamInvitationsList displaying sent invitations with cancel capability for pending items.
Team Formation UI Updates
components/hackathons/team-formation/TeamDetailsSheet.tsx, components/hackathons/team-formation/TeamFormationTab.tsx
TeamDetailsSheet adds TeamInvitationsList section for leaders below team details. TeamFormationTab integrates MyInvitationsList component and reorganizes layout with updated container structure and spacing.
Participant & Profile Enhancements
hooks/hackathon/use-participants.ts, components/hackathons/participants/participantAvatar.tsx, components/hackathons/participants/profileCard.tsx, types/hackathon/participant.ts
use-participants hook enriches participants with teamId, teamName, userId, and isIndividual via team data fetch. participantAvatar expands to show name, status indicator, and invite modal trigger. profileCard adds canInvite logic and Invite to Team button. Added userId field to ParticipantDisplay type.
Minor UI Updates
app/me/settings/SettingsContent.tsx
Increased padding around SettingsContent wrapper from no padding to p-10.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • Fix hackathon #372: Modifies components/hackathons/team-formation/TeamDetailsSheet.tsx with background styling changes that may conflict with the TeamInvitationsList integration in this PR.

Suggested reviewers

  • 0xdevcollins

Poem

🐰 Whiskers twitching with delight,
Team invitations hop in sight!
Hackathon rabbits now unite,
With modals, hooks, and endpoints bright!
Accept, reject—collaboration's flight!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

@Benjtalkshow Benjtalkshow merged commit b01a431 into boundlessfi:main Feb 5, 2026
6 of 12 checks passed
This was referenced Feb 5, 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

Development

Successfully merging this pull request may close these issues.

1 participant