"use client" import { Link, Loader2 } from "lucide-react" import { useState } from "react" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { useDictionary } from "@/hooks/use-dictionary" interface UrlInputDialogProps { open: boolean onOpenChange: (open: boolean) => void onSubmit: (url: string) => void isExtracting: boolean } export function UrlInputDialog({ open, onOpenChange, onSubmit, isExtracting, }: UrlInputDialogProps) { const dict = useDictionary() const [url, setUrl] = useState("") const [error, setError] = useState("") const handleSubmit = () => { setError("") if (!url.trim()) { setError(dict.url.enterUrl) return } try { new URL(url) } catch { setError(dict.url.invalidFormat) return } onSubmit(url.trim()) } const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter" && !isExtracting) { e.preventDefault() handleSubmit() } } return ( {dict.url.title} {dict.url.description}
{ setUrl(e.target.value) setError("") }} onKeyDown={handleKeyDown} placeholder="https://example.com/article" disabled={isExtracting} autoFocus /> {error && (

{error}

)}
) }