import { useAccessLists } from '../hooks/useAccessLists'; import { ExternalLink } from 'lucide-react'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from './ui/Select'; interface AccessListSelectorProps { value: number | null; onChange: (id: number | null) => void; } export default function AccessListSelector({ value, onChange }: AccessListSelectorProps) { const { data: accessLists } = useAccessLists(); const selectedACL = accessLists?.find((acl) => acl.id === value); // Convert between component's string-based value and the prop's number|null const selectValue = value === null || value === undefined ? 'none' : String(value); const handleValueChange = (newValue: string) => { if (newValue === 'none') { onChange(null); } else { const numericId = parseInt(newValue, 10); if (!isNaN(numericId)) { onChange(numericId); } } }; return (
{selectedACL && (
{selectedACL.name} {selectedACL.type.replace('_', ' ')}
{selectedACL.description && (

{selectedACL.description}

)} {selectedACL.local_network_only && (
🏠 Local Network Only (RFC1918)
)} {selectedACL.type.startsWith('geo_') && selectedACL.country_codes && (
🌍 Countries: {selectedACL.country_codes}
)}
)}

Restrict access based on IP address, CIDR ranges, or geographic location.{' '} Manage lists {' • '} Best Practices

); }