fix(ux): quick wins from the usertest medium list
Some checks are pending
Security / Security check (push) Waiting to run
Some checks are pending
Security / Security check (push) Waiting to run
- audit type filter: 'Alle'/'All' capitalized like every other label - settings -> setup wizard: close Settings first (one modal layer), stronger wizard scrim - try-out setup profile discloses the upgrade path to a regulated profile - store maturity pills explain themselves on hover (experimental/ published/planned) Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
ae97b88257
commit
eab58c0b68
8 changed files with 93 additions and 26 deletions
|
|
@ -897,6 +897,25 @@ String _statusDisplayName(BuildContext ctx, String wire) {
|
|||
}
|
||||
}
|
||||
|
||||
/// Maturity pill with an inline explanation on hover — "experimental"
|
||||
/// alone left buyers guessing what it means for production use
|
||||
/// (usertest finding). Unknown wire values get a plain pill.
|
||||
Widget _statusPill(BuildContext ctx, String wire) {
|
||||
final l = AppLocalizations.of(ctx)!;
|
||||
final pill = ChainPill(
|
||||
label: _statusDisplayName(ctx, wire),
|
||||
tone: _toneForStatus(wire),
|
||||
);
|
||||
final help = switch (wire) {
|
||||
'published' => l.storeStatusPublishedHelp,
|
||||
'alpha' => l.storeStatusAlphaHelp,
|
||||
'planned' => l.storeStatusPlannedHelp,
|
||||
_ => null,
|
||||
};
|
||||
if (help == null) return pill;
|
||||
return Tooltip(message: help, child: pill);
|
||||
}
|
||||
|
||||
/// Multi-line ask-and-search input. Drives the toolbar's
|
||||
/// primary action: substring keyword search on every keystroke
|
||||
/// (cheap, identical to the legacy `_SearchField`) plus an
|
||||
|
|
@ -1925,10 +1944,7 @@ class _FeaturedTile extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: ChainSpace.xs),
|
||||
if (item.status.isNotEmpty)
|
||||
ChainPill(
|
||||
label: _statusDisplayName(context, item.status),
|
||||
tone: _toneForStatus(item.status),
|
||||
),
|
||||
_statusPill(context, item.status),
|
||||
const Spacer(),
|
||||
if (item.installed)
|
||||
ChainPill(
|
||||
|
|
@ -2114,10 +2130,7 @@ class _StoreCardState extends State<_StoreCard> {
|
|||
icon: Icons.check,
|
||||
)
|
||||
else if (item.status.isNotEmpty)
|
||||
ChainPill(
|
||||
label: _statusDisplayName(context, item.status),
|
||||
tone: _toneForStatus(item.status),
|
||||
),
|
||||
_statusPill(context, item.status),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: ChainSpace.sm),
|
||||
|
|
@ -2490,13 +2503,7 @@ class _StoreDetailSheetState extends State<_StoreDetailSheet> {
|
|||
),
|
||||
),
|
||||
if (item.status.isNotEmpty)
|
||||
ChainPill(
|
||||
label: _statusDisplayName(
|
||||
context,
|
||||
item.status,
|
||||
),
|
||||
tone: _toneForStatus(item.status),
|
||||
),
|
||||
_statusPill(context, item.status),
|
||||
if (item.category.isNotEmpty)
|
||||
ChainPill(
|
||||
label: _categoryDisplayName(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue