community_state.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import 'package:cpt_community/modules/community/community_page.dart';
  2. import 'package:cs_resources/generated/assets.dart';
  3. import 'package:cs_resources/generated/l10n.dart';
  4. class CommunityVmState {
  5. List<Map<String, dynamic>>? topSectionsData;
  6. List<String>? newsFeedTabsList;
  7. List<String>? garageSaleTabsList;
  8. List<Map<String, dynamic>>? garageCategoryList = []; // garageCategoryList
  9. int currentCategoryIdx = 0; // 0: news feed, 1: garage sale
  10. int currentPageViewIdx = 0;
  11. int lastNewsfeedTabIdx = 0; // 上一次newsfeed 的 tabIdx
  12. int lastGarageTabIdx = 0; // 上一次garagesale 的 tabIdx
  13. dynamic? tabsRouter;
  14. dynamic? pageController;
  15. CommunityVmState({
  16. List<Map<String, dynamic>>? topSectionsData,
  17. required this.currentPageViewIdx,
  18. currentCategoryIdx,
  19. lastNewsfeedTabIdx,
  20. lastGarageTabIdx,
  21. newsFeedTabsList,
  22. garageSaleTabsList,
  23. List<Map<String, dynamic>>? garageCategoryList,
  24. this.tabsRouter,
  25. this.pageController,
  26. }) : topSectionsData = topSectionsData ??
  27. [
  28. {
  29. "title": S.current.news_feed,
  30. "icon": Assets.communityNews,
  31. },
  32. {
  33. "title": S.current.garage_sale,
  34. "icon": Assets.communityGarageSale,
  35. },
  36. ],
  37. currentCategoryIdx = currentCategoryIdx ?? 0,
  38. lastGarageTabIdx = lastGarageTabIdx ?? 0,
  39. lastNewsfeedTabIdx = lastNewsfeedTabIdx ?? 0,
  40. newsFeedTabsList = newsFeedTabsList ??
  41. [
  42. S.current.newsfeed_news,
  43. S.current.newsfeed_following,
  44. S.current.for_you,
  45. ],
  46. garageSaleTabsList = garageSaleTabsList ??
  47. [
  48. S.current.for_sale,
  49. S.current.for_rent,
  50. ],
  51. garageCategoryList = garageCategoryList ?? [];
  52. CommunityVmState copyWith({
  53. List<Map<String, dynamic>>? topSectionsData,
  54. List<String>? newsFeedTabsList,
  55. List<String>? garageSaleTabsList,
  56. int? currentCategoryIdx,
  57. int? currentPageViewIdx,
  58. int? lastNewsfeedTabIdx,
  59. int? lastGarageTabIdx,
  60. List<Map<String, dynamic>>? garageCategoryList,
  61. dynamic? tabsRouter,
  62. dynamic? pageController,
  63. }) {
  64. return CommunityVmState(
  65. topSectionsData: topSectionsData ?? this.topSectionsData,
  66. newsFeedTabsList: newsFeedTabsList ?? this.newsFeedTabsList,
  67. garageSaleTabsList: garageSaleTabsList ?? this.garageSaleTabsList,
  68. currentCategoryIdx: currentCategoryIdx ?? this.currentCategoryIdx,
  69. currentPageViewIdx: currentPageViewIdx ?? this.currentPageViewIdx,
  70. lastNewsfeedTabIdx: lastNewsfeedTabIdx ?? this.lastNewsfeedTabIdx,
  71. lastGarageTabIdx: lastGarageTabIdx ?? this.lastGarageTabIdx,
  72. garageCategoryList: garageCategoryList ?? this.garageCategoryList,
  73. tabsRouter: tabsRouter ?? this.tabsRouter,
  74. pageController: pageController ?? this.pageController,
  75. );
  76. }
  77. }