import 'package:flutter/widgets.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:go_router/go_router.dart'; // import 'package:graphview/GraphView.dart'; import 'package:syncrow_web/pages/auth/model/user_model.dart'; import 'package:syncrow_web/pages/home/bloc/home_event.dart'; import 'package:syncrow_web/pages/home/bloc/home_state.dart'; import 'package:syncrow_web/pages/home/home_model/home_item_model.dart'; import 'package:syncrow_web/pages/routines/bloc/routine_bloc/routine_bloc.dart'; import 'package:syncrow_web/services/home_api.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/constants/routes_const.dart'; class HomeBloc extends Bloc { // final Graph graph = Graph()..isTree = true; // final BuchheimWalkerConfiguration builder = BuchheimWalkerConfiguration(); // List sourcesList = []; // List destinationsList = []; UserModel? user; String terms = ''; String policy = ''; HomeBloc() : super((HomeInitial())) { // on(_createNode); on(_fetchUserInfo); on(_fetchTerms); on(_fetchPolicy); on(_confirmUserAgreement); } // void _createNode(CreateNewNode event, Emitter emit) async { // emit(HomeInitial()); // sourcesList.add(event.sourceNode); // destinationsList.add(event.destinationNode); // for (int i = 0; i < sourcesList.length; i++) { // graph.addEdge(sourcesList[i], destinationsList[i]); // } // builder // ..siblingSeparation = (100) // ..levelSeparation = (150) // ..subtreeSeparation = (150) // ..orientation = (BuchheimWalkerConfiguration.ORIENTATION_TOP_BOTTOM); // emit(HomeUpdateTree(graph: graph, builder: builder)); // } Future _fetchUserInfo(FetchUserInfo event, Emitter emit) async { try { var uuid = await const FlutterSecureStorage().read(key: UserModel.userUuidKey); user = await HomeApi().fetchUserInfo(uuid); add(FetchTermEvent()); add(FetchPolicyEvent()); emit(HomeInitial()); } catch (e) { return; } } Future _fetchTerms(FetchTermEvent event, Emitter emit) async { try { emit(LoadingHome()); terms = await HomeApi().fetchTerms(); emit(HomeInitial()); } catch (e) { return; } } Future _fetchPolicy(FetchPolicyEvent event, Emitter emit) async { try { emit(LoadingHome()); policy = await HomeApi().fetchPolicy(); emit(HomeInitial()); } catch (e) { debugPrint("Error fetching policy: $e"); return; } } Future _confirmUserAgreement( ConfirmUserAgreementEvent event, Emitter emit) async { try { emit(LoadingHome()); var uuid = await const FlutterSecureStorage().read(key: UserModel.userUuidKey); policy = await HomeApi().confirmUserAgreements(uuid); emit(PolicyAgreement()); } catch (e) { return; } } // static Future fetchUserInfo() async { // try { // var uuid = // await const FlutterSecureStorage().read(key: UserModel.userUuidKey); // user = await HomeApi().fetchUserInfo(uuid); // } catch (e) { // return; // } // } List homeItems = [ HomeItemModel( title: 'Access', icon: Assets.accessIcon, active: true, onPress: (context) { context.go(RoutesConst.accessManagementPage); }, color: null, ), HomeItemModel( title: 'Space Management', icon: Assets.spaseManagementIcon, active: true, onPress: (context) { context.go(RoutesConst.spacesManagementPage); }, color: ColorsManager.primaryColor, ), HomeItemModel( title: 'Devices', icon: Assets.devicesIcon, active: true, onPress: (context) { BlocProvider.of(context) .add(const TriggerSwitchTabsEvent(isRoutineTab: false)); context.go(RoutesConst.deviceManagementPage); }, color: ColorsManager.primaryColor, ), // HomeItemModel( // title: 'Move in', // icon: Assets.moveinIcon, // active: false, // onPress: (context) {}, // color: ColorsManager.primaryColor, // ), // HomeItemModel( // title: 'Construction', // icon: Assets.constructionIcon, // active: false, // onPress: (context) {}, // color: ColorsManager.primaryColor, // ), // HomeItemModel( // title: 'Energy', // icon: Assets.energyIcon, // active: false, // onPress: (context) {}, // color: ColorsManager.slidingBlueColor.withOpacity(0.2), // ), // HomeItemModel( // title: 'Integrations', // icon: Assets.integrationsIcon, // active: false, // onPress: (context) {}, // color: ColorsManager.slidingBlueColor.withOpacity(0.2), // ), // HomeItemModel( // title: 'Asset', // icon: Assets.assetIcon, // active: false, // onPress: (context) {}, // color: ColorsManager.slidingBlueColor.withOpacity(0.2), // ), ]; }