import 'package:flutter/material.dart'; import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import 'package:hub/components/organism_components/local_profile_component/local_profile_component_model.dart'; import 'package:hub/components/organism_components/menu_component/menu_component_model.dart'; import 'package:hub/components/organism_components/message_well_component/message_well_component_model.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/pages/home_page/home_page_widget.dart'; import 'package:hub/shared/helpers/license/license_helper.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart'; class HomePageModel extends FlutterFlowModel { HomePageModel({required this.safeSetState}); late final VoidCallback safeSetState; bool isGrid = false; late final String devUUID; late final String cliUUID; late final String userUUID; late final String userName; late final String userEmail; final unfocusNode = FocusNode(); FocusNode? textFieldFocusNode; TextEditingController? textController; String? Function(BuildContext, String?)? textControllerValidator; late LocalProfileComponentModel localComponentModel; late MenuComponentModel homeMenuComponentModel; late MenuComponentModel drawerMenuComponentModel; late MessageWellComponentModel messageWellComponentModel; Future _initVariable() async { devUUID = (await StorageHelper().g(KeychainStorageKey.devUUID.value)) ?? ''; userUUID = (await StorageHelper().g(KeychainStorageKey.userUUID.value)) ?? ''; cliUUID = (await StorageHelper().g(KeychainStorageKey.clientUUID.value)) ?? ''; userName = (await StorageHelper().g(KeychainStorageKey.userName.value)) ?? ''; userEmail = (await StorageHelper().g(SecureStorageKey.email.value)) ?? ''; } @override void initState(BuildContext context) { _initVariable(); localComponentModel = createModel(context, () => LocalProfileComponentModel()); homeMenuComponentModel = createModel( context, () => MenuComponentModel( expandable: true, style: MenuView.list_grid, item: MenuItem.button, menuOptions: [ Module.messages, Module.access, Module.pets, Module.openedVisits, Module.reservations, Module.orders, Module.providerSchedule, Module.deliverySchedule, Module.completeSchedule, Module.fastPass, Module.liberations, Module.qrCode, Module.settings, ])); drawerMenuComponentModel = createModel( context, () => MenuComponentModel( expandable: false, style: MenuView.list, item: MenuItem.tile, menuOptions: [ Module.messages, Module.access, Module.pets, Module.openedVisits, Module.reservations, Module.orders, Module.providerSchedule, Module.deliverySchedule, Module.completeSchedule, Module.fastPass, Module.liberations, Module.qrCode, Module.logout, ])); messageWellComponentModel = createModel(context, () => MessageWellComponentModel()); } @override void dispose() { unfocusNode.dispose(); textFieldFocusNode?.dispose(); textController?.dispose(); localComponentModel.dispose(); homeMenuComponentModel.dispose(); messageWellComponentModel.dispose(); } }