'use client';
import { Check, Copy, Pencil, Trash2, UserCheck, UserX } from 'lucide-react';
import type { StaffMemberDto } from '@/lib/api/staff';
import { Badge } from '@/components/ui/shared/Badge';
import { Card } from '@/components/ui/shared/Card';
type StaffMembersMobileListProps = {
members: StaffMemberDto[];
canEdit: boolean;
organizationType: string | undefined;
copiedInviteMembershipId: string | null;
copyingInviteMembershipId: string | null;
enablingMembershipId: string | null;
disablingMembershipId: string | null;
formatAccessSummary: (member: StaffMemberDto) => string;
canShareInviteLink: (member: StaffMemberDto) => boolean;
canEnable: (member: StaffMemberDto) => boolean;
canDisable: (member: StaffMemberDto) => boolean;
onCopyInviteLink: (member: StaffMemberDto) => void;
onEnable: (member: StaffMemberDto) => void;
onDisable: (member: StaffMemberDto) => void;
onEdit: (member: StaffMemberDto) => void;
onDelete: (member: StaffMemberDto) => void;
labels: {
roleOwner: string;
roleStaff: string;
statusActive: string;
statusPending: string;
statusDisabled: string;
statusExpired: string;
allFeatures: string;
copyInviteLink: string;
enableMemberTitle: string;
disableMemberTitle: string;
editMemberAria: string;
deleteMemberAria: string;
};
};
function memberStatusBadge(
member: StaffMemberDto,
labels: StaffMembersMobileListProps['labels'],
) {
if (member.isOwner || member.invitationStatus === 'ACTIVE') {
return
{member.name}
{member.email}
{member.isOwner ? labels.roleOwner : labels.roleStaff}
{member.isOwner ? labels.allFeatures : formatAccessSummary(member)}
{!member.isOwner ? (