fix(admin-ui): Checkbox in eigener Spalte; Grid-Layout; stopPropagation, kein Blank-Screen mehr
This commit is contained in:
parent
de8a9e1d50
commit
a38b130f8d
2 changed files with 7 additions and 5 deletions
|
|
@ -269,17 +269,17 @@ export default function App() {
|
||||||
const key = `${s.relativePath ?? s.fileName}`;
|
const key = `${s.relativePath ?? s.fileName}`;
|
||||||
const isFav = !!favs[key];
|
const isFav = !!favs[key];
|
||||||
return (
|
return (
|
||||||
<div key={`${s.fileName}-${s.name}`} className="sound-wrap">
|
<div key={`${s.fileName}-${s.name}`} className="sound-wrap row">
|
||||||
{isAdmin && (
|
{isAdmin && (
|
||||||
<input
|
<input
|
||||||
className="select-check"
|
className="row-check"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
checked={!!selectedSet[key]}
|
checked={!!selectedSet[key]}
|
||||||
onClick={(e) => { e.stopPropagation(); }}
|
onClick={(e) => { e.stopPropagation(); }}
|
||||||
onChange={(e) => setSelectedSet((prev) => ({ ...prev, [key]: e.target.checked }))}
|
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}
|
{s.isRecent ? '🆕 ' : ''}{s.name}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
.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; }
|
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
|
||||||
.sound-wrap { position: relative; }
|
.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 {
|
.select-check {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 8px;
|
left: 8px;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue