fix(admin-ui): Checkbox in eigener Spalte; Grid-Layout; stopPropagation, kein Blank-Screen mehr

This commit is contained in:
vibe-bot 2025-08-08 14:46:07 +02:00
parent de8a9e1d50
commit a38b130f8d
2 changed files with 7 additions and 5 deletions

View file

@ -269,17 +269,17 @@ export default function App() {
const key = `${s.relativePath ?? s.fileName}`;
const isFav = !!favs[key];
return (
<div key={`${s.fileName}-${s.name}`} className="sound-wrap">
<div key={`${s.fileName}-${s.name}`} className="sound-wrap row">
{isAdmin && (
<input
className="select-check"
className="row-check"
type="checkbox"
checked={!!selectedSet[key]}
onClick={(e) => { e.stopPropagation(); }}
onChange={(e) => setSelectedSet((prev) => ({ ...prev, [key]: e.target.checked }))}
/>
)}
<button className="sound" type="button" onClick={() => handlePlay(s.name, s.relativePath)} disabled={loading}>
<button className="sound" type="button" onClick={(e) => { e.stopPropagation(); handlePlay(s.name, s.relativePath); }} disabled={loading}>
{s.isRecent ? '🆕 ' : ''}{s.name}
</button>
<button

View file

@ -155,8 +155,10 @@ header p { opacity: .8; }
.error { background: rgba(255, 99, 99, .12); color: #ffd1d1; border: 1px solid rgba(255, 99, 99, .3); padding: 10px 12px; border-radius: 10px; margin-bottom: 12px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.sound-wrap { position: relative; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.sound-wrap { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; }
.sound-wrap.row .sound { width: 100%; }
.row-check { width: 18px; height: 18px; accent-color: #60a5fa; }
.select-check {
position: absolute;
left: 8px;