Altinity / Altinity/altinity-sql-browser

A whitespace-only tile description beats the query description (the #476 sibling)

Offen Anfängerfreundlich
#489 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

inbox
Vorherrschende Sprache
TypeScript
Sterne
8
Forks
2
Ø Merge
1 Std. 34 Min.
Gemergte PRs (30 T.)
6

Beschreibung

Spotted while shipping #429 phase 1 (#476's title trim). Deferred deliberately:
#476's scope, and its acceptance criterion, are about the title — a blank
description corrupts no accessible name, so it did not belong in that PR.

The gap

src/dashboard/application/dashboard-viewer-session.ts:562-563 — one line below
the title that #429 phase 1 just fixed:

const description = (typeof tile.description === 'string' && tile.description)
  || (typeof query?.spec?.description === 'string' ? query.spec.description : '');

A whitespace-only tile.description is truthy, so it beats the query's own
description exactly the way a whitespace-only tile.title used to beat the query
name. dashboardTileV1.description carries no minLength, so such a document is
schema-legal.

What the user sees

src/ui/dashboard.ts:1881-1883 renders the description conditionally:

ts.description ? h('span', { class: 'dash-tile-desc', title: ts.description }, ts.description) : null

so " " renders an empty .dash-tile-desc span with a whitespace title
tooltip
, taking vertical space under the heading, instead of falling back to the
query description that is sitting right there.

The inconsistency it leaves

src/application/dashboard-tree-model.ts:279 already trims tile description for
its search haystack. After #429 phase 1 the tree and the viewer agree on title and
disagree on description — the tree treats blank as absent, the canvas does not.

Suggested fix

The same one-line shape phase 1 applied to the title:

const authoredDescription = typeof tile.description === 'string' ? tile.description.trim() : '';
const description = authoredDescription
  || (typeof query?.spec?.description === 'string' ? query.spec.description : '');

Needs its own test, for the same reason the title trim did: it is a behaviour
change for existing documents carrying such a description. No shipped UI writes
tile.description today, so only hand-authored and imported documents are
affected.

Related, same class, but NOT for this issue

src/ui/file-menu.ts reads dashboard.title untrimmed (:630, :648, :1010,
:1044 — the last one produces a whitespace export filename), while
src/application/dashboard-tree-model.ts:382 trims it. That one belongs to
#429 phase 3, which owns the Dashboard rename pencil and is already required
to "apply the same rule to any title this issue's dialogs write" — it is recorded
in the #429 ship log rather than filed here.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit src/dashboard/application/dashboard-viewer-session.ts:562-563 und vergleiche die bestehende Titelbehandlung mit src/application/dashboard-tree-model.ts:279. Überprüfe das Rendering in src/ui/dashboard.ts:1881-1883 und füge anschließend einen Regressionstest für eine Kachelbeschreibung hinzu, die nur aus Leerzeichen besteht; fertig ist es, wenn auf die Abfragebeschreibung zurückgefallen wird, ohne ein leeres Beschreibungselement zu rendern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
frontend
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
78/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.