import { X, UserPlus } from 'lucide-react'; import type { CalendarMemberInfo, CalendarPermission } from '@/types'; import { Checkbox } from '@/components/ui/checkbox'; import { useConfirmAction } from '@/hooks/useConfirmAction'; import PermissionBadge from './PermissionBadge'; import PermissionToggle from './PermissionToggle'; interface CalendarMemberRowProps { member: CalendarMemberInfo; isOwner: boolean; readOnly?: boolean; onUpdatePermission?: (memberId: number, permission: CalendarPermission) => void; onUpdateCanAddOthers?: (memberId: number, canAddOthers: boolean) => void; onRemove?: (memberId: number) => void; } export default function CalendarMemberRow({ member, isOwner, readOnly = false, onUpdatePermission, onUpdateCanAddOthers, onRemove, }: CalendarMemberRowProps) { const { confirming, handleClick: handleRemoveClick } = useConfirmAction( () => onRemove?.(member.id) ); const displayName = member.preferred_name || member.umbral_name; const initial = displayName.charAt(0).toUpperCase(); return (
{initial}
{displayName} {member.status === 'pending' && ( Pending )}
{member.preferred_name && ( {member.umbral_name} )}
{readOnly ? ( ) : isOwner ? (
onUpdatePermission?.(member.id, p)} /> {(member.permission === 'create_modify' || member.permission === 'full_access') && ( )}
) : ( )}
); }