import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/notification.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_home/components/mih_app_drawer.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_home/package_tools/mih_business_home.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_home/package_tools/mih_personal_home.dart'; import 'package:flutter/material.dart'; // ignore: must_be_immutable class MihHome extends StatefulWidget { final AppUser signedInUser; final BusinessUser? businessUser; final Business? business; final Patient? patient; final List notifications; final ImageProvider? propicFile; final bool isUserNew; final bool isBusinessUser; final bool isBusinessUserNew; final bool isDevActive; bool personalSelected; MihHome({ super.key, required this.signedInUser, required this.businessUser, required this.business, required this.patient, required this.notifications, required this.propicFile, required this.isUserNew, required this.isBusinessUser, required this.isBusinessUserNew, required this.isDevActive, required this.personalSelected, }); @override State createState() => _MihHomeState(); } class _MihHomeState extends State { final proPicController = TextEditingController(); late int _selcetedIndex; late bool _personalSelected; @override void dispose() { super.dispose(); } @override void initState() { super.initState(); if (widget.personalSelected == true) { setState(() { _selcetedIndex = 0; _personalSelected = true; }); } else { setState(() { _selcetedIndex = 1; _personalSelected = false; }); } } List getToolTitle() { List toolTitles = [ "Personal", "Business", ]; return toolTitles; } @override Widget build(BuildContext context) { return MihPackage( appActionButton: getAction(), appTools: getTools(), appBody: getToolBody(), appToolTitles: getToolTitle(), actionDrawer: getActionDrawer(), selectedbodyIndex: _selcetedIndex, onIndexChange: (newValue) { if (_selcetedIndex == 0) { setState(() { _selcetedIndex = newValue; _personalSelected = true; }); } else { setState(() { _selcetedIndex = newValue; _personalSelected = false; }); } }, ); } Widget getAction() { return Builder(builder: (context) { return MihPackageAction( icon: Padding( padding: const EdgeInsets.only(left: 5.0), child: MihCircleAvatar( imageFile: widget.propicFile, width: 50, editable: false, fileNameController: proPicController, userSelectedfile: null, // frameColor: frameColor, frameColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), backgroundColor: MihColors.getPrimaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), onChange: (_) {}, ), // MIHProfilePicture( // profilePictureFile: widget.propicFile, // proPicController: proPicController, // proPic: null, // width: 45, // radius: 21, // drawerMode: false, // editable: false, // frameColor: MihColors.getSecondaryColor(MzansiInnovationHub.of(context)!.theme.mode == "Dark"), // onChange: (newProPic) {}, // ), ), iconSize: 45, onTap: () { Scaffold.of(context).openDrawer(); FocusScope.of(context) .requestFocus(FocusNode()); // Fully unfocus all fields // FocusScope.of(context).unfocus(); // Unfocus any text fields }, ); }); } MIHAppDrawer getActionDrawer() { return MIHAppDrawer( signedInUser: widget.signedInUser, propicFile: widget.propicFile, ); } MihPackageTools getTools() { Map temp = {}; temp[const Icon(Icons.person)] = () { setState(() { _selcetedIndex = 0; _personalSelected = true; }); }; if (widget.isBusinessUser) { temp[const Icon(Icons.business_center)] = () { setState(() { _selcetedIndex = 1; _personalSelected = false; }); }; } return MihPackageTools( tools: temp, selcetedIndex: _selcetedIndex, ); } List getToolBody() { List toolBodies = []; toolBodies.add( MihPersonalHome( signedInUser: widget.signedInUser, personalSelected: _personalSelected, business: widget.business, businessUser: widget.businessUser, propicFile: widget.propicFile, isUserNew: widget.isUserNew, isDevActive: widget.isDevActive, ), ); if (widget.isBusinessUser) { toolBodies.add( MihBusinessHome( signedInUser: widget.signedInUser, personalSelected: _personalSelected, businessUser: widget.businessUser, business: widget.business, isBusinessUserNew: widget.isBusinessUserNew, ), ); } return toolBodies; } }