Commit 90592f3e authored by Nguyễn Minh Nhật's avatar Nguyễn Minh Nhật

nmn update

parent f16c9d4e
...@@ -13,7 +13,7 @@ class BottomSheetWidget extends StatelessWidget { ...@@ -13,7 +13,7 @@ class BottomSheetWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: EdgeInsets.only(left: 10.w, right: 10.w, top: 2.h, bottom: 10.h), padding: EdgeInsets.only(left: 10.w, right: 10.w),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.grey.shade800, color: Colors.grey.shade800,
borderRadius: const BorderRadius.only( borderRadius: const BorderRadius.only(
...@@ -162,7 +162,9 @@ class BottomSheetWidget extends StatelessWidget { ...@@ -162,7 +162,9 @@ class BottomSheetWidget extends StatelessWidget {
SizedBox( SizedBox(
height: 12.h, height: 12.h,
), ),
ElevatedButton( SizedBox(
width: double.infinity,
child: ElevatedButton(
onPressed: () { onPressed: () {
Get.back(); Get.back();
}, },
...@@ -171,13 +173,13 @@ class BottomSheetWidget extends StatelessWidget { ...@@ -171,13 +173,13 @@ class BottomSheetWidget extends StatelessWidget {
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
minimumSize: Size.fromHeight(40.h),
), ),
child: Text( child: Text(
'Done', 'Done',
style: TextStyleUtils.sizeText14Weight500()! style: TextStyleUtils.sizeText14Weight500()!
.copyWith(color: Colors.black87), .copyWith(color: Colors.black87),
), ),
),
) )
], ],
), ),
......
...@@ -42,18 +42,25 @@ class CompetitionsScreen extends StatelessWidget { ...@@ -42,18 +42,25 @@ class CompetitionsScreen extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Obx(() => Wrap( SizedBox(height: 15.h,),
crossAxisAlignment: WrapCrossAlignment.start, Obx(() => GridView.builder(
spacing: 10, scrollDirection: Axis.vertical,
children: competitionController.listCompetitionsFavourites.asMap().entries.map((entry) { itemCount: competitionController.listCompetitionsFavourites.length,
return GestureDetector( shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisSpacing: 10,
mainAxisSpacing: 10,
crossAxisCount: 2),
itemBuilder: (context, index) {
return
Obx(() => GestureDetector(
onTap: () { onTap: () {
Get.toNamed(Routes.detailTournamentPage, Get.toNamed(Routes.detailTournamentPage,
arguments: competitionController.listCompetitionsFavourites[entry.key], arguments: competitionController.listCompetitionsFavourites[index],
); );
}, },
child: Container( child: Container(
margin: const EdgeInsets.only(top: 15, left: 5),
height: !Device.get().isTablet ? Get.width * 0.45 : (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20, height: !Device.get().isTablet ? Get.width * 0.45 : (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20,
width: !Device.get().isTablet ? Get.width * 0.45 : (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20, width: !Device.get().isTablet ? Get.width * 0.45 : (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20,
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -67,13 +74,14 @@ class CompetitionsScreen extends StatelessWidget { ...@@ -67,13 +74,14 @@ class CompetitionsScreen extends StatelessWidget {
tileMode: TileMode.repeated, tileMode: TileMode.repeated,
), ),
borderRadius: const BorderRadius.all(Radius.circular(8))), borderRadius: const BorderRadius.all(Radius.circular(8))),
child: Row( child:
Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Column( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Container( Container(
padding: const EdgeInsets.only(left: 20, top: 10), padding: const EdgeInsets.only(left: 20, top: 10),
...@@ -82,30 +90,10 @@ class CompetitionsScreen extends StatelessWidget { ...@@ -82,30 +90,10 @@ class CompetitionsScreen extends StatelessWidget {
width: 45, width: 45,
), ),
), ),
Container(
width: !Device.get().isTablet ? Get.width * 0.45 - 45 : (isLandScape) ? (Get.width / 6 - 50) - 45 : (Get.width / 4 - 20) - 45,
padding: const EdgeInsets.only(left: 10, bottom: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('${competitionController.listCompetitionsFavourites[entry.key].name}',
softWrap: true,
maxLines: 3,
style: TextStyleUtils.sizeText12Weight600()!.copyWith(color: Colors.white),
),
Text(
competitionController.listCompetitionsFavourites[entry.key].country!.name!,
style: TextStyleUtils.sizeText10Weight400()!.copyWith(color: Colors.white),
),
],
),
)
],
),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
competitionController.deleteCompetitionsFavorites(competitionController.listCompetitionsFavourites[entry.key].id!); competitionController.deleteCompetitionsFavorites(competitionController.listCompetitionsFavourites[index].id!);
competitionController.listCompetitions.firstWhere((element) => element.id == competitionController.listCompetitionsFavourites[entry.key].id).favourite = false; competitionController.listCompetitions.firstWhere((element) => element.id == competitionController.listCompetitionsFavourites[index].id).favourite = false;
competitionController.listCompetitions.refresh(); competitionController.listCompetitions.refresh();
competitionController.listCompetitionsFavourites.refresh(); competitionController.listCompetitionsFavourites.refresh();
competitionController.update(); competitionController.update();
...@@ -123,11 +111,31 @@ class CompetitionsScreen extends StatelessWidget { ...@@ -123,11 +111,31 @@ class CompetitionsScreen extends StatelessWidget {
), ),
], ],
), ),
Container(
width: !Device.get().isTablet ? Get.width * 0.45 - 45 : (isLandScape) ? (Get.width / 6 - 50) - 45 : (Get.width / 4 - 20) - 45,
padding: const EdgeInsets.only(left: 10, bottom: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('${competitionController.listCompetitionsFavourites[index].name}',
softWrap: true,
maxLines: 3,
style: TextStyleUtils.sizeText12Weight600()!.copyWith(color: Colors.white),
),
Text(
competitionController.listCompetitionsFavourites[index].country!.name!,
style: TextStyleUtils.sizeText10Weight400()!.copyWith(color: Colors.white),
), ),
); ],
}).toList(),
), ),
)
],
), ),
),
));
},)),
const SizedBox( const SizedBox(
height: 10, height: 10,
), ),
......
...@@ -44,19 +44,24 @@ class TeamsScreen extends StatelessWidget { ...@@ -44,19 +44,24 @@ class TeamsScreen extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Obx( SizedBox(height: 15.h,),
() => Wrap( Obx(() => GridView.builder(
crossAxisAlignment: WrapCrossAlignment.start, shrinkWrap: true,
spacing: 10, physics: const NeverScrollableScrollPhysics(),
children: teamsScreenController.favouriteTeams.asMap().entries.map((entry) { itemCount: teamsScreenController.favouriteTeams.length,
return GestureDetector( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisSpacing: 10,
crossAxisSpacing: 10
), itemBuilder:(context, index) {
return
Obx(() => GestureDetector(
onTap: () { onTap: () {
Get.toNamed( Get.toNamed(
Routes.detailTeams, arguments: teamsScreenController.favouriteTeams[entry.key] Routes.detailTeams, arguments: teamsScreenController.favouriteTeams[index]
); );
}, },
child: Container( child: Container(
margin: const EdgeInsets.only(top: 15, left: 5),
height: !Device.get().isTablet height: !Device.get().isTablet
? Get.width * 0.45 ? Get.width * 0.45
: (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20, : (isLandScape) ? Get.width / 6 - 49 : Get.width / 4 - 20,
...@@ -88,7 +93,7 @@ class TeamsScreen extends StatelessWidget { ...@@ -88,7 +93,7 @@ class TeamsScreen extends StatelessWidget {
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
left: 20, top: 10), left: 20, top: 10),
child: Image.network( child: Image.network(
teamsScreenController.favouriteTeams[entry.key]!.logo ?? 'https://upload.wikimedia.org/wikipedia/vi/thumb/5/5c/Chelsea_crest.svg/1200px-Chelsea_crest.svg.png', teamsScreenController.favouriteTeams[index]!.logo ?? 'https://upload.wikimedia.org/wikipedia/vi/thumb/5/5c/Chelsea_crest.svg/1200px-Chelsea_crest.svg.png',
height: 45, height: 45,
width: 45, width: 45,
), ),
...@@ -99,13 +104,13 @@ class TeamsScreen extends StatelessWidget { ...@@ -99,13 +104,13 @@ class TeamsScreen extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text('${teamsScreenController.favouriteTeams[entry.key]!.name}', Text('${teamsScreenController.favouriteTeams[index]!.name}',
softWrap: true, softWrap: true,
maxLines: 3, maxLines: 3,
style: TextStyleUtils.sizeText12Weight600()!.copyWith(color: Colors.white), style: TextStyleUtils.sizeText12Weight600()!.copyWith(color: Colors.white),
), ),
Text( Text(
teamsScreenController.favouriteTeams[entry.key]!.country.name, teamsScreenController.favouriteTeams[index]!.country.name,
style: TextStyleUtils.sizeText10Weight400()!.copyWith(color: Colors.white), style: TextStyleUtils.sizeText10Weight400()!.copyWith(color: Colors.white),
), ),
], ],
...@@ -115,8 +120,8 @@ class TeamsScreen extends StatelessWidget { ...@@ -115,8 +120,8 @@ class TeamsScreen extends StatelessWidget {
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
teamsScreenController.deleteFavouriteTeam(teamsScreenController.favouriteTeams[entry.key].id); teamsScreenController.deleteFavouriteTeam(teamsScreenController.favouriteTeams[index].id);
teamsScreenController.teams.firstWhere((element) => element.id == teamsScreenController.favouriteTeams[entry.key].id).favourite = false; teamsScreenController.teams.firstWhere((element) => element.id == teamsScreenController.favouriteTeams[index].id).favourite = false;
teamsScreenController.favouriteTeams.refresh(); teamsScreenController.favouriteTeams.refresh();
teamsScreenController.teams.refresh(); teamsScreenController.teams.refresh();
teamsScreenController.update(); teamsScreenController.update();
...@@ -140,10 +145,8 @@ class TeamsScreen extends StatelessWidget { ...@@ -140,10 +145,8 @@ class TeamsScreen extends StatelessWidget {
], ],
), ),
), ),
); ));
}).toList(), },)),
),
),
const SizedBox( const SizedBox(
height: 10, height: 10,
), ),
......
...@@ -35,7 +35,7 @@ class TeamsScreenController extends GetxController { ...@@ -35,7 +35,7 @@ class TeamsScreenController extends GetxController {
@override @override
void onInit() { void onInit() {
// TODO: implement onInit
super.onInit(); super.onInit();
getListTeam(''); getListTeam('');
getFavouriteTeams(); getFavouriteTeams();
...@@ -43,7 +43,7 @@ class TeamsScreenController extends GetxController { ...@@ -43,7 +43,7 @@ class TeamsScreenController extends GetxController {
controllerSearchScroll = ScrollController()..addListener(_loadMoreSearch); controllerSearchScroll = ScrollController()..addListener(_loadMoreSearch);
} }
/// todo: Method refresh
void onRefresh() async { void onRefresh() async {
getListTeam(''); getListTeam('');
getFavouriteTeams(); getFavouriteTeams();
...@@ -51,7 +51,7 @@ class TeamsScreenController extends GetxController { ...@@ -51,7 +51,7 @@ class TeamsScreenController extends GetxController {
} }
/// todo: Method get teams
void getListTeam(String? name) async{ void getListTeam(String? name) async{
await _teamRepo.getListTeam(0, 20, name).then((value) async { await _teamRepo.getListTeam(0, 20, name).then((value) async {
if(value.state == Status.SUCCESS) { if(value.state == Status.SUCCESS) {
...@@ -60,7 +60,7 @@ class TeamsScreenController extends GetxController { ...@@ -60,7 +60,7 @@ class TeamsScreenController extends GetxController {
}); });
} }
/// todo: Method add team to list favourite
void addFavourite(List<ItemTeams> favourites, List listNotifyMatch, List listNotifyNews, ItemTeams item) async { void addFavourite(List<ItemTeams> favourites, List listNotifyMatch, List listNotifyNews, ItemTeams item) async {
await _teamRepo.addTeamFollow(favourites, listNotifyMatch, listNotifyNews).then((value) { await _teamRepo.addTeamFollow(favourites, listNotifyMatch, listNotifyNews).then((value) {
if(value.state == Status.SUCCESS) { if(value.state == Status.SUCCESS) {
...@@ -72,7 +72,6 @@ class TeamsScreenController extends GetxController { ...@@ -72,7 +72,6 @@ class TeamsScreenController extends GetxController {
}); });
} }
/// todo: Method get list favourite team
void getFavouriteTeams() async{ void getFavouriteTeams() async{
await _teamRepo.getFavouriteTeams().then((value) { await _teamRepo.getFavouriteTeams().then((value) {
if(value.state == Status.SUCCESS) { if(value.state == Status.SUCCESS) {
...@@ -81,7 +80,6 @@ class TeamsScreenController extends GetxController { ...@@ -81,7 +80,6 @@ class TeamsScreenController extends GetxController {
}); });
} }
/// todo: delete favourite team
void deleteFavouriteTeam(String id) async{ void deleteFavouriteTeam(String id) async{
await _teamRepo.delFavouriteTeam(id).then((value) { await _teamRepo.delFavouriteTeam(id).then((value) {
if(value.state == Status.SUCCESS) { if(value.state == Status.SUCCESS) {
...@@ -93,7 +91,6 @@ class TeamsScreenController extends GetxController { ...@@ -93,7 +91,6 @@ class TeamsScreenController extends GetxController {
}); });
} }
/// todo: add team to favourite list
void addFavouriteTeam(BuildContext context, int index, SwitchController switchController) { void addFavouriteTeam(BuildContext context, int index, SwitchController switchController) {
teams[index].favourite = !teams[index].favourite; teams[index].favourite = !teams[index].favourite;
isFavourite.value = teams[index].favourite; isFavourite.value = teams[index].favourite;
...@@ -125,7 +122,6 @@ class TeamsScreenController extends GetxController { ...@@ -125,7 +122,6 @@ class TeamsScreenController extends GetxController {
update(); update();
} }
/// todo: load more
void _scrollTeams(){ void _scrollTeams(){
if(controllerEx.position.pixels == controllerEx.position.maxScrollExtent){ if(controllerEx.position.pixels == controllerEx.position.maxScrollExtent){
if(itemLoadMoreEx.isNotEmpty){ if(itemLoadMoreEx.isNotEmpty){
...@@ -146,7 +142,6 @@ class TeamsScreenController extends GetxController { ...@@ -146,7 +142,6 @@ class TeamsScreenController extends GetxController {
} }
} }
/// todo: load more search
void _loadMoreSearch(){ void _loadMoreSearch(){
if(controllerSearchScroll.position.pixels == controllerSearchScroll.position.maxScrollExtent){ if(controllerSearchScroll.position.pixels == controllerSearchScroll.position.maxScrollExtent){
if(itemLoadMoreSearch.isNotEmpty){ if(itemLoadMoreSearch.isNotEmpty){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment