Skip to content

Commit

Permalink
🔧 Update Pack 2 #23
Browse files Browse the repository at this point in the history
  • Loading branch information
SaadArdati committed Oct 10, 2024
1 parent e196cf5 commit bb95406
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 21 deletions.
8 changes: 4 additions & 4 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ dependencies:
flutter:
sdk: flutter
adaptive_theme: ^3.6.0
flutter_box_transform: ^0.4.3
flutter_box_transform: ^0.4.6
hyper_effects:
path: ../
google_fonts: ^6.2.1
unicode_emojis: ^0.4.0
smooth_page_indicator: ^1.1.0
smooth_page_indicator: ^1.2.0+3

dev_dependencies:
flutter_test:
sdk: flutter
web: ^0.5.1
flutter_lints: ^4.0.0
web: ^1.1.0
flutter_lints: ^5.0.0

flutter:
uses-material-design: true
Expand Down
2 changes: 1 addition & 1 deletion lib/hyper_effects.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
library hyper_effects;
library;

export 'src/animated_effect.dart';
export 'src/effect_widget.dart';
Expand Down
4 changes: 1 addition & 3 deletions lib/src/animation_retainer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,7 @@ class _AnimatedEffectStateRetainerState
extends State<AnimatedEffectStateRetainer> {
final Map<Key, bool> _animationStates = {};

void _markAsPlayed(Key key) {
_animationStates[key] = true;
}
void _markAsPlayed(Key key) => _animationStates[key] = true;

bool _didPlay(Key key) => _animationStates[key] ?? false;

Expand Down
2 changes: 1 addition & 1 deletion lib/src/effects/effects.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
library effects;
library;

export 'align_effect.dart';
export 'blur_effect.dart';
Expand Down
80 changes: 69 additions & 11 deletions lib/src/effects/scale_effect.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,20 @@ extension ScaleEffectExt on Widget {
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
double? from,
bool transformHitTests = true,
}) {
return EffectWidget(
start: from == null ? null : ScaleEffect(scale: from),
start: from == null
? null
: ScaleEffect(
scale: from,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scale: scale,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
Expand All @@ -43,13 +50,20 @@ extension ScaleEffectExt on Widget {
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
double? from,
bool transformHitTests = true,
}) {
return EffectWidget(
start: from == null ? null : ScaleEffect(scaleX: from),
start: from == null
? null
: ScaleEffect(
scaleX: from,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scaleX: scaleX,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
Expand All @@ -67,13 +81,20 @@ extension ScaleEffectExt on Widget {
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
double? from,
bool transformHitTests = true,
}) {
return EffectWidget(
start: from == null ? null : ScaleEffect(scaleY: from),
start: from == null
? null
: ScaleEffect(
scaleY: from,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scaleY: scaleY,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
Expand All @@ -93,15 +114,22 @@ extension ScaleEffectExt on Widget {
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
Offset? from,
bool transformHitTests = true,
}) {
return EffectWidget(
start:
from == null ? null : ScaleEffect(scaleX: from.dx, scaleY: from.dy),
start: from == null
? null
: ScaleEffect(
scaleX: from.dx,
scaleY: from.dy,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scaleX: scaleX,
scaleY: scaleY,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
Expand All @@ -114,11 +142,21 @@ extension ScaleEffectExt on Widget {
double? end,
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
bool transformHitTests = true,
}) {
return EffectWidget(
start:
ScaleEffect(scale: start ?? 0, alignment: alignment, origin: origin),
end: ScaleEffect(scale: end ?? 1, alignment: alignment, origin: origin),
start: ScaleEffect(
scale: start ?? 0,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scale: end ?? 1,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
}
Expand All @@ -130,11 +168,21 @@ extension ScaleEffectExt on Widget {
double? end,
AlignmentGeometry alignment = Alignment.center,
Offset origin = Offset.zero,
bool transformHitTests = true,
}) {
return EffectWidget(
start:
ScaleEffect(scale: start ?? 1, alignment: alignment, origin: origin),
end: ScaleEffect(scale: end ?? 0, alignment: alignment, origin: origin),
start: ScaleEffect(
scale: start ?? 1,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
end: ScaleEffect(
scale: end ?? 0,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
),
child: this,
);
}
Expand Down Expand Up @@ -163,13 +211,17 @@ class ScaleEffect extends Effect {
/// (relative to the upper left corner of this render object)
final Offset origin;

/// Whether to apply the transformation when performing hit tests.
final bool transformHitTests;

/// Creates a [ScaleEffect].
ScaleEffect({
this.scale,
this.scaleX,
this.scaleY,
this.alignment = Alignment.center,
this.origin = Offset.zero,
this.transformHitTests = true,
}) : assert(scale != null || scaleX != null || scaleY != null,
'At least one of scale, scaleX, or scaleY must be non-null');

Expand All @@ -187,6 +239,8 @@ class ScaleEffect extends Effect {
scale: effectiveScale,
alignment: effectiveAlignment,
origin: effectiveOrigin,
transformHitTests:
value < 0.5 ? transformHitTests : other.transformHitTests,
);
}

Expand All @@ -197,6 +251,8 @@ class ScaleEffect extends Effect {
scaleY: effectiveScaleY,
alignment: effectiveAlignment,
origin: effectiveOrigin,
transformHitTests:
value < 0.5 ? transformHitTests : other.transformHitTests,
);
}

Expand All @@ -207,6 +263,7 @@ class ScaleEffect extends Effect {
scaleY: scaleY,
alignment: alignment,
origin: origin,
transformHitTests: transformHitTests,
child: child,
);

Expand All @@ -220,5 +277,6 @@ class ScaleEffect extends Effect {
scaleY,
alignment,
origin,
transformHitTests,
];
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^4.0.0
flutter_lints: ^5.0.0

flutter:

Expand Down

0 comments on commit bb95406

Please sign in to comment.