mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
59115a09d2
### 10-Band Graphic Equalizer - Full EQ in Rust audio engine via EqSource<S> biquad peak filters - 10 built-in presets + custom preset save/delete - EqSource::try_seek() implemented — also fixes waveform seek which broke silently when EQ was introduced (rodio returned SeekError::NotSupported) - EQ state persisted in localStorage, synced to Rust on startup ### Connection Indicator - LED in header (green/red/pulsing) with server name and LAN/WAN label - Offline overlay with retry button when server is unreachable - useConnectionStatus hook ### New App Icon - New logo (logo-psysonic.png) applied across Login, Sidebar, Settings, README and all Tauri platform icons (Windows, macOS, Linux, Android, iOS) ### Now Playing Page - New /now-playing route added ### Fixes - WaveformSeek: mousemove/mouseup on window to fix drag outside canvas Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
890 B
TypeScript
31 lines
890 B
TypeScript
import { useTranslation } from 'react-i18next';
|
|
import { ConnectionStatus } from '../hooks/useConnectionStatus';
|
|
|
|
interface Props {
|
|
status: ConnectionStatus;
|
|
isLan: boolean;
|
|
serverName: string;
|
|
}
|
|
|
|
export default function ConnectionIndicator({ status, isLan, serverName }: Props) {
|
|
const { t } = useTranslation();
|
|
|
|
const label = isLan ? 'LAN' : t('connection.extern');
|
|
const title =
|
|
status === 'connected'
|
|
? t('connection.connected')
|
|
: status === 'disconnected'
|
|
? t('connection.disconnected')
|
|
: t('connection.checking');
|
|
|
|
return (
|
|
<div className="connection-indicator" title={title}>
|
|
<div className={`connection-led connection-led--${status}`} />
|
|
<div className="connection-meta">
|
|
<span className="connection-type">{label}</span>
|
|
<span className="connection-server">{serverName}</span>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|