Notizfeld bei EAN-Codes bekommt Platz, Seite nutzt mehr Breite

Bei einem Code mit langem Artikelnamen war das Notizfeld auf wenige Pixel
zusammengequetscht ("Zucker - Feinkristallzucker" brach auf zwei Zeilen um und
nahm dem Feld den Raum), waehrend es beim Nachbarcode normal breit war.

Drei Ursachen, alle behoben:

Der Inhalt lag als Inline-Stil in einer Flex-Zeile ohne Regeln fuer den
Umgang mit Platzmangel. Jetzt eigene Klassen: Der Artikelname kuerzt mit
Auslassungspunkten statt umzubrechen, das Notizfeld hat eine Mindestbreite von
150px und waechst mit, die Zeile darf bei echtem Platzmangel umbrechen. Auch die
Zeile zum Hinzufuegen bricht jetzt um, statt "EAN scannen oder eingeben" auf
"EAN scani" zu stutzen.

Die Seite war auf 1080px begrenzt. Auf breiten Bildschirmen blieb dadurch viel
Flaeche leer, obwohl Tabelle und Seitenblock sie gut gebrauchen koennen; jetzt
1400px.

Der Seitenblock war exakt halb so breit wie die Tabelle. Auf der Gruppenseite
bekommt er nun eine Mindestbreite von 360px, damit Code, Kennzeichnung,
Artikelname und Notizfeld nebeneinander Platz haben. Unterhalb von 820px stapelt
sich weiterhin alles untereinander.

Getestet: Web-Build laeuft durch. Die Darstellung im Browser habe ich nicht
selbst angesehen - die Breiten sind rechnerisch gesetzt, nicht ausprobiert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-22 21:44:50 +02:00
parent 5293810529
commit e20a61bf3b
3 changed files with 27 additions and 11 deletions

View File

@@ -36,28 +36,27 @@ export default function BarcodeList({
<ul className="simple-list">
{productBarcodes.map((b) => (
<li key={`p-${b.code}`}>
<span style={{ display: "flex", alignItems: "center", gap: 8, minWidth: 0 }}>
<span className="code-row">
<code className="strong">{b.code}</code>
<span className="badge">Artikel</span>
<span className="muted small">{b.product_name}</span>
<span className="muted small owner">{b.product_name}</span>
</span>
</li>
))}
{barcodes.map((b) => (
<li key={b.id ?? b.code}>
<span style={{ display: "flex", alignItems: "center", gap: 8, minWidth: 0, flex: 1 }}>
<span className="code-row">
<code className="strong">{b.code}</code>
{/* Gehört der Code über einen Artikel zur Gruppe, steht das dabei
eine Notiz ist trotzdem möglich. */}
{b.product_name && (
<>
<span className="badge">Artikel</span>
<span className="muted small">{b.product_name}</span>
<span className="muted small owner">{b.product_name}</span>
</>
)}
{onEditNote && !disabled ? (
<input defaultValue={b.note || ""} placeholder="Notiz…"
style={{ marginTop: 0, maxWidth: 220 }}
<input className="note-input" defaultValue={b.note || ""} placeholder="Notiz…"
onBlur={(e) => {
const wert = e.target.value.trim();
if (wert !== (b.note || "")) onEditNote(b.code, wert);
@@ -83,7 +82,7 @@ export default function BarcodeList({
</ul>
{!disabled && (
<form className="field-inline" onSubmit={add} style={{ marginTop: "var(--sp-3)" }}>
<form className="field-inline code-add" onSubmit={add} style={{ marginTop: "var(--sp-3)" }}>
<input placeholder="EAN scannen oder eingeben" value={code}
onChange={(e) => setCode(e.target.value)} />
<input placeholder="Notiz, z.B. Mehl bei Aldi" value={note}