Accept XOInvitationCommit when identifying paricipants

This commit is contained in:
2026-05-19 13:37:01 +02:00
parent e9bc6186b9
commit 941414b3ee

View File

@@ -7,7 +7,7 @@
*/ */
import type { Invitation } from "../services/invitation.js"; 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. * Color names for invitation states.
@@ -249,9 +249,9 @@ export function formatInvitationId(id: string, maxLength: number = 16): string {
* @param invitation - The invitation to check * @param invitation - The invitation to check
* @returns Array of unique entity identifiers * @returns Array of unique entity identifiers
*/ */
export function getInvitationParticipants(invitation: Invitation): string[] { export function getInvitationParticipants(commits: Array<XOInvitationCommit>): string[] {
const participants = new Set<string>(); const participants = new Set<string>();
for (const commit of invitation.data.commits || []) { for (const commit of commits) {
if (commit.entityIdentifier) { if (commit.entityIdentifier) {
participants.add(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 * @returns True if the user has made at least one commit
*/ */
export function isUserParticipant( export function isUserParticipant(
invitation: Invitation, invitation: Invitation | Array<XOInvitationCommit>,
userEntityId: string | null, userEntityId: string | null,
): boolean { ): boolean {
if (!userEntityId) return false; 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);
} }