123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import 'package:cs_resources/generated/assets.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:plugin_platform/engine/toast/toast_engine.dart';
- import 'package:riverpod_annotation/riverpod_annotation.dart';
- import 'package:shared/utils/log_utils.dart';
- import 'community_state.dart';
- import '../garagesale/garagesale_page.dart';
- import '../newsfeed/newsfeed_page.dart';
- part 'community_vm.g.dart';
- @riverpod
- class CommunityVm extends _$CommunityVm {
- get topSectionsData => state.topSectionsData;
- CommunityVmState initState() {
- return CommunityVmState();
- }
- @override
- CommunityVmState build(){
- final state = initState();
- Log.d("--------------------------build---------------------");
- return state;
- }
- // 设置当前的 tabsRouter 和 pageController
- Future setTabsRouterAndPageController(dynamic tabsRouter, dynamic pageController) async{
- Log.d("setTabsRouterAndPageController---: $tabsRouter");
- state = await state.copyWith(tabsRouter: tabsRouter, pageController: pageController,curIdx: tabsRouter.activeIndex);
- }
- Future setCurrentUseTag(int useTag) async {
- state = await state.copyWith(useTag: useTag, curIdx: useTag);
- Log.d("useTag----: $useTag");
- }
- // 页面切换
- switchPage(int index,int useTag,BuildContext? context, [bool? isFirstInitSwitch] ){
- if(state.curIdx != index){
- state = state.copyWith(curIdx: index, useTag: useTag);
- final List<Map<String, dynamic>>? topSectionsData = state.topSectionsData;
- // Log.d("当前页面${topSectionsData?[index]['pageStartInstanceFn']}");
- final pageStartInstanceFn = topSectionsData?[index]['pageStartInstanceFn'] as Function({BuildContext? context});
- pageStartInstanceFn(context:context);
- }else {
- if(isFirstInitSwitch??false){
- final List<Map<String, dynamic>>? topSectionsData = state.topSectionsData;
- // Log.d("当前页面${topSectionsData?[index]['pageStartInstanceFn']}");
- final pageStartInstanceFn = topSectionsData?[index]['pageStartInstanceFn'] as Function({BuildContext? context});
- pageStartInstanceFn(context:context);
- }
- }
- }
- }
|