home_screen_pageview.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:flutter/material.dart';
  2. import 'package:youtube/presentaion/views/home_views/user_item_view.dart';
  3. import '../../../data/models/call_model.dart';
  4. import '../../../data/models/user_model.dart';
  5. import '../../../shared/constats.dart';
  6. import '../../../shared/network/cache_helper.dart';
  7. import '../../../shared/shared_widgets.dart';
  8. import '../../cubit/auth/auth_cubit.dart';
  9. import '../../cubit/home/home_cubit.dart';
  10. import 'call_item_view.dart';
  11. class HomeScreenPageView extends StatelessWidget {
  12. final List<UserModel> users;
  13. final List<CallModel> calls;
  14. final bool isUsers;
  15. const HomeScreenPageView({Key? key, required this.users, required this.calls, required this.isUsers}) : super(key: key);
  16. @override
  17. Widget build(BuildContext context) {
  18. return ListView.separated(
  19. itemBuilder: (context, index) {
  20. if (isUsers) {
  21. return UserItemView(
  22. userModel: users[index],
  23. onCallTap: () {
  24. if(!users[index].busy!){
  25. HomeCubit.get(context).fireVideoCall(
  26. callModel: CallModel(
  27. id: 'call_${UniqueKey().hashCode.toString()}',
  28. callerId: CacheHelper.getString(key: 'uId'),
  29. callerAvatar: AuthCubit.get(context).currentUser.avatar,
  30. callerName: AuthCubit.get(context).currentUser.name,
  31. receiverId: users[index].id,
  32. receiverAvatar:users[index].avatar,
  33. receiverName:users[index].name,
  34. status: CallStatus.ringing.name,
  35. createAt: DateTime.now().millisecondsSinceEpoch,
  36. current: true
  37. ));
  38. }else{
  39. showToast(msg: 'User is busy');
  40. }
  41. },
  42. );
  43. } else {
  44. return CallItemView(callModel: calls[index]);
  45. }
  46. },
  47. separatorBuilder: (context, index) => const Divider(),
  48. itemCount: isUsers ? users.length : calls.length);
  49. }
  50. }