fix: page-named toolbar title + ellipsized needs-modules chip (0.21.1)
With no flow open the toolbar header said 'Kein Flow geöffnet' and
read as the page title (usertest finding); it now names the page
('Flows') while the empty state keeps the explanatory sentence. The
'needs N modules' chip ellipsizes in the narrow flow list instead of
overflowing its row on longer German labels.
Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
fb41a518c9
commit
c4d3751e85
4 changed files with 35 additions and 10 deletions
13
CHANGELOG.md
13
CHANGELOG.md
|
|
@ -4,6 +4,19 @@ All notable changes to `chain_studio_flow_editor` recorded here.
|
||||||
Studio bumps its `pubspec.yaml` git ref to a specific release
|
Studio bumps its `pubspec.yaml` git ref to a specific release
|
||||||
of this package on every editor change.
|
of this package on every editor change.
|
||||||
|
|
||||||
|
## 0.21.1 — 2026-07-11
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Toolbar names the page, not the missing state.** With no flow
|
||||||
|
open the header said "No flow open" / "Kein Flow geöffnet" — the
|
||||||
|
usertest read it as a confusing page title. It now says "Flows";
|
||||||
|
the state sentence stays in the centered empty state.
|
||||||
|
- **"Needs N modules" chip no longer overflows the flow list.** The
|
||||||
|
label ellipsizes inside the narrow sidebar (the tooltip keeps the
|
||||||
|
full text); previously it tripped a RenderFlex overflow by a few
|
||||||
|
pixels on longer German labels.
|
||||||
|
|
||||||
## 0.21.0 — 2026-06-09
|
## 0.21.0 — 2026-06-09
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
|
||||||
|
|
@ -925,10 +925,13 @@ class _Toolbar extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(width: FaiSpace.xs),
|
const SizedBox(width: FaiSpace.xs),
|
||||||
],
|
],
|
||||||
|
// With no flow open the toolbar acts as the page header, so
|
||||||
|
// it says what the page IS ("Flows"), not what it lacks —
|
||||||
|
// the state sentence stays in the centered empty state.
|
||||||
Text(
|
Text(
|
||||||
activeName == null ? strings.emptyTitle : '${activeName!}.yaml',
|
activeName == null ? strings.pageTitle : '${activeName!}.yaml',
|
||||||
style: theme.textTheme.titleSmall?.copyWith(
|
style: theme.textTheme.titleSmall?.copyWith(
|
||||||
fontFamily: 'monospace',
|
fontFamily: activeName == null ? null : 'monospace',
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
// Dirty file name renders in the primary accent
|
// Dirty file name renders in the primary accent
|
||||||
// so the operator sees "this file has unsaved
|
// so the operator sees "this file has unsaved
|
||||||
|
|
@ -1486,13 +1489,19 @@ class _MissingModulesBadge extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
const Icon(Icons.extension_off_outlined, size: 10, color: warn),
|
const Icon(Icons.extension_off_outlined, size: 10, color: warn),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
// Flexible + ellipsis: the chip sits in the narrow flow
|
||||||
label,
|
// list, where the full label otherwise overflows by a few
|
||||||
style: theme.textTheme.labelSmall?.copyWith(
|
// pixels (the tooltip still carries the complete text).
|
||||||
color: warn,
|
Flexible(
|
||||||
fontSize: 10,
|
child: Text(
|
||||||
fontWeight: FontWeight.w600,
|
label,
|
||||||
letterSpacing: 0.2,
|
overflow: TextOverflow.ellipsis,
|
||||||
|
style: theme.textTheme.labelSmall?.copyWith(
|
||||||
|
color: warn,
|
||||||
|
fontSize: 10,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
letterSpacing: 0.2,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,9 @@ class FlowEditorStrings {
|
||||||
String get listHeader => _t('FLOWS', 'FLOWS');
|
String get listHeader => _t('FLOWS', 'FLOWS');
|
||||||
String get copy => _t('Copy', 'Kopieren');
|
String get copy => _t('Copy', 'Kopieren');
|
||||||
String get runOutput => _t('RUN OUTPUT', 'LAUF-ERGEBNIS');
|
String get runOutput => _t('RUN OUTPUT', 'LAUF-ERGEBNIS');
|
||||||
|
/// Toolbar title while no flow is open — names the page, never
|
||||||
|
/// the missing state (that sentence lives in the empty state).
|
||||||
|
String get pageTitle => _t('Flows', 'Flows');
|
||||||
String get emptyTitle => _t('No flow open', 'Kein Flow geöffnet');
|
String get emptyTitle => _t('No flow open', 'Kein Flow geöffnet');
|
||||||
String get emptyBody => _t(
|
String get emptyBody => _t(
|
||||||
'Pick one from the left, or click New flow to start a fresh one.',
|
'Pick one from the left, or click New flow to start a fresh one.',
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
name: chain_studio_flow_editor
|
name: chain_studio_flow_editor
|
||||||
description: Swappable inline YAML editor for F∆I Studio flows.
|
description: Swappable inline YAML editor for F∆I Studio flows.
|
||||||
version: 0.21.0
|
version: 0.21.1
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
repository: https://git.flemming.ai/fai/studio-flow-editor
|
repository: https://git.flemming.ai/fai/studio-flow-editor
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue