'use client'; import { Check, History, Trash2, UserPlus, X } from 'lucide-react'; import type { CounterpartItemDto, CounterpartSearchResultDto, } from '@/lib/api/organization'; import { Badge, organizationConnectionStatusVariant } from '@/components/ui/shared/Badge'; import { Button } from '@/components/ui/shared/Button'; import { Card } from '@/components/ui/shared/Card'; import { Input } from '@/components/ui/shared/Input'; import { CopyInvitationLinkButton } from '@/components/ui/organizations/CopyInvitationLinkButton'; import type { InvitationLinkTarget } from '@/components/invitations/organizationInviteLinks'; type OrganizationConnectionsMobileListProps = { loading: boolean; mode: 'existing' | 'search'; existingRows: CounterpartItemDto[]; searchResults: CounterpartSearchResultDto[]; currentOrganizationId: string; counterpart: string; pendingConnectionRowId: string | null; deleteConnectionRowId: string | null; copiedId: string | null; copyingInvitationId: string | null; showInviteForm: boolean; manualOrganizationName: string; manualOwnerEmail: string; inviteLoading: boolean; formatConnectionStatusLabel: (row: CounterpartItemDto, orgId: string) => string; formatTableDate: (value: string) => string; getInvitationTarget: (row: CounterpartItemDto) => InvitationLinkTarget | null; onCopyInvitation: (row: CounterpartItemDto) => void; onRespond: (rowId: string, action: 'ACCEPT' | 'REJECT') => void; onViewCaseHistory: (row: CounterpartItemDto) => void; onDeleteConnection: (rowId: string) => void; onSendConnectionRequest: (orgId: string) => void; onToggleInviteForm: () => void; onManualOrganizationNameChange: (value: string) => void; onManualOwnerEmailChange: (value: string) => void; onSendInvite: () => void; labels: { loading: string; emptyConnections: string; noDirectoryResults: string; hideInvitationFields: string; sendInvitationLink: string; counterpartNameLabel: string; ownerEmailLabel: string; sendInvitation: string; sendRequest: string; acceptRequest: string; declineRequest: string; viewCaseHistory: string; removeConnection: string; statusToday: string; statusFound: string; }; }; export function OrganizationConnectionsMobileList({ loading, mode, existingRows, searchResults, currentOrganizationId, counterpart, pendingConnectionRowId, deleteConnectionRowId, copiedId, copyingInvitationId, showInviteForm, manualOrganizationName, manualOwnerEmail, inviteLoading, formatConnectionStatusLabel, formatTableDate, getInvitationTarget, onCopyInvitation, onRespond, onViewCaseHistory, onDeleteConnection, onSendConnectionRequest, onToggleInviteForm, onManualOrganizationNameChange, onManualOwnerEmailChange, onSendInvite, labels, }: OrganizationConnectionsMobileListProps) { if (loading) { return
{labels.loading}
; } if (mode === 'existing') { if (existingRows.length === 0) { return ({labels.emptyConnections}
); } return ({row.organizationName}
{row.ownerEmail}
{formatTableDate(row.createdAt)}
{result.name}
{result.owner.email}
{labels.statusToday}
{labels.noDirectoryResults}
{showInviteForm ? (