Skip to content

Commit

Permalink
fix: 🐛Fixed null check issue in 'RenderBox' at'layout_overlay.dart(#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Sahil-Simform authored Dec 3, 2024
1 parent 433095c commit 8f0ac0a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 18 deletions.
42 changes: 25 additions & 17 deletions lib/src/layout_overlays.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,26 @@ class AnchoredOverlay extends StatelessWidget {
overlayBuilder: (overlayContext) {
// To calculate the "anchor" point we grab the render box of
// our parent Container and then we find the center of that box.
final box = context.findRenderObject() as RenderBox;

final topLeft = box.size.topLeft(
box.localToGlobal(
const Offset(0.0, 0.0),
ancestor: rootRenderObject,
),
);
final bottomRight = box.size.bottomRight(
box.localToGlobal(
const Offset(0.0, 0.0),
ancestor: rootRenderObject,
),
);
Rect anchorBounds;
anchorBounds = (topLeft.dx.isNaN ||
final box = context.findRenderObject() as RenderBox?;

/// Handle null RenderBox safely.
final topLeft = box?.size.topLeft(
box.localToGlobal(
Offset.zero,
ancestor: rootRenderObject,
),
) ??
Offset.zero;
final bottomRight = box?.size.bottomRight(
box.localToGlobal(
Offset.zero,
ancestor: rootRenderObject,
),
) ??
Offset.zero;

/// Provide a default anchorBounds if box is null.
final anchorBounds = (topLeft.dx.isNaN ||
topLeft.dy.isNaN ||
bottomRight.dx.isNaN ||
bottomRight.dy.isNaN)
Expand All @@ -91,7 +95,11 @@ class AnchoredOverlay extends StatelessWidget {
bottomRight.dx,
bottomRight.dy,
);
final anchorCenter = box.size.center(topLeft);

/// Calculate the anchor center or default to Offset.zero.
final anchorCenter = box?.size.center(topLeft) ?? Offset.zero;

/// Pass the anchor details to the overlay builder.
return overlayBuilder!(overlayContext, anchorBounds, anchorCenter);
},
child: child,
Expand Down
2 changes: 1 addition & 1 deletion lib/src/showcase_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class ShowCaseWidgetState extends State<ShowCaseWidget> {
int? activeWidgetId;
RenderBox? rootRenderObject;
Size? rootWidgetSize;
final Key anchoredOverlayKey = UniqueKey();
final anchoredOverlayKey = UniqueKey();

late final TooltipActionConfig? globalTooltipActionConfig;

Expand Down

0 comments on commit 8f0ac0a

Please sign in to comment.