RoomWidget
unknown
dart
3 years ago
6.7 kB
5
Indexable
import 'package:animate_do/animate_do.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:glass_kit/glass_kit.dart'; import 'package:toplive/app/data/models/all_rooms.dart'; import 'package:toplive/core/resourses/color_manger.dart'; import 'package:toplive/core/resourses/values_manger.dart'; import 'package:flutter/material.dart'; import '../../../../core/resourses/styles_manger.dart'; class RoomsWidget extends StatelessWidget { const RoomsWidget({ Key? key, required this.allRooms, }) : super(key: key); final AllRoomsModel? allRooms; @override Widget build(BuildContext context) { return GridView.builder( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, childAspectRatio: .7 / 1, ), itemCount: allRooms?.data?.length ?? 0, shrinkWrap: true, physics: BouncingScrollPhysics(), itemBuilder: (BuildContext context, int index) { return Padding( padding: const EdgeInsets.all(4.0), child: FadeInUpBig( child: Container( height: MediaQuery.of(context).size.height * 0.4, width: MediaQuery.of(context).size.width * 0.3, decoration: BoxDecoration( color: ColorsManger.white, boxShadow: [ BoxShadow( color: ColorsManger.black.withOpacity(.2), blurRadius: 10, offset: Offset(0, 5)), ], borderRadius: BorderRadius.circular(AppSize.size12)), child: Column( children: [ Expanded( flex: 8, child: Stack( children: [ Positioned.fill( child: ClipRRect( child: Image.network( allRooms?.data?[index].roomImage ?? "https://picsum.photos/200", errorBuilder: (context, error, stackTrace) => Center( child: Icon( Icons.error, // size: 30, ), ), fit: BoxFit.cover, ), borderRadius: BorderRadius.circular(AppSize.size12), ), ), Positioned( right: 5, top: 5, child: Padding( padding: const EdgeInsets.all(8.0), child: GlassContainer.frostedGlass( borderRadius: BorderRadius.circular(50), height: 20, width: 60, child: Center( child: Text(allRooms?.data ?.elementAt(index) .joinedUsers ?.length .toString() ?? "0"), ), ), ), ), if (allRooms?.data?.elementAt(index).category != null) Positioned( right: 5, bottom: 5, child: Padding( padding: const EdgeInsets.all(8.0), child: GlassContainer.frostedGlass( borderRadius: BorderRadius.circular(50), height: 20, width: 60, child: Center( child: Text(allRooms?.data ?.elementAt(index) .category ?? "0"), ), ), ), ) else SizedBox(), ], ), ), Expanded( flex: 2, child: Padding( padding: const EdgeInsets.all(8.0), child: Row( children: [ ClipRRect( borderRadius: BorderRadius.circular(100), child: Image.network( allRooms?.data ?.elementAt(index) .roomCountry ?.flag ?? "https://preview.redd.it/xfqw0pekwbg71.png?auto=webp&s=d18611777ab228e1c8ceb2ac441b1288be4d3c61", fit: BoxFit.cover, height: 20, ), ), SizedBox(width: 10), Expanded( child: Text( allRooms?.data?[index].roomName ?? "No Name", overflow: TextOverflow.visible, style: getMediumTextStyle( fontSize: 16, color: ColorsManger.black), ), ), ], ), )), Expanded( flex: 2, child: Padding( padding: const EdgeInsets.all(8.0), child: Container( alignment: Alignment.centerLeft, child: Text( allRooms?.data?[index].description ?? "", overflow: TextOverflow.ellipsis, maxLines: 1, )), )), ], ), ), ), ); }, ); } }
Editor is loading...