import { useState } from 'react'; import { DSP } from '../../../../types'; import { Channel, InputSource } from '../../types'; import Button from '../../../../components/Button/Button'; import Card from '../../../../components/Card/Card'; import Led from '../../../../components/Led/Led'; import './MiscellaneousSection.css'; function MiscellaneousPanel({ dsp, onConnect, onDisconnect, factoryReset, copyChannel, setInputSource, linkChannels, unlockDevice, lockDevice, }: { dsp: DSP; onConnect: () => void; onDisconnect: () => void; factoryReset: (force: boolean) => Promise; copyChannel: (channel1: Channel, channel2: Channel) => Promise; setInputSource: (inputSource: InputSource) => Promise; linkChannels: (source: Channel, destinations: Channel[]) => Promise; unlockDevice: (password: string) => Promise; lockDevice: (password: string) => Promise; }) { const [isFactoryResetting, setIsFactoryResetting] = useState(false); const statusLabel = dsp.status === 'connected' ? 'Connected' : dsp.status === 'connecting' ? 'Connecting…' : 'Disconnected'; const handleFactoryReset = async () => { const confirmed = window.confirm( 'Are you sure you want to factory reset this DSP? This cannot be undone.', ); if (!confirmed) { return; } setIsFactoryResetting(true); try { await factoryReset(true); } finally { setIsFactoryResetting(false); } }; return (

{dsp.name}

{dsp.type}
{statusLabel}
IP address
{dsp.ip}
Port
{dsp.port}
Device ID
{dsp.deviceId || '—'}
{dsp.status === 'connected' ? ( ) : ( )}
); } export default MiscellaneousPanel;