Better handoff from tags to edit sheet

This commit is contained in:
stopflock
2025-10-01 13:27:17 -05:00
parent 96b82ef416
commit 1aeae18ebc
3 changed files with 77 additions and 29 deletions
+18 -5
View File
@@ -69,7 +69,12 @@ class MapOverlays extends StatelessWidget {
),
child: Builder(
builder: (context) {
final zoom = mapController.camera.zoom;
double zoom = 15.0; // fallback
try {
zoom = mapController.camera.zoom;
} catch (_) {
// Map controller not ready yet
}
return Text(
'Zoom: ${zoom.toStringAsFixed(2)}',
style: const TextStyle(
@@ -118,8 +123,12 @@ class MapOverlays extends StatelessWidget {
mini: true,
heroTag: "zoom_in",
onPressed: () {
final zoom = mapController.camera.zoom;
mapController.move(mapController.camera.center, zoom + 1);
try {
final zoom = mapController.camera.zoom;
mapController.move(mapController.camera.center, zoom + 1);
} catch (_) {
// Map controller not ready yet
}
},
child: const Icon(Icons.add),
),
@@ -129,8 +138,12 @@ class MapOverlays extends StatelessWidget {
mini: true,
heroTag: "zoom_out",
onPressed: () {
final zoom = mapController.camera.zoom;
mapController.move(mapController.camera.center, zoom - 1);
try {
final zoom = mapController.camera.zoom;
mapController.move(mapController.camera.center, zoom - 1);
} catch (_) {
// Map controller not ready yet
}
},
child: const Icon(Icons.remove),
),
+9 -3
View File
@@ -6,8 +6,9 @@ import '../services/localization_service.dart';
class NodeTagSheet extends StatelessWidget {
final OsmNode node;
final VoidCallback? onEditPressed;
const NodeTagSheet({super.key, required this.node});
const NodeTagSheet({super.key, required this.node, this.onEditPressed});
@override
Widget build(BuildContext context) {
@@ -26,8 +27,13 @@ class NodeTagSheet extends StatelessWidget {
node.tags['_pending_deletion'] != 'true');
void _openEditSheet() {
Navigator.pop(context); // Close this sheet first
appState.startEditSession(node); // HomeScreen will auto-show the edit sheet
if (onEditPressed != null) {
onEditPressed!(); // Use callback if provided
} else {
// Fallback behavior
Navigator.pop(context); // Close this sheet first
appState.startEditSession(node); // HomeScreen will auto-show the edit sheet
}
}
void _deleteNode() async {