Files
2022-02-21 09:31:48 -07:00

90 lines
3.0 KiB
Dart

import 'package:cryptocurrency_app/constants/keys.dart';
import 'package:cryptocurrency_app/provider/crypto_provider.dart';
import 'package:cryptocurrency_app/ui/widgets/favorite_pair.dart';
import 'package:cryptocurrency_app/ui/widgets/pair_tile.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:easy_localization/easy_localization.dart';
import '../../generated/locale_keys.g.dart';
class HomeScreen extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final pairs = ref.watch(pairsProvider);
final favoritePair = ref.watch(favoritePairProvider);
return Container(
key: Keys.HOME_SCREEN,
child: Column(
children: [
AppBar(
toolbarHeight: 65,
centerTitle: false,
title: Text(
LocaleKeys.homeTitle.tr(),
style: TextStyle(color: Colors.white, fontSize: 25),
),
actions: [
Container(
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(50)),
width: 45,
child: Icon(
Icons.person_outline,
size: 30,
color: Colors.black,
),
),
],
),
Expanded(
child: Column(
children: [
Container(
height: 190,
child: favoritePair.when(
data: (data) {
return FavoritePairWidget(data);
},
loading: () => Center(
child: CircularProgressIndicator(),
),
error: (error, e) => Center(
child: Text(error.toString().tr()),
),
),
),
Expanded(
child: pairs.when(
data: (data) {
return Container(
child: ListView.builder(
padding: EdgeInsets.only(top: 0.0),
itemCount: data.length,
itemBuilder: (ctx, int idx) => ProviderScope(
overrides: [
currentPair.overrideWithValue(data[idx]),
],
child: const PairTile(),
),
),
);
},
loading: () => Center(
child: CircularProgressIndicator(),
),
error: (error, e) => Center(
child: Text(error.toString().tr()),
),
),
)
],
),
),
],
),
);
}
}