Merge pull request #135 from yaso-meth/NEW--MIH-Floating-Menu

NEW--MIH-Floating-Menu
This commit is contained in:
yaso-meth
2025-04-11 11:01:48 +02:00
committed by GitHub
17 changed files with 1017 additions and 388 deletions

View File

@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart';
class MihFloatingMenu extends StatefulWidget {
final IconData? icon;
final AnimatedIconData? animatedIcon;
final List<SpeedDialChild> children;
const MihFloatingMenu({
super.key,
this.icon,
this.animatedIcon,
required this.children,
});
@override
State<MihFloatingMenu> createState() => _MihFloatingMenuState();
}
class _MihFloatingMenuState extends State<MihFloatingMenu> {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(
right: 5.0,
bottom: 5.0,
),
child: SpeedDial(
icon: widget.icon,
animatedIcon: widget.animatedIcon,
activeIcon: Icons.close,
backgroundColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
activeBackgroundColor:
MzanziInnovationHub.of(context)!.theme.errorColor(),
foregroundColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
overlayColor: Colors.black,
overlayOpacity: 0.5,
children: widget.children,
onOpen: () => debugPrint('OPENING DIAL'),
onClose: () => debugPrint('DIAL CLOSED'),
),
);
}
}

View File

@@ -1,3 +1,4 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.dart';
@@ -6,6 +7,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tools.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tools.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -183,6 +185,25 @@ class _PackageTestState extends State<PackageTest> {
), ),
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
MihFloatingMenu(children: [
SpeedDialChild(
child: Icon(
Icons.add,
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Add",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
labelStyle: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
onTap: () {},
)
]),
Container( Container(
color: Colors.black, color: Colors.black,
width: 200, width: 200,

View File

@@ -0,0 +1,60 @@
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
class PackageToolOne extends StatefulWidget {
const PackageToolOne({super.key});
@override
State<PackageToolOne> createState() => _PackageToolOneState();
}
class _PackageToolOneState extends State<PackageToolOne> {
@override
Widget build(BuildContext context) {
return MihAppToolBody(
borderOn: true,
bodyItem: getBody(),
);
}
Widget getBody() {
return MihAppToolBody(
borderOn: true,
bodyItem: MihSingleChildScroll(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
Text(
"Hello",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
),
const SizedBox(height: 10),
Container(
color: Colors.black,
width: 200,
height: 200,
padding: EdgeInsets.zero,
alignment: Alignment.center,
child: IconButton.filled(
onPressed: () {},
icon: Icon(
MihIcons.mihLogo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
)
],
),
),
);
}
}

View File

@@ -1,3 +1,4 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
@@ -6,9 +7,11 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import "package:universal_html/js.dart" as js; import "package:universal_html/js.dart" as js;
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import 'package:share_plus/share_plus.dart';
class MihInfo extends StatefulWidget { class MihInfo extends StatefulWidget {
const MihInfo({super.key}); const MihInfo({super.key});
@@ -581,6 +584,13 @@ class _MihInfoState extends State<MihInfo> {
} }
} }
void shareMIHLink(BuildContext context, String message, String link) {
String shareText = "$message: $link";
Share.share(
shareText,
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MihAppToolBody( return MihAppToolBody(
@@ -590,7 +600,9 @@ class _MihInfoState extends State<MihInfo> {
} }
Widget getBody() { Widget getBody() {
return MihSingleChildScroll( return Stack(
children: [
MihSingleChildScroll(
child: Column( child: Column(
children: [ children: [
SizedBox( SizedBox(
@@ -598,7 +610,8 @@ class _MihInfoState extends State<MihInfo> {
child: FittedBox( child: FittedBox(
child: Icon( child: Icon(
MihIcons.mihLogo, MihIcons.mihLogo,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), ),
), ),
), ),
@@ -646,10 +659,12 @@ class _MihInfoState extends State<MihInfo> {
installMihTrigger(); installMihTrigger();
}, },
buttonText: getInstallButtonText(), buttonText: getInstallButtonText(),
buttonColor: buttonColor: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor(), .theme
textColor: .secondaryColor(),
MzanziInnovationHub.of(context)!.theme.primaryColor(), textColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
), ),
), ),
SizedBox( SizedBox(
@@ -664,10 +679,12 @@ class _MihInfoState extends State<MihInfo> {
); );
}, },
buttonText: "MIH Beginners Guide", buttonText: "MIH Beginners Guide",
buttonColor: buttonColor: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor(), .theme
textColor: .secondaryColor(),
MzanziInnovationHub.of(context)!.theme.primaryColor(), textColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
), ),
), ),
]), ]),
@@ -696,6 +713,83 @@ class _MihInfoState extends State<MihInfo> {
mihSocials(), mihSocials(),
], ],
), ),
),
Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.share,
children: [
SpeedDialChild(
child: Icon(
Icons.vpn_lock,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "MIH - Web",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
shareMIHLink(
context,
"Check out the MIH app on the Web",
"https://app.mzansi-innovation-hub.co.za/",
);
},
),
SpeedDialChild(
child: Icon(
Icons.apple,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "MIH - iOS",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
shareMIHLink(
context,
"Check out the MIH app on the App Store",
"https://apps.apple.com/za/app/mzansi-innovation-hub/id6743310890",
);
},
),
SpeedDialChild(
child: Icon(
Icons.android,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "MIH - Android",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
shareMIHLink(
context,
"Check out the MIH app on the Play Store",
"https://play.google.com/store/apps/details?id=za.co.mzansiinnovationhub.mih",
);
},
),
],
),
)
],
); );
} }
} }

View File

@@ -1,3 +1,4 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_calendar_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_calendar_apis.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_date_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_date_input.dart';
@@ -7,6 +8,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:mzansi_innovation_hub/mih_objects/appointment.dart'; import 'package:mzansi_innovation_hub/mih_objects/appointment.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -302,22 +304,31 @@ class _PatientAccessRequestState extends State<Appointments> {
Positioned( Positioned(
right: 0, right: 0,
bottom: 0, bottom: 0,
child: Container( child: MihFloatingMenu(
decoration: BoxDecoration( icon: Icons.add,
borderRadius: BorderRadius.circular(50), animatedIcon: AnimatedIcons.menu_close,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), children: [
), SpeedDialChild(
child: IconButton( child: Icon(
Icons.add,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(), color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
onPressed: () { ),
label: "Add Card",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
addAppointmentWindow(); addAppointmentWindow();
}, },
icon: const Icon( )
Icons.add, ],
size: 50,
), ),
), ),
))
], ],
); );
} }

View File

@@ -128,6 +128,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome> {
//=============== About MIH =============== //=============== About MIH ===============
temp.add({"About MIH": AboutMihTile(packageSize: packageSize)}); temp.add({"About MIH": AboutMihTile(packageSize: packageSize)});
//=============== Dev =============== //=============== Dev ===============
if (widget.isDevActive) {
temp.add({ temp.add({
"test": MihAppTile( "test": MihAppTile(
onTap: () { onTap: () {
@@ -149,6 +150,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome> {
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
) )
}); });
}
return temp; return temp;
} }

View File

@@ -1,11 +1,13 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_env/env.dart'; import 'package:mzansi_innovation_hub/mih_env/env.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
@@ -69,6 +71,7 @@ class _AiChatState extends State<AiChat> {
} }
void _handleSendPressed(types.PartialText message) { void _handleSendPressed(types.PartialText message) {
FocusScope.of(context).unfocus();
final textMessage = types.TextMessage( final textMessage = types.TextMessage(
author: _user, author: _user,
createdAt: DateTime.now().millisecondsSinceEpoch, createdAt: DateTime.now().millisecondsSinceEpoch,
@@ -349,7 +352,7 @@ class _AiChatState extends State<AiChat> {
return Visibility( return Visibility(
visible: value, visible: value,
child: Padding( child: Padding(
padding: const EdgeInsets.all(5.0), padding: const EdgeInsets.all(10.0),
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: FittedBox( child: FittedBox(
@@ -615,81 +618,76 @@ class _AiChatState extends State<AiChat> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MihAppToolBody( return MihAppToolBody(
borderOn: false, borderOn: false,
bodyItem: Column( bodyItem: getBody(),
);
}
Widget getBody() {
return Stack(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
// Visibility(
// visible: _showModelOptions.value == true,
// child: IconButton.filled(
// iconSize: 20,
// onPressed: () {
// if (_showModelOptions.value == true) {
// setState(() {
// _showModelOptions.value = false;
// });
// } else {
// setState(() {
// _showModelOptions.value = true;
// });
// }
// },
// icon: const Icon(
// Icons.settings,
// ),
// ),
// ),
Expanded( Expanded(
child: Container( child: Text(
alignment: Alignment.centerLeft,
child: Row(
children: [
Visibility(
visible: _showModelOptions.value == false,
child: IconButton(
onPressed: () {
if (_showModelOptions.value == true) {
setState(() {
_showModelOptions.value = false;
});
} else {
setState(() {
_showModelOptions.value = true;
});
}
},
icon: const Icon(Icons.settings),
),
),
Visibility(
visible: _showModelOptions.value == true,
child: IconButton.filled(
onPressed: () {
if (_showModelOptions.value == true) {
setState(() {
_showModelOptions.value = false;
});
} else {
setState(() {
_showModelOptions.value = true;
});
}
},
icon: const Icon(Icons.settings),
),
),
],
),
),
),
Text(
"Mzansi AI", "Mzansi AI",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 25, fontSize: 25,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: color: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor(), .theme
), .secondaryColor(),
),
Expanded(
child: Container(
alignment: Alignment.centerRight,
child: IconButton(
onPressed: () {
_resetChat();
},
icon: const Icon(Icons.refresh),
), ),
), ),
), ),
// Expanded(
// child: Container(
// alignment: Alignment.centerRight,
// child: IconButton(
// onPressed: () {
// _resetChat();
// },
// icon: const Icon(Icons.refresh),
// ),
// ),
// ),
], ],
), ),
_getSettings(), _getSettings(),
Expanded( Expanded(
child: GestureDetector(
onTap: () {
if (_showModelOptions.value == true) {
setState(() {
_showModelOptions.value = false;
});
}
},
child: Chat( child: Chat(
messages: _messages, messages: _messages,
// onAttachmentPressed: _handleAttachmentPressed, // onAttachmentPressed: _handleAttachmentPressed,
@@ -701,9 +699,88 @@ class _AiChatState extends State<AiChat> {
user: _user, user: _user,
theme: getChatTheme(), theme: getChatTheme(),
), ),
),
) )
], ],
), ),
Positioned(
left: 0,
top: 0,
child: Visibility(
visible: _showModelOptions.value == true,
child: IconButton.filled(
iconSize: 20,
onPressed: () {
if (_showModelOptions.value == true) {
setState(() {
_showModelOptions.value = false;
});
} else {
setState(() {
_showModelOptions.value = true;
});
}
},
icon: const Icon(
Icons.settings,
),
),
),
),
Positioned(
right: 0,
bottom: 70,
child: MihFloatingMenu(
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.refresh,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "New Chat",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
_resetChat();
},
),
SpeedDialChild(
child: Icon(
Icons.settings,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Settings",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
if (_showModelOptions.value == true) {
setState(() {
_showModelOptions.value = false;
});
} else {
setState(() {
_showModelOptions.value = true;
});
}
},
),
],
),
),
],
); );
} }
} }

View File

@@ -1,3 +1,4 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_wallet_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_wallet_apis.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
@@ -7,6 +8,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
@@ -318,22 +320,31 @@ class _MihCardsState extends State<MihCards> {
Positioned( Positioned(
right: 0, right: 0,
bottom: 0, bottom: 0,
child: Container( child: MihFloatingMenu(
decoration: BoxDecoration( animatedIcon: AnimatedIcons.menu_close,
borderRadius: BorderRadius.circular(50), children: [
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), SpeedDialChild(
child: Icon(
Icons.add,
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
), ),
child: IconButton( label: "Add Card",
color: MzanziInnovationHub.of(context)!.theme.primaryColor(), labelBackgroundColor:
onPressed: () { MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
addCardWindow(context); addCardWindow(context);
}, },
icon: const Icon( )
Icons.add_card, ]),
size: 50, )
),
),
))
], ],
); );
} }

View File

@@ -1,6 +1,8 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_api.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -110,7 +112,9 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
} }
Widget getBody() { Widget getBody() {
return FutureBuilder( return Stack(
children: [
FutureBuilder(
future: futueFiles, future: futueFiles,
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
@@ -123,11 +127,24 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: setIcons(), children: [
Text(
"Claims/ Statements",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
),
),
],
), ),
Divider( Divider(
color: color: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor()), .theme
.secondaryColor()),
const SizedBox(height: 10), const SizedBox(height: 10),
//const Placeholder(), //const Placeholder(),
BuildClaimStatementFileList( BuildClaimStatementFileList(
@@ -146,6 +163,41 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
); );
} }
}, },
),
Visibility(
visible: widget.type != "personal",
child: Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.file_copy,
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.add,
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Generate Claim/ Statement",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
claimOrStatementWindow();
},
)
],
),
),
),
],
); );
} }
} }

View File

@@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart';
@@ -6,6 +7,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
@@ -321,7 +323,9 @@ class _PatientConsultationState extends State<PatientConsultation> {
} }
Widget getBody() { Widget getBody() {
return MihSingleChildScroll( return Stack(
children: [
MihSingleChildScroll(
child: FutureBuilder( child: FutureBuilder(
future: futueNotes, future: futueNotes,
builder: (context, snapshot) { builder: (context, snapshot) {
@@ -334,11 +338,23 @@ class _PatientConsultationState extends State<PatientConsultation> {
return Column(children: [ return Column(children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: setIcons(), children: [
Text(
"Consultation Notes",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor()),
),
],
), ),
Divider( Divider(
color: color: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor()), .theme
.secondaryColor()),
const SizedBox(height: 10), const SizedBox(height: 10),
BuildNotesList( BuildNotesList(
notes: notesList, notes: notesList,
@@ -356,6 +372,39 @@ class _PatientConsultationState extends State<PatientConsultation> {
} }
}, },
), ),
),
Visibility(
visible: widget.type != "personal",
child: Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.add,
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.add,
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Add Note",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {},
)
],
),
),
),
],
); );
} }
} }

View File

@@ -1,5 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/med_cert_input.dart'; import 'package:mzansi_innovation_hub/mih_components/med_cert_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
@@ -7,6 +8,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
@@ -372,6 +374,104 @@ class _PatientDocumentsState extends State<PatientDocuments> {
} }
} }
Widget getMenu() {
if (widget.type == "personal") {
return Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.add,
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.attach_file,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Attach Document",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
uploudFilePopUp();
},
)
],
),
);
} else {
return Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.add,
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.attach_file,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Add Document",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
uploudFilePopUp();
},
),
SpeedDialChild(
child: Icon(
Icons.sick_outlined,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Generate Medical Certificate",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
medCertPopUp();
},
),
SpeedDialChild(
child: Icon(
Icons.medication,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Generate Prescription",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
prescritionPopUp();
},
),
],
),
);
}
}
List<Widget> setIcons() { List<Widget> setIcons() {
if (widget.type == "personal") { if (widget.type == "personal") {
return [ return [
@@ -488,7 +588,9 @@ class _PatientDocumentsState extends State<PatientDocuments> {
} }
Widget getBody() { Widget getBody() {
return MihSingleChildScroll( return Stack(
children: [
MihSingleChildScroll(
child: FutureBuilder( child: FutureBuilder(
future: futueFiles, future: futueFiles,
builder: (context, snapshot) { builder: (context, snapshot) {
@@ -501,11 +603,24 @@ class _PatientDocumentsState extends State<PatientDocuments> {
return Column(children: [ return Column(children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: setIcons(), children: [
Text(
"Documents",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
),
),
],
), ),
Divider( Divider(
color: color: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor()), .theme
.secondaryColor()),
const SizedBox(height: 10), const SizedBox(height: 10),
BuildFilesList( BuildFilesList(
files: filesList, files: filesList,
@@ -523,6 +638,9 @@ class _PatientDocumentsState extends State<PatientDocuments> {
} }
}, },
), ),
),
getMenu(),
],
); );
} }
} }

View File

@@ -1,7 +1,9 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih-app_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:mzansi_innovation_hub/mih_objects/patients.dart'; import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
@@ -237,7 +239,9 @@ class _PatientInfoState extends State<PatientInfo> {
} }
Widget getBody() { Widget getBody() {
return MihSingleChildScroll( return Stack(
children: [
MihSingleChildScroll(
child: Column( child: Column(
children: [ children: [
Row( Row(
@@ -250,27 +254,15 @@ class _PatientInfoState extends State<PatientInfo> {
style: TextStyle( style: TextStyle(
fontSize: 25, fontSize: 25,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: color: MzanziInnovationHub.of(context)!
MzanziInnovationHub.of(context)!.theme.secondaryColor(), .theme
.secondaryColor(),
), ),
), ),
Visibility(
visible: widget.type == "personal",
child: IconButton(
icon: const Icon(Icons.edit),
alignment: Alignment.topRight,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
onPressed: () {
Navigator.of(context).pushNamed('/patient-profile/edit',
arguments: PatientEditArguments(
widget.signedInUser, widget.selectedPatient));
},
),
)
]), ]),
Divider( Divider(
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), color:
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10), const SizedBox(height: 10),
getPatientDetailsField(), getPatientDetailsField(),
const SizedBox(height: 10), const SizedBox(height: 10),
@@ -280,15 +272,54 @@ class _PatientInfoState extends State<PatientInfo> {
style: TextStyle( style: TextStyle(
fontSize: 25, fontSize: 25,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), ),
), ),
Divider( Divider(
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), color:
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10), const SizedBox(height: 10),
getMedAidDetailsFields(), getMedAidDetailsFields(),
], ],
), ),
),
Visibility(
visible: widget.type == "personal",
child: Positioned(
right: 0,
bottom: 0,
child: MihFloatingMenu(
icon: Icons.add,
animatedIcon: AnimatedIcons.menu_close,
children: [
SpeedDialChild(
child: Icon(
Icons.edit,
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
label: "Edit Profile",
labelBackgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
labelStyle: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold,
),
backgroundColor:
MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () {
Navigator.of(context).pushNamed('/patient-profile/edit',
arguments: PatientEditArguments(
widget.signedInUser, widget.selectedPatient));
},
)
],
),
),
),
],
); );
} }
} }

View File

@@ -11,7 +11,9 @@ import flutter_tts
import geolocator_apple import geolocator_apple
import local_auth_darwin import local_auth_darwin
import mobile_scanner import mobile_scanner
import path_provider_foundation
import printing import printing
import share_plus
import shared_preferences_foundation import shared_preferences_foundation
import syncfusion_pdfviewer_macos import syncfusion_pdfviewer_macos
import url_launcher_macos import url_launcher_macos
@@ -24,7 +26,9 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin")) FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin"))
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
PrintingPlugin.register(with: registry.registrar(forPlugin: "PrintingPlugin")) PrintingPlugin.register(with: registry.registrar(forPlugin: "PrintingPlugin"))
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SyncfusionFlutterPdfViewerPlugin.register(with: registry.registrar(forPlugin: "SyncfusionFlutterPdfViewerPlugin")) SyncfusionFlutterPdfViewerPlugin.register(with: registry.registrar(forPlugin: "SyncfusionFlutterPdfViewerPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))

View File

@@ -470,6 +470,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.27" version: "2.0.27"
flutter_speed_dial:
dependency: "direct main"
description:
name: flutter_speed_dial
sha256: "698a037274a66dbae8697c265440e6acb6ab6cae9ac5f95c749e7944d8f28d41"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
flutter_swipe_detector: flutter_swipe_detector:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -856,6 +864,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: "0ca7359dad67fd7063cb2892ab0c0737b2daafd807cf1acecd62374c8fae6c12"
url: "https://pub.dev"
source: hosted
version: "2.2.16"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
@@ -992,6 +1024,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.1"
share_plus:
dependency: "direct main"
description:
name: share_plus
sha256: fce43200aa03ea87b91ce4c3ac79f0cecd52e2a7a56c7a4185023c271fbfa6da
url: "https://pub.dev"
source: hosted
version: "10.1.4"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b
url: "https://pub.dev"
source: hosted
version: "5.0.2"
shared_preferences: shared_preferences:
dependency: transitive dependency: transitive
description: description:

View File

@@ -73,6 +73,8 @@ dependencies:
flutter_chat_types: ^3.6.2 flutter_chat_types: ^3.6.2
uuid: ^4.5.1 uuid: ^4.5.1
flutter_tts: ^4.2.2 flutter_tts: ^4.2.2
flutter_speed_dial: ^7.0.0
share_plus: ^10.1.4
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

View File

@@ -11,6 +11,7 @@
#include <geolocator_windows/geolocator_windows.h> #include <geolocator_windows/geolocator_windows.h>
#include <local_auth_windows/local_auth_plugin.h> #include <local_auth_windows/local_auth_plugin.h>
#include <printing/printing_plugin.h> #include <printing/printing_plugin.h>
#include <share_plus/share_plus_windows_plugin_c_api.h>
#include <syncfusion_pdfviewer_windows/syncfusion_pdfviewer_windows_plugin.h> #include <syncfusion_pdfviewer_windows/syncfusion_pdfviewer_windows_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h> #include <url_launcher_windows/url_launcher_windows.h>
@@ -25,6 +26,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("LocalAuthPlugin")); registry->GetRegistrarForPlugin("LocalAuthPlugin"));
PrintingPluginRegisterWithRegistrar( PrintingPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("PrintingPlugin")); registry->GetRegistrarForPlugin("PrintingPlugin"));
SharePlusWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar( SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin")); registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin"));
UrlLauncherWindowsRegisterWithRegistrar( UrlLauncherWindowsRegisterWithRegistrar(

View File

@@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
geolocator_windows geolocator_windows
local_auth_windows local_auth_windows
printing printing
share_plus
syncfusion_pdfviewer_windows syncfusion_pdfviewer_windows
url_launcher_windows url_launcher_windows
) )