'use client' import { Check, ChevronDown, Home, Plus } from 'lucide-react' import { useState } from 'react' import { useActiveProperty, useProperties } from '../lib/properties/hooks' import { cn } from '@/lib/utils' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/primitives/dropdown-menu' import { NewPropertyDialog } from './new-property-dialog' /** * PropertyDropdown - Shows active property and allows switching between properties */ export function PropertyDropdown() { const { properties, isLoading: propertiesLoading, refetch } = useProperties() const { activeProperty, setActiveProperty, isPending } = useActiveProperty() const [isNewPropertyDialogOpen, setIsNewPropertyDialogOpen] = useState(false) const handlePropertySelect = async (propertyId: string) => { await setActiveProperty(propertyId) } const handleAddNew = () => { setIsNewPropertyDialogOpen(true) } const handlePropertyCreated = () => { refetch() } return ( <> {activeProperty ? activeProperty.name : properties.length > 0 ? 'Select Property' : 'Add Property'} {/* Property list */} {properties.length > 0 ? ( {properties.map((property) => ( activeProperty?.id === property.id ? null : handlePropertySelect(property.id) } > {property.name} {activeProperty?.id === property.id && ( )} ))} ) : ( No properties yet )} {/* Add new property option */} Add new property > ) }