import { useState } from 'react' import { Loader2, AlertTriangle } from 'lucide-react' import { accountsApi } from '@/api/accounts' import { useAuthStore } from '@/store/authStore' import type { AccountMember } from '@/types' import { cn } from '@/lib/utils' import { toast } from '@/lib/toast' interface Props { members: AccountMember[] onClose: () => void onTransferred: () => void } export function TransferOwnershipModal({ members, onClose, onTransferred }: Props) { const user = useAuthStore((s) => s.user) const nonOwnerMembers = members.filter((m) => m.id !== user?.id) const [targetUserId, setTargetUserId] = useState(nonOwnerMembers[0]?.id ?? '') const [password, setPassword] = useState('') const [isSubmitting, setIsSubmitting] = useState(false) const [error, setError] = useState(null) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!targetUserId || !password) return setIsSubmitting(true) setError(null) try { await accountsApi.transferOwnership(password, targetUserId) toast.success('Ownership transferred') onTransferred() } catch (err) { const axiosErr = err as { response?: { data?: { detail?: string } } } setError(axiosErr.response?.data?.detail ?? 'Transfer failed') } finally { setIsSubmitting(false) } } return (

Transfer Ownership

This will make the selected member the new account owner. You will become an engineer.

{nonOwnerMembers.length === 0 ? (

No other members to transfer to.

) : (
setPassword(e.target.value)} required className={cn( 'mt-1 block w-full rounded-[10px] border border-border bg-card px-3 py-2', 'text-foreground focus:border-primary focus:outline-none' )} />
{error &&

{error}

}
)}
) }