fix(ui): typLabel in DeviceDiscovery definiert (Laufwerks-Details-Button gefixt) & Settings Tab-Wechsel robuster gemacht
Ampel / ampel (push) Successful in 28s

This commit is contained in:
Hitonabi
2026-07-24 17:04:18 +02:00
parent 67a4a76afa
commit fe1387b1ec
3 changed files with 16 additions and 6 deletions
@@ -43,6 +43,16 @@ function posterUrl(disc?: DiscInfo): string | null {
return p.startsWith('http') ? p : `https://image.tmdb.org/t/p/w342${p}` return p.startsWith('http') ? p : `https://image.tmdb.org/t/p/w342${p}`
} }
function typLabel(type: string): string {
switch (type) {
case 'cd': return 'Audio CD'
case 'dvd': return 'DVD'
case 'bluray': return 'Blu-ray'
case 'uhd': return '4K UHD'
default: return 'Unbekannt'
}
}
export default function DeviceDiscovery() { export default function DeviceDiscovery() {
const [devices, setDevices] = useState<Device[]>([]) const [devices, setDevices] = useState<Device[]>([])
const [loading, setLoading] = useState(true) const [loading, setLoading] = useState(true)
+3 -3
View File
@@ -70,12 +70,12 @@ export default function StorageMounts() {
const laden = async (manuell = false) => { const laden = async (manuell = false) => {
try { try {
const [m, t] = await Promise.all([ const [m, t] = await Promise.allSettled([
api.get('/storage-mounts'), api.get('/storage-mounts'),
api.get('/storage-targets'), api.get('/storage-targets'),
]) ])
setMounts(m.data) if (m.status === 'fulfilled') setMounts(m.value.data || [])
setTargets(t.data) if (t.status === 'fulfilled') setTargets(t.value.data || [])
if (manuell) toast('success', 'Speicherziele aktualisiert') if (manuell) toast('success', 'Speicherziele aktualisiert')
} catch { } catch {
if (manuell) toast('error', 'Speicherziele konnten nicht geladen werden') if (manuell) toast('error', 'Speicherziele konnten nicht geladen werden')
+3 -3
View File
@@ -222,11 +222,11 @@ export default function SettingsPage() {
onClick={() => setActiveTab(tab.id)} onClick={() => setActiveTab(tab.id)}
className={`px-5 py-3.5 text-sm font-medium transition-all flex items-center gap-2 border-b-2 whitespace-nowrap ${ className={`px-5 py-3.5 text-sm font-medium transition-all flex items-center gap-2 border-b-2 whitespace-nowrap ${
isActive isActive
? 'border-amber-500 text-amber-600 dark:text-amber-400 bg-white dark:bg-slate-900 font-semibold' ? 'border-amber-500 text-amber-400 bg-[#131929] font-bold'
: 'border-transparent text-slate-500 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200' : 'border-transparent text-slate-400 hover:text-slate-200 hover:bg-slate-900/50'
}`} }`}
> >
<tab.icon size={17} className={isActive ? 'text-amber-500' : ''} /> <tab.icon size={17} className={isActive ? 'text-amber-400' : ''} />
<span>{tab.label}</span> <span>{tab.label}</span>
</button> </button>
) )