From 5880e0c5fa50b96905e09d8630281c26736786fd Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 16 Jun 2023 19:25:49 -0600 Subject: [PATCH] feat: WIP fee slider widget --- lib/widgets/fee_slider.dart | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 lib/widgets/fee_slider.dart diff --git a/lib/widgets/fee_slider.dart b/lib/widgets/fee_slider.dart new file mode 100644 index 000000000..d650711c8 --- /dev/null +++ b/lib/widgets/fee_slider.dart @@ -0,0 +1,56 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:stackwallet/utilities/text_styles.dart'; + +class FeeSlider extends StatefulWidget { + const FeeSlider({ + super.key, + required this.onSatVByteChanged, + }); + + final void Function(int) onSatVByteChanged; + + @override + State createState() => _FeeSliderState(); +} + +class _FeeSliderState extends State { + static const int min = 1; + static const int max = 10; + + double sliderValue = 0; + + int rate = min; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "sat/vByte", + style: STextStyles.smallMed12(context), + ), + Text( + "$rate", + style: STextStyles.smallMed12(context), + ), + ], + ), + Slider( + value: sliderValue, + onChanged: (value) { + setState(() { + sliderValue = value; + rate = pow(sliderValue * (max - min) + min, 4).toInt(); + }); + widget.onSatVByteChanged(rate); + }, + ), + ], + ); + } +}