import React, { useState, useEffect } from 'react'; import { Website } from '../types'; import IconPicker from './IconPicker'; import { getWebsiteIcon } from './utils/iconService'; import { icons } from 'lucide-react'; interface WebsiteEditModalProps { website?: Website; edit: boolean; onClose: () => void; onSave: (website: Partial) => void; onDelete: () => void; } const WebsiteEditModal: React.FC = ({ website, edit, onClose, onSave, onDelete }) => { const [name, setName] = useState(website ? website.name : ''); const [url, setUrl] = useState(website ? website.url : ''); const [icon, setIcon] = useState(website ? website.icon : ''); const [showIconPicker, setShowIconPicker] = useState(false); useEffect(() => { const fetchIcon = async () => { if (url) { const fetchedIcon = await getWebsiteIcon(url); setIcon(fetchedIcon); } }; fetchIcon(); }, [url]); const handleSave = () => { onSave({ id: website?.id, name, url, icon }); }; const handleOverlayClick = (e: React.MouseEvent) => { if (e.target === e.currentTarget) { onClose(); } }; const LucideIcon = icons[icon as keyof typeof icons]; return (

{edit ? 'Edit Website' : 'Add Website'}

{LucideIcon ? ( ) : ( Website Icon )}
setName(e.target.value)} className="bg-white/10 p-3 rounded-lg focus:outline-none focus:ring-2 focus:ring-cyan-400" /> setUrl(e.target.value)} className="bg-white/10 p-3 rounded-lg focus:outline-none focus:ring-2 focus:ring-cyan-400" />
setIcon(e.target.value)} className="bg-white/10 p-3 rounded-lg focus:outline-none focus:ring-2 focus:ring-cyan-400 w-full" />
{showIconPicker && ( { setIcon(iconName); setShowIconPicker(false); }} /> )}
{edit && ( )}
); }; export default WebsiteEditModal;