
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;
  }

   Future setCurrentUseTag(int useTag) async {
    state = await state.copyWith(useTag: 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);
      }
    }
  }

}

