Files
flutter-crypto-app/lib/ui/widgets/title_price.dart
2022-02-21 09:31:48 -07:00

62 lines
2.2 KiB
Dart

import 'package:auto_size_text/auto_size_text.dart';
import 'package:cryptocurrency_app/models/markets/pair/pair.dart';
import 'package:cryptocurrency_app/provider/crypto_provider.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:easy_localization/easy_localization.dart';
class TitlePrice extends HookConsumerWidget {
final Pair pair;
TitlePrice({required this.pair});
@override
Widget build(BuildContext context, WidgetRef ref) {
final data = ref.watch(pairSummaryProvider(pair));
return data.when(
data: (data) {
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AutoSizeText(pair.pair,
maxLines: 1, style: Theme.of(context).textTheme.headline2),
AutoSizeText(data.price.last.toString(),
maxLines: 1, style: Theme.of(context).textTheme.headline1),
if (true)
Row(children: [
AutoSizeText(data.price.change.absolute.toStringAsFixed(5),
textAlign: TextAlign.start,
minFontSize: 0,
stepGranularity: 0.1,
maxLines: 1,
style: TextStyle(
color: data.price.change.absolute >= 0
? Colors.green
: Colors.red,
fontSize:
Theme.of(context).textTheme.headline5?.fontSize,
fontWeight: FontWeight.w800)),
AutoSizeText(
' (${data.price.change.percentage.toStringAsFixed(2)}%)',
textAlign: TextAlign.start,
minFontSize: 0,
stepGranularity: 0.1,
maxLines: 1,
style: Theme.of(context).textTheme.headline4),
]),
],
),
);
},
loading: () => Center(
child: CircularProgressIndicator(),
),
error: (error, e) => Center(
child: Text(error.toString().tr()),
),
);
}
}