Accept XOInvitationCommit when identifying paricipants
This commit is contained in:
@@ -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<XOInvitationCommit>): string[] {
|
||||
const participants = new Set<string>();
|
||||
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<XOInvitationCommit>,
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user