diff --git a/lib/widgets/camera_tag_sheet.dart b/lib/widgets/camera_tag_sheet.dart index 1e18cf7..24ae4b3 100644 --- a/lib/widgets/camera_tag_sheet.dart +++ b/lib/widgets/camera_tag_sheet.dart @@ -20,14 +20,16 @@ class CameraTagSheet extends StatelessWidget { void _openEditSheet() { Navigator.pop(context); // Close this sheet first appState.startEditSession(node); - final session = appState.editSession!; - // Show the edit sheet - showModalBottomSheet( - context: context, - builder: (_) => EditCameraSheet(session: session), - showDragHandle: true, - ); + // Show the edit sheet using a post-frame callback to ensure proper context + WidgetsBinding.instance.addPostFrameCallback((_) { + final session = appState.editSession!; + showModalBottomSheet( + context: context, + builder: (_) => EditCameraSheet(session: session), + showDragHandle: true, + ); + }); } return SafeArea( diff --git a/lib/widgets/map/direction_cones.dart b/lib/widgets/map/direction_cones.dart index 005b19f..068e862 100644 --- a/lib/widgets/map/direction_cones.dart +++ b/lib/widgets/map/direction_cones.dart @@ -13,6 +13,7 @@ class DirectionConesBuilder { required List cameras, required double zoom, AddCameraSession? session, + EditCameraSession? editSession, }) { final overlays = []; @@ -22,13 +23,25 @@ class DirectionConesBuilder { session.target!, session.directionDegrees, zoom, + isSession: true, )); } - // Add cones for cameras with direction + // Add edit session cone if in edit-camera mode + if (editSession != null) { + overlays.add(_buildCone( + editSession.target, + editSession.directionDegrees, + zoom, + isSession: true, + )); + } + + // Add cones for cameras with direction (but exclude camera being edited) overlays.addAll( cameras - .where(_isValidCameraWithDirection) + .where((n) => _isValidCameraWithDirection(n) && + (editSession == null || n.id != editSession.originalNode.id)) .map((n) => _buildCone( n.coord, n.directionDeg!, diff --git a/lib/widgets/map_view.dart b/lib/widgets/map_view.dart index 43f29b2..7931b23 100644 --- a/lib/widgets/map_view.dart +++ b/lib/widgets/map_view.dart @@ -309,6 +309,7 @@ class MapViewState extends State { cameras: cameras, zoom: zoom, session: session, + editSession: editSession, ); return Stack(