import { FormControl, FormField, FormItem, FormLabel, FormMessage, FormDescription } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { UseFormReturn } from "react-hook-form"; import { ServiceFormData } from "./types"; import { useLanguage } from "@/contexts/LanguageContext.tsx"; interface ServiceUrlFieldProps { form: UseFormReturn; } export function ServiceUrlField({ form }: ServiceUrlFieldProps) { const { t } = useLanguage(); const serviceType = form.watch("type"); const getPlaceholder = () => { switch (serviceType) { case "http": return "https://example.com"; case "ping": return "example.com or 192.168.1.1"; case "tcp": return "example.com or 192.168.1.1"; case "dns": return "example.com"; default: return t("targetDefaultPlaceholder"); } }; const getDescription = () => { switch (serviceType) { case "http": return t("targetHTTPDesc"); case "ping": return t("targetPINGDesc"); case "tcp": return t("targetTCPDesc"); case "dns": return t("targetDNSDesc"); default: return t("targetDefaultDesc"); } }; const getFieldLabel = () => { switch (serviceType) { case "dns": return t("targetDNS"); case "ping": return "Hostname/IP"; case "tcp": return "Hostname/IP"; default: return t("targetDefault"); } }; return (
( {getFieldLabel()} { // console.log(`${serviceType === "dns" ? "Domain" : serviceType === "tcp" ? "Host" : "URL"} field changed:`, e.target.value); field.onChange(e); }} /> {getDescription()} )} /> {serviceType === "tcp" && ( ( Port { // console.log("Port field changed:", e.target.value); field.onChange(e); }} /> {t("targetTCPPortDesc")} )} /> )}
); }