Add shared UI components for mesh application

- Introduced `mesh_ui.dart` with reusable widgets including SectionHeader, MeshCard, StatusChip, StatTile, AvatarCircle, SignalBars, RouteChip, PulseDot, BottomSheetHeader, ErrorRetryCard, and ListEntrance.
- Implemented `path_map_ui.dart` for path map screens, featuring path distance calculations, playback controls, and a summary list of observed paths.
- Created `themed_map_tile_layer.dart` for shared cached map tiles with automatic dark-mode treatment.
This commit is contained in:
zjs81
2026-06-12 21:04:02 -07:00
parent 6a31d304d3
commit 51d6210920
72 changed files with 16778 additions and 7110 deletions
+8 -5
View File
@@ -7,6 +7,9 @@ import 'package:meshcore_open/l10n/l10n.dart';
import 'package:meshcore_open/screens/companion_radio_stats_screen.dart';
import 'package:provider/provider.dart';
import '../theme/mesh_theme.dart';
import 'mesh_ui.dart';
void pushCompanionRadioStatsScreen(BuildContext context) {
Navigator.push(
context,
@@ -140,12 +143,12 @@ class AirActivityDotState extends State<AirActivityDot> {
@override
Widget build(BuildContext context) {
final scheme = Theme.of(context).colorScheme;
final on = widget.active && _blink;
return Icon(
Icons.circle,
size: 12,
color: on ? scheme.primary : scheme.outline,
final scheme = Theme.of(context).colorScheme;
return PulseDot(
color: on ? MeshPalette.blue : scheme.outline,
size: 11,
animate: false,
);
}
}