Skip to content

Instantly share code, notes, and snippets.

@jtmuller5
jtmuller5 / in_list_converter.dart
Created Jul 16, 2022
Json converter for lists of integers
View in_list_converter.dart
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
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
/// 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
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
/// 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
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),),
@jtmuller5
jtmuller5 / ask_confirmation.dart
Created May 22, 2021
Ask the user to approve or cancel an action in a pop-up
View ask_confirmation.dart
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
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
class BodyPainter extends CustomPainter {
final BuildContext context;
final BodySelectorViewModel model;
BodyPainter({
required this.context,
required this.model,
});
@override
View body_canvas.dart
class BodyCanvas extends ViewModelWidget<BodySelectorViewModel> {
@override
Widget build(BuildContext context, BodySelectorViewModel model) {
return CanvasTouchDetector(
builder: (context) => CustomPaint(
painter: BodyPainter(
context: context,
model: model,
),
),