'use client'; import { useState } from 'react'; import { useAuth } from '@/lib/hooks/useAuth'; import { Building2, Beaker, Mail } from 'lucide-react'; import { Input } from '@/components/ui/common/Input'; import { Button } from '@/components/ui/common/Button'; export function OrganizationSelectorContent() { const { organizations, selectOrganization, createOrganization, isLoading, error, clearError } = useAuth(); const [isCreateOpen, setIsCreateOpen] = useState(false); const [organizationName, setOrganizationName] = useState(''); const [organizationEmail, setOrganizationEmail] = useState(''); const [organizationType, setOrganizationType] = useState<'CLINIC' | 'LAB'>('CLINIC'); const getIcon = (type: string) => type === 'CLINIC' ? : ; const handleCreateOrganization = async () => { try { clearError(); const createdId = await createOrganization( organizationName.trim(), organizationEmail.trim(), organizationType, ); setOrganizationName(''); setOrganizationEmail(''); setOrganizationType('CLINIC'); setIsCreateOpen(false); await selectOrganization(createdId); } catch { // handled by auth context } }; if (isLoading) { return

Loading...

; } return (

Organizations

Select an organization to continue, or create a new one.

{isCreateOpen && (
setOrganizationName(event.target.value)} placeholder="Sunshine Dental Clinic" icon={} /> setOrganizationEmail(event.target.value)} placeholder="contact@sunshineclinic.com" type="email" icon={} />
{error && (

{error}

)}
)} {!organizations.length ? (

No organizations found. Create your first one to continue.

) : (
{organizations.map((org) => ( ))}
)}
); }