Add accepted leg edit notification and class leaderboard
All checks were successful
Release / meta (push) Successful in 12s
Release / linux-build (push) Successful in 1m0s
Release / web-build (push) Successful in 2m6s
Release / android-build (push) Successful in 6m8s
Release / release-master (push) Successful in 16s
Release / release-dev (push) Successful in 19s
All checks were successful
Release / meta (push) Successful in 12s
Release / linux-build (push) Successful in 1m0s
Release / web-build (push) Successful in 2m6s
Release / android-build (push) Successful in 6m8s
Release / release-master (push) Successful in 16s
Release / release-dev (push) Successful in 19s
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
@@ -14,8 +15,8 @@ class LegShareNotificationCard extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final data = context.read<DataService>();
|
||||
final legShareId = notification.body.trim();
|
||||
if (legShareId.isEmpty) {
|
||||
final legShareId = _extractLegShareId(notification.body);
|
||||
if (legShareId == null) {
|
||||
return const Text('Invalid leg share notification.');
|
||||
}
|
||||
final future = data.fetchLegShare(legShareId);
|
||||
@@ -144,4 +145,19 @@ class LegShareNotificationCard extends StatelessWidget {
|
||||
final path = '/add?share=${Uri.encodeComponent(share.id)}&ts=$ts';
|
||||
router.go(path, extra: target);
|
||||
}
|
||||
|
||||
String? _extractLegShareId(String rawBody) {
|
||||
final trimmed = rawBody.trim();
|
||||
if (trimmed.isEmpty) return null;
|
||||
if (RegExp(r'^[0-9]+$').hasMatch(trimmed)) return trimmed;
|
||||
try {
|
||||
final decoded = jsonDecode(trimmed);
|
||||
if (decoded is Map) {
|
||||
final id = decoded['share_id'] ?? decoded['leg_share_id'];
|
||||
final str = id?.toString() ?? '';
|
||||
if (RegExp(r'^[0-9]+$').hasMatch(str)) return str;
|
||||
}
|
||||
} catch (_) {}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user