diff --git a/src/utils/invitation-utils.ts b/src/utils/invitation-utils.ts index 3706352..d9ca6f3 100644 --- a/src/utils/invitation-utils.ts +++ b/src/utils/invitation-utils.ts @@ -7,7 +7,7 @@ */ import type { Invitation } from "../services/invitation.js"; -import type { XOTemplate } from "@xo-cash/types"; +import type { XOInvitationCommit, XOTemplate } from "@xo-cash/types"; /** * Color names for invitation states. @@ -249,9 +249,9 @@ export function formatInvitationId(id: string, maxLength: number = 16): string { * @param invitation - The invitation to check * @returns Array of unique entity identifiers */ -export function getInvitationParticipants(invitation: Invitation): string[] { +export function getInvitationParticipants(commits: Array): string[] { const participants = new Set(); - for (const commit of invitation.data.commits || []) { + for (const commit of commits) { if (commit.entityIdentifier) { participants.add(commit.entityIdentifier); } @@ -267,9 +267,14 @@ export function getInvitationParticipants(invitation: Invitation): string[] { * @returns True if the user has made at least one commit */ export function isUserParticipant( - invitation: Invitation, + invitation: Invitation | Array, userEntityId: string | null, ): boolean { if (!userEntityId) return false; - return getInvitationParticipants(invitation).includes(userEntityId); + + if (Array.isArray(invitation)) { + return invitation.some(commit => commit.entityIdentifier === userEntityId); + } + + return getInvitationParticipants(invitation.data.commits).includes(userEntityId); }