import React, { useState } from 'react'; import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd'; import ToggleSwitch from '../ToggleSwitch'; import { Config, Server } from '../../types'; interface ServerWidgetTabProps { config: Config; onChange: (updates: Partial) => void; } const ServerWidgetTab: React.FC = ({ config, onChange }) => { const [newServerName, setNewServerName] = useState(''); const [newServerAddress, setNewServerAddress] = useState(''); const updateServerWidget = (updates: Partial) => { onChange({ serverWidget: { ...config.serverWidget, ...updates } }); }; const handleAddServer = () => { if (newServerName.trim() === '' || newServerAddress.trim() === '') return; const newServer: Server = { id: Date.now().toString(), name: newServerName, address: newServerAddress, }; updateServerWidget({ servers: [...config.serverWidget.servers, newServer] }); setNewServerName(''); setNewServerAddress(''); }; const handleRemoveServer = (id: string) => { updateServerWidget({ servers: config.serverWidget.servers.filter((s) => s.id !== id), }); }; const onDragEnd = (result: any) => { if (!result.destination) return; const items = Array.from(config.serverWidget.servers); const [reorderedItem] = items.splice(result.source.index, 1); items.splice(result.destination.index, 0, reorderedItem); updateServerWidget({ servers: items }); }; return (
updateServerWidget({ enabled: checked })} />
{config.serverWidget.enabled && ( <>
updateServerWidget({ pingFrequency: Number(e.target.value) })} className="w-48" /> {config.serverWidget.pingFrequency}s

Servers

{(provided) => (
{config.serverWidget.servers.map((server: Server, index: number) => ( {(provided) => (

{server.name}

{server.address}

)}
))} {provided.placeholder}
)}
setNewServerName(e.target.value)} className="bg-white/10 p-2 rounded-lg w-full focus:outline-none focus:ring-2 focus:ring-cyan-400" /> setNewServerAddress(e.target.value)} className="bg-white/10 p-2 rounded-lg w-full focus:outline-none focus:ring-2 focus:ring-cyan-400" />
)}
); }; export default ServerWidgetTab;