community_state.dart 2.3 KB

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