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

This commit is contained in:
2026-01-05 01:09:43 +00:00
parent 42ac7a97e1
commit 8ab3f53c0d
11 changed files with 1114 additions and 132 deletions

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mileograph_flutter/services/authservice.dart';
import 'package:mileograph_flutter/services/data_service.dart';
import 'package:mileograph_flutter/services/distance_unit_service.dart';
import 'package:provider/provider.dart';
@@ -130,14 +132,38 @@ class _LeaderboardPanelState extends State<LeaderboardPanel> {
fontWeight: FontWeight.w700,
),
),
trailing: Text(
distanceUnits.format(
leaderboard[index].mileage,
decimals: 1,
),
style: textTheme.labelLarge?.copyWith(
fontWeight: FontWeight.w700,
),
trailing: Wrap(
crossAxisAlignment: WrapCrossAlignment.center,
spacing: 8,
children: [
Text(
distanceUnits.format(
leaderboard[index].mileage,
decimals: 1,
),
style: textTheme.labelLarge?.copyWith(
fontWeight: FontWeight.w700,
),
),
Builder(
builder: (ctx) => IconButton(
tooltip: 'View profile',
icon: const Icon(Icons.open_in_new, size: 20),
onPressed: () {
final auth = ctx.read<AuthService>();
final userId = leaderboard[index].userId;
if (auth.userId == userId) {
ctx.go('/more/profile');
} else {
ctx.pushNamed(
'user-profile',
queryParameters: {'user_id': userId},
);
}
},
),
),
],
),
),
if (index != leaderboard.length - 1) const Divider(height: 12),