Skip to content

Commit

Permalink
Update HoverExtensions
Browse files Browse the repository at this point in the history
  • Loading branch information
ferrarafer committed Apr 10, 2023
1 parent ad50af2 commit ca24dfd
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 14 deletions.
27 changes: 20 additions & 7 deletions lib/src/templates/app/web/lib/extensions/hover_extensions.dart.stk
Original file line number Diff line number Diff line change
@@ -1,31 +1,44 @@
import 'package:{{packageName}}/ui/widgets/mouse_transforms/scale_on_hover.dart';
import 'package:{{packageName}}/ui/widgets/mouse_transforms/translate_on_hover.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

extension HoverExtensions on Widget {
Widget get showCursorOnHover {
return MouseRegion(
return _returnUnalteredOnMobile(MouseRegion(
child: this,
cursor: SystemMouseCursors.click,
);
));
}

/// Moves the widget by x,y pixels on hover
///
/// to move up use -y values, to move left use -x values
Widget moveOnHover({double? x, double? y}) {
return TranslateOnHover(
return _returnUnalteredOnMobile(TranslateOnHover(
x: x,
y: y,
child: this,
);
));
}

/// Scales the widget by [scale] on hover
Widget scaleOnHover({double scale = 1.1}) {
return ScaleOnHover(
return _returnUnalteredOnMobile(ScaleOnHover(
child: this,
scale: scale,
);
));
}
}

/// Takes in the alteredWidget and if we detect we're on Android or iOS
/// we return the unaltered widget.
///
/// The reason we can do this is because all altered widgets require mouse
/// functionality to work.
Widget _returnUnalteredOnMobile(Widget alteredWidget) {
if (kIsWeb) {
return alteredWidget;
}
return this;
}
}
26 changes: 19 additions & 7 deletions lib/src/templates/compiled_templates.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1773,36 +1773,48 @@ const String kAppWebTemplateHoverExtensionsPath =
const String kAppWebTemplateHoverExtensionsContent = '''
import 'package:{{packageName}}/ui/widgets/mouse_transforms/scale_on_hover.dart';
import 'package:{{packageName}}/ui/widgets/mouse_transforms/translate_on_hover.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
extension HoverExtensions on Widget {
Widget get showCursorOnHover {
return MouseRegion(
return _returnUnalteredOnMobile(MouseRegion(
child: this,
cursor: SystemMouseCursors.click,
);
));
}
/// Moves the widget by x,y pixels on hover
///
/// to move up use -y values, to move left use -x values
Widget moveOnHover({double? x, double? y}) {
return TranslateOnHover(
return _returnUnalteredOnMobile(TranslateOnHover(
x: x,
y: y,
child: this,
);
));
}
/// Scales the widget by [scale] on hover
Widget scaleOnHover({double scale = 1.1}) {
return ScaleOnHover(
return _returnUnalteredOnMobile(ScaleOnHover(
child: this,
scale: scale,
);
));
}
}
/// Takes in the alteredWidget and if we detect we're on Android or iOS
/// we return the unaltered widget.
///
/// The reason we can do this is because all altered widgets require mouse
/// functionality to work.
Widget _returnUnalteredOnMobile(Widget alteredWidget) {
if (kIsWeb) {
return alteredWidget;
}
return this;
}
}
''';

// --------------------------------------------------
Expand Down

0 comments on commit ca24dfd

Please sign in to comment.