Altinity / Altinity/altinity-sql-browser

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

Open Beginner friendly
#489 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

inbox
Dominant language
TypeScript
Stars
8
Forks
2
Avg merge
1h 34m
Merged PRs (30d)
6

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/dashboard/application/dashboard-viewer-session.ts:562-563 and compare the existing title handling with src/application/dashboard-tree-model.ts:279. Review the rendering in src/ui/dashboard.ts:1881-1883, then add a regression test for a whitespace-only tile description; done means it falls back to the query description without rendering an empty description element.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.