fix(ui): stat-tile overflow + visible build version
Two issues:
1. _StatTile in the Doctor page overflowed by ~6px on narrow
widths because the Row containing the icon + label "AUDIT
CHAIN" with letterSpacing=0.6 didn't fit in the ~90px
constraint per tile (4 tiles in a Row sharing the page
width). Fix: smaller icon (16→14), tighter gap, label wrapped
in Flexible with TextOverflow.ellipsis, and the longest label
shortened "AUDIT CHAIN" → "AUDIT" with the chain count moved
to the subtitle.
2. The new redesign was easy to mistake for the previous build
from the outside. Add a small monospaced version line right
under "F∆I Studio" in the sidebar header:
F∆I Studio
v0.7.1 · warm-minimalism
Self-identifying — "wrong build" is now visible without
reading the about dialog.
Bumps fai_studio 0.7.0 -> 0.7.1.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
671194c105
commit
d5631177e0
3 changed files with 28 additions and 12 deletions
|
|
@ -16,6 +16,11 @@ import 'theme/theme.dart';
|
||||||
import 'theme/tokens.dart';
|
import 'theme/tokens.dart';
|
||||||
import 'widgets/widgets.dart';
|
import 'widgets/widgets.dart';
|
||||||
|
|
||||||
|
/// Studio's own build version. Bump on every UI commit so the
|
||||||
|
/// running app self-identifies — visible in the sidebar header
|
||||||
|
/// and quick-glance proof that you're seeing the current build.
|
||||||
|
const String kStudioVersion = '0.7.1';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
// Restore the persisted endpoint and theme mode before the
|
// Restore the persisted endpoint and theme mode before the
|
||||||
|
|
@ -218,7 +223,15 @@ class _Sidebar extends StatelessWidget {
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: FaiSpace.xs),
|
const SizedBox(height: 2),
|
||||||
|
Text(
|
||||||
|
'v$kStudioVersion · warm-minimalism',
|
||||||
|
style: FaiTheme.mono(
|
||||||
|
size: 10,
|
||||||
|
color: theme.colorScheme.primary,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: FaiSpace.md),
|
||||||
// Connection pill.
|
// Connection pill.
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: FaiSpace.lg),
|
padding: const EdgeInsets.symmetric(horizontal: FaiSpace.lg),
|
||||||
|
|
|
||||||
|
|
@ -142,10 +142,10 @@ class _SummaryStrip extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(width: FaiSpace.md),
|
const SizedBox(width: FaiSpace.md),
|
||||||
_StatTile(
|
_StatTile(
|
||||||
label: 'Audit chain',
|
label: 'Audit',
|
||||||
value: snapshot.chainHealthy ? '✓' : '⚠',
|
value: snapshot.chainHealthy ? '✓' : '⚠',
|
||||||
subtitle:
|
subtitle:
|
||||||
'${snapshot.eventChainVerified}/${snapshot.eventChainTotal} verified',
|
'${snapshot.eventChainVerified}/${snapshot.eventChainTotal} chain',
|
||||||
icon: Icons.shield_outlined,
|
icon: Icons.shield_outlined,
|
||||||
tone: snapshot.chainHealthy
|
tone: snapshot.chainHealthy
|
||||||
? FaiPillTone.success
|
? FaiPillTone.success
|
||||||
|
|
@ -196,16 +196,19 @@ class _StatTile extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(icon, size: 16, color: theme.colorScheme.onSurfaceVariant),
|
Icon(icon, size: 14, color: theme.colorScheme.onSurfaceVariant),
|
||||||
const SizedBox(width: FaiSpace.sm),
|
const SizedBox(width: FaiSpace.xs),
|
||||||
Text(
|
Flexible(
|
||||||
|
child: Text(
|
||||||
label.toUpperCase(),
|
label.toUpperCase(),
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
style: theme.textTheme.labelSmall?.copyWith(
|
style: theme.textTheme.labelSmall?.copyWith(
|
||||||
color: theme.colorScheme.onSurfaceVariant,
|
color: theme.colorScheme.onSurfaceVariant,
|
||||||
letterSpacing: 0.6,
|
letterSpacing: 0.5,
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: FaiSpace.sm),
|
const SizedBox(height: FaiSpace.sm),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
name: fai_studio
|
name: fai_studio
|
||||||
description: "F∆I Studio — desktop GUI for the F∆I hub"
|
description: "F∆I Studio — desktop GUI for the F∆I hub"
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 0.1.0
|
version: 0.7.1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.11.0-200.1.beta
|
sdk: ^3.11.0-200.1.beta
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue