Skip to content

[INTS26] interview invites page#70

Open
tiiffanyho wants to merge 7 commits into
mainfrom
INTS26-interview-invites-page
Open

[INTS26] interview invites page#70
tiiffanyho wants to merge 7 commits into
mainfrom
INTS26-interview-invites-page

Conversation

@tiiffanyho

Copy link
Copy Markdown
Contributor

Notion ticket link

Interview Invites Page

Implementation description

  • Added getInterviewInvites() to InterviewCompositeService fetches all interview groups with their assigned interviewers and interviewees using a two-query pattern (groups + interviewers first, then interviewee data separately) to avoid a Sequelize duplicate table alias error from deep nested joins
  • Added InterviewInviteDTO and InterviewInviteeDTO types, a new GraphQL type (interviewInvites query), and wired the resolver through interviewDashboardResolvers
  • Added InterviewInvitesAPIClient, useInterviewInvites hook, and updated index.tsx to fetch and display real data

Steps to test

  1. Log in and navigate to /admin/interview-invites
  2. Verify collapsible rows appear under the "Ready for Invite" tab with interviewer avatars, interviewee count, and status chip
  3. Click a row to expand, confirm interviewer availability link, interviewees list, and roles are shown
  4. Switch to "Invites Sent" tab and verify rows with INVITES_SENT status appear
  5. Test the single-interviewer edge case (one avatar shown, no stacking)
  6. Use the search bar to filter by interviewer name

What should reviewers focus on?

  • The two-query pattern in getInterviewInvites(), this was necessary to avoid a Sequelize table name specified more than once error caused by deep nested joins through InterviewDelegation → InterviewedApplicantRecord → ApplicantRecord → Applicant. Worth a second look to make sure it's the right long-term approach

Checklist

  • My PR name is descriptive and in imperative tense
  • My commit messages are descriptive and in imperative tense. My commits are atomic and trivial commits are squashed or fixup'd into non-trivial commits
  • I have run the appropriate linter(s)
  • I have requested a review from the PL, as well as other devs who have background knowledge on this PR or who will be building on top of this PR

joc31yn and others added 5 commits June 20, 2026 18:39
- Implemented `getInterviewInvites` method in `InterviewCompositeService` to fetch interview groups with interviewers and interviewees.
- Updated `IInterviewCompositeService` interface to include the new method.
- Defined new types `InterviewInviteDTO` and `InterviewInviteeDTO` for interview invite data structure.
- Created GraphQL query for fetching interview invites and integrated it into the frontend using `InterviewInvitesAPIClient`.
- Developed `useInterviewInvites` hook for managing interview invites state in the admin panel.
- Enhanced `InterviewInviteList` and `InterviewInviteRow` components to display interview invites with filtering and selection functionality.
- Added tabs for categorizing invites into "Ready for Invite" and "Invites Sent".
- Improved UI with search functionality and action buttons for selecting and sending emails.
@mxc-maggiechen
mxc-maggiechen requested a review from gavxue July 7, 2026 23:24
@mxc-maggiechen mxc-maggiechen changed the title Ints26 interview invites page [INTS26] interview invites page Jul 8, 2026
@mxc-maggiechen
mxc-maggiechen self-requested a review July 8, 2026 00:24
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.

2 participants