feat(store): advisory-version badge for federated entries
Some checks failed
Security / Security check (push) Failing after 1s
Some checks failed
Security / Security check (push) Failing after 1s
Store cards + detail-sheet now prefix the version pill with `~` and attach a tooltip for federated entries (MCP / n8n / Temporal). Upstream services don't honour semver, so the version pill is a label, not a contract — the tilde says "this number may change without a version bump." Three render sites updated to stay visually consistent: - compact card pill in grid view - expanded card pill row - detail-sheet header pill cluster EN + DE l10n entries added (`storeAdvisoryVersionTooltip`) and `app_localizations.dart` regenerated. dart analyze clean; flutter test green (11 tests). Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
c5a96bc8d4
commit
327bc0fea2
7 changed files with 55 additions and 13 deletions
|
|
@ -1661,10 +1661,22 @@ class _FeaturedTile extends StatelessWidget {
|
|||
Row(
|
||||
children: [
|
||||
if (item.bestVersion.isNotEmpty)
|
||||
FaiPill(
|
||||
label: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
Tooltip(
|
||||
// Federated upstream services (MCP, n8n,
|
||||
// Temporal workflows) don't honour semver,
|
||||
// so their version pill carries a "~"
|
||||
// prefix + tooltip noting that the value
|
||||
// is advisory only.
|
||||
message: item.isFederated
|
||||
? l.storeAdvisoryVersionTooltip
|
||||
: '',
|
||||
child: FaiPill(
|
||||
label: item.isFederated
|
||||
? '~v${item.bestVersion}'
|
||||
: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: FaiSpace.xs),
|
||||
if (item.status.isNotEmpty)
|
||||
|
|
@ -1835,10 +1847,17 @@ class _StoreCard extends StatelessWidget {
|
|||
Row(
|
||||
children: [
|
||||
if (item.bestVersion.isNotEmpty) ...[
|
||||
FaiPill(
|
||||
label: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
Tooltip(
|
||||
message: item.isFederated
|
||||
? l.storeAdvisoryVersionTooltip
|
||||
: '',
|
||||
child: FaiPill(
|
||||
label: item.isFederated
|
||||
? '~v${item.bestVersion}'
|
||||
: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: FaiSpace.xs),
|
||||
],
|
||||
|
|
@ -2134,10 +2153,17 @@ class _StoreDetailSheetState extends State<_StoreDetailSheet> {
|
|||
runSpacing: 4,
|
||||
children: [
|
||||
if (item.bestVersion.isNotEmpty)
|
||||
FaiPill(
|
||||
label: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
Tooltip(
|
||||
message: item.isFederated
|
||||
? l.storeAdvisoryVersionTooltip
|
||||
: '',
|
||||
child: FaiPill(
|
||||
label: item.isFederated
|
||||
? '~v${item.bestVersion}'
|
||||
: 'v${item.bestVersion}',
|
||||
tone: FaiPillTone.neutral,
|
||||
monospace: true,
|
||||
),
|
||||
),
|
||||
if (item.status.isNotEmpty)
|
||||
FaiPill(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue