View in_list_converter.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:convert'; | |
import 'package:json_annotation/json_annotation.dart'; | |
class IntListConverter implements JsonConverter<List<int>?, String> { | |
const IntListConverter(); | |
@override | |
List<int>? fromJson(String? json) => List<int>.from(jsonDecode(json ?? '[]').map((e) => e.toInt())); |
View confirm_popup.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bool confirm = await showDialog<bool>( | |
context: context, | |
builder: (context) { | |
return AlertDialog( | |
title: const Text('Are you sure?'), | |
content: const Text('This action cannot be undone.'), | |
actions: [ | |
TextButton( | |
child: const Text('Cancel'), | |
onPressed: (){ |
View color_at_position.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Get the color from a gradient at a specific position | |
/// Position should be between 0 and 1 | |
extension ColorGetter on Gradient { | |
Color? colorAtPosition({ | |
required double position, | |
}) { | |
List<double> _stops = stops ?? List.generate(colors.length, (index) => index * (1 / (colors.length-1))); | |
for (var stop = 0; stop < _stops.length - 1; stop++) { |
View gradient_tabs.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class FirstTimeView extends HookWidget { | |
@override | |
Widget build(BuildContext context) { | |
TickerProvider tickerProvider = useSingleTickerProvider(); | |
return ViewModelBuilder<FirstTimeViewModel>.reactive( | |
viewModelBuilder: () => FirstTimeViewModel(tickerProvider), | |
builder: (context, model, child) { | |
return Scaffold( | |
appBar: AppBar( |
View color_along_gradient.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Get the color from a gradient at a specific position | |
Color? colorAlongGradient({ | |
required List<Color> colors, | |
List<double>? stops, | |
required double position, | |
}) { | |
stops ??= List.generate(colors.length, (index) => index * (1 / (colors.length-1))); | |
for (var s = 0; s < stops.length - 1; s++) { | |
final leftStop = stops[s], rightStop = stops[s + 1]; |
View tabBar.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DefaultTabController( | |
length: 4, | |
child: Scaffold( | |
appBar: AppBar( | |
bottom: const TabBar( | |
tabs: [ | |
Tab(icon: Icon(Icons.home),), | |
Tab(icon: Icon(Icons.whatshot),), | |
Tab(icon: Icon(Icons.person),), | |
Tab(icon: Icon(Icons.menu),), |
View ask_confirmation.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Future<bool> askConfirmation({ | |
required BuildContext context, | |
required String title, | |
String yes = 'Continue', | |
String no = 'Cancel', | |
}) async { | |
return await showDialog( | |
context: context, | |
builder: (context) { | |
return AlertDialog( |
View responsive_interactive_viewer.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GestureDetector( | |
onTap: () { | |
model.setInteraction(false); | |
}, | |
behavior: HitTestBehavior.deferToChild, | |
child: InteractiveViewer( | |
panEnabled: false, | |
boundaryMargin: EdgeInsets.all(80), | |
onInteractionStart: (details) { | |
model.setInteraction(true); |
View body_painter.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BodyPainter extends CustomPainter { | |
final BuildContext context; | |
final BodySelectorViewModel model; | |
BodyPainter({ | |
required this.context, | |
required this.model, | |
}); | |
@override |
View body_canvas.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BodyCanvas extends ViewModelWidget<BodySelectorViewModel> { | |
@override | |
Widget build(BuildContext context, BodySelectorViewModel model) { | |
return CanvasTouchDetector( | |
builder: (context) => CustomPaint( | |
painter: BodyPainter( | |
context: context, | |
model: model, | |
), | |
), |
NewerOlder