import { useState } from 'react' import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import { useTranslation } from 'react-i18next' import { Link } from 'react-router-dom' import { serversApi, ServerListItem, ServerDetail, ServerUpdateRequest } from '../api/servers' // Icons const BackIcon = () => ( ) const SyncIcon = () => ( ) const EditIcon = () => ( ) const CheckIcon = () => ( ) const XIcon = () => ( ) const UsersIcon = () => ( ) // Country flags (simple emoji mapping) const getCountryFlag = (code: string | null): string => { if (!code) return '' const codeMap: Record = { 'RU': '🇷🇺', 'US': '🇺🇸', 'DE': '🇩🇪', 'NL': '🇳🇱', 'GB': '🇬🇧', 'FR': '🇫🇷', 'FI': '🇫🇮', 'SE': '🇸🇪', 'PL': '🇵🇱', 'CZ': '🇨🇿', 'AT': '🇦🇹', 'CH': '🇨🇭', 'UA': '🇺🇦', 'KZ': '🇰🇿', 'JP': '🇯🇵', 'KR': '🇰🇷', 'SG': '🇸🇬', 'HK': '🇭🇰', 'CA': '🇨🇦', 'AU': '🇦🇺', 'BR': '🇧🇷', 'IN': '🇮🇳', 'TR': '🇹🇷', 'IL': '🇮🇱', 'AE': '🇦🇪', } return codeMap[code.toUpperCase()] || code } interface ServerModalProps { server: ServerDetail onSave: (data: ServerUpdateRequest) => void onClose: () => void isLoading?: boolean } function ServerModal({ server, onSave, onClose, isLoading }: ServerModalProps) { const { t } = useTranslation() const [displayName, setDisplayName] = useState(server.display_name) const [description, setDescription] = useState(server.description || '') const [countryCode, setCountryCode] = useState(server.country_code || '') const [priceKopeks, setPriceKopeks] = useState(server.price_kopeks) const [maxUsers, setMaxUsers] = useState(server.max_users) const [sortOrder, setSortOrder] = useState(server.sort_order) const handleSubmit = () => { const data: ServerUpdateRequest = { display_name: displayName, description: description || undefined, country_code: countryCode || undefined, price_kopeks: priceKopeks, max_users: maxUsers || undefined, sort_order: sortOrder, } onSave(data) } return (
{/* Header */}
{getCountryFlag(server.country_code)}

{t('admin.servers.edit')}

{/* Content */}
{/* Original Name (readonly) */}
{server.original_name || server.squad_uuid}
{/* Display Name */}
setDisplayName(e.target.value)} className="w-full px-3 py-2 bg-dark-700 border border-dark-600 rounded-lg text-dark-100 focus:outline-none focus:border-accent-500" placeholder={t('admin.servers.displayNamePlaceholder')} />
{/* Description */}