Skip to content

Commit 4cbeb93

Browse files
committed
🔧 Fix null resizeModeResolver pattern & Fix controller pattern not updating the UI.
1 parent 1bcdbb8 commit 4cbeb93

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

packages/flutter_box_transform/lib/src/transformable_box.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ class TransformableBox extends StatefulWidget {
211211

212212
/// The callback function that is used to resolve the [ResizeMode] based on
213213
/// the pressed keys on the keyboard.
214-
final ValueGetter<ResizeMode>? resizeModeResolver;
214+
final ValueGetter<ResizeMode> resizeModeResolver;
215215

216216
/// A callback that is called every time the [TransformableBox] is updated.
217217
/// This is called every time the [TransformableBoxController] mutates the box
@@ -485,7 +485,6 @@ class _TransformableBoxState extends State<TransformableBox> {
485485
final UIResizeResult result = controller.onResizeUpdate(
486486
event.localPosition,
487487
handle,
488-
notify: false,
489488
);
490489

491490
widget.onChanged?.call(result, event);
@@ -536,7 +535,6 @@ class _TransformableBoxState extends State<TransformableBox> {
536535
void onDragPointerMove(PointerMoveEvent event) {
537536
final UIMoveResult result = controller.onDragUpdate(
538537
event.localPosition,
539-
notify: false,
540538
);
541539

542540
widget.onChanged?.call(result, event);
@@ -552,12 +550,12 @@ class _TransformableBoxState extends State<TransformableBox> {
552550
@override
553551
Widget build(BuildContext context) {
554552
final Flip flip = controller.flip;
555-
final Rect box = controller.rect;
553+
final Rect rect = controller.rect;
556554

557555
Widget content = Transform.scale(
558556
scaleX: widget.allowContentFlipping && flip.isHorizontal ? -1 : 1,
559557
scaleY: widget.allowContentFlipping && flip.isVertical ? -1 : 1,
560-
child: widget.contentBuilder(context, box, flip),
558+
child: widget.contentBuilder(context, rect, flip),
561559
);
562560

563561
if (controller.movable) {
@@ -572,16 +570,16 @@ class _TransformableBoxState extends State<TransformableBox> {
572570
}
573571

574572
return Positioned.fromRect(
575-
rect: box.inflate(widget.handleAlignment.offset(widget.handleTapSize)),
573+
rect: rect.inflate(widget.handleAlignment.offset(widget.handleTapSize)),
576574
child: Stack(
577575
clipBehavior: Clip.none,
578576
fit: StackFit.expand,
579577
children: [
580578
Positioned(
581579
left: widget.handleAlignment.offset(widget.handleTapSize),
582580
top: widget.handleAlignment.offset(widget.handleTapSize),
583-
width: box.width,
584-
height: box.height,
581+
width: rect.width,
582+
height: rect.height,
585583
child: content,
586584
),
587585
if (controller.resizable || !widget.hideHandlesWhenNotResizable)

packages/flutter_box_transform/lib/src/transformable_box_controller.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ class TransformableBoxController extends ChangeNotifier {
5252
_constraints = constraints ?? const BoxConstraints(),
5353
_resizable = resizable,
5454
_movable = movable,
55-
_resizeModeResolver = resizeModeResolver,
55+
_resizeModeResolver = resizeModeResolver ?? defaultResizeModeResolver,
5656
_allowFlippingWhileResizing = allowFlippingWhileResizing;
5757

5858
/// The callback function that is used to resolve the [ResizeMode] based on
5959
/// the pressed keys on the keyboard.
60-
ValueGetter<ResizeMode>? _resizeModeResolver;
60+
ValueGetter<ResizeMode> _resizeModeResolver;
6161

6262
/// The callback function that is used to resolve the [ResizeMode] based on
6363
/// the pressed keys on the keyboard.
64-
ValueGetter<ResizeMode>? get resizeModeResolver => _resizeModeResolver;
64+
ValueGetter<ResizeMode> get resizeModeResolver => _resizeModeResolver;
6565

6666
/// The current [Rect] of the [TransformableBox].
6767
Rect _rect = Rect.zero;
@@ -136,8 +136,10 @@ class TransformableBoxController extends ChangeNotifier {
136136
BoxConstraints get constraints => _constraints;
137137

138138
/// Sets the current [resizeModeResolver] of the [TransformableBox].
139-
void setResizeModeResolver(ValueGetter<ResizeMode>? resizeModeResolver,
140-
{bool notify = true}) {
139+
void setResizeModeResolver(
140+
ValueGetter<ResizeMode> resizeModeResolver, {
141+
bool notify = true,
142+
}) {
141143
_resizeModeResolver = resizeModeResolver;
142144

143145
if (notify) notifyListeners();
@@ -292,7 +294,7 @@ class TransformableBoxController extends ChangeNotifier {
292294
handle: handle,
293295
initialRect: initialRect,
294296
initialLocalPosition: initialLocalPosition,
295-
resizeMode: resizeModeResolver!(),
297+
resizeMode: resizeModeResolver(),
296298
initialFlip: initialFlip,
297299
clampingRect: clampingRect,
298300
constraints: constraints,

0 commit comments

Comments
 (0)