Merge pull request #182 from yaso-meth/QoL--Package-window-Component-update
QoL--Package-window-Component-update
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_yt_video_player.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_yt_video_player.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../main.dart';
|
|
||||||
import 'mih_window.dart';
|
|
||||||
|
|
||||||
class MIHTile extends StatefulWidget {
|
class MIHTile extends StatefulWidget {
|
||||||
final String tileName;
|
final String tileName;
|
||||||
@@ -47,16 +47,17 @@ class _MIHTileState extends State<MIHTile> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: widget.tileName,
|
windowTitle: widget.tileName,
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHYTVideoPlayer(videoYTLink: widget.videoID!),
|
children: [
|
||||||
],
|
MIHYTVideoPlayer(videoYTLink: widget.videoID!),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,214 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import '../../main.dart';
|
|
||||||
|
|
||||||
class MIHWindow extends StatefulWidget {
|
|
||||||
final String windowTitle;
|
|
||||||
final List<Widget> windowBody;
|
|
||||||
final List<Widget> windowTools;
|
|
||||||
final void Function() onWindowTapClose;
|
|
||||||
final bool fullscreen;
|
|
||||||
const MIHWindow({
|
|
||||||
super.key,
|
|
||||||
required this.fullscreen,
|
|
||||||
required this.windowTitle,
|
|
||||||
required this.windowTools,
|
|
||||||
required this.onWindowTapClose,
|
|
||||||
required this.windowBody,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<MIHWindow> createState() => _MIHWindowState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _MIHWindowState extends State<MIHWindow> {
|
|
||||||
late double windowTitleSize;
|
|
||||||
late double horizontralWindowPadding;
|
|
||||||
late double vertticalWindowPadding;
|
|
||||||
late double windowWidth;
|
|
||||||
late double windowHeight;
|
|
||||||
late double width;
|
|
||||||
late double height;
|
|
||||||
|
|
||||||
void checkScreenSize() {
|
|
||||||
// print("screen width: $width");
|
|
||||||
// print("screen height: $height");
|
|
||||||
if (MzanziInnovationHub.of(context)!.theme.screenType == "desktop") {
|
|
||||||
setState(() {
|
|
||||||
windowTitleSize = 25;
|
|
||||||
horizontralWindowPadding = width / 7;
|
|
||||||
vertticalWindowPadding = 25;
|
|
||||||
windowWidth = width;
|
|
||||||
windowHeight = height;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
setState(() {
|
|
||||||
windowTitleSize = 20;
|
|
||||||
horizontralWindowPadding = 10;
|
|
||||||
vertticalWindowPadding = 10;
|
|
||||||
windowWidth = width;
|
|
||||||
windowHeight = height;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWidnowClose() {
|
|
||||||
return Container(
|
|
||||||
alignment: Alignment.centerRight,
|
|
||||||
child: IconButton(
|
|
||||||
onPressed: widget.onWindowTapClose,
|
|
||||||
icon: Icon(
|
|
||||||
Icons.close,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
size: 35,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWidnowTools() {
|
|
||||||
return Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: widget.windowTools,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWidnowTitle() {
|
|
||||||
return Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Text(
|
|
||||||
widget.windowTitle,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
overflow: TextOverflow.ellipsis,
|
|
||||||
style: TextStyle(
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
fontSize: windowTitleSize,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWidnowHeader() {
|
|
||||||
return Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
getWidnowTools(),
|
|
||||||
Expanded(
|
|
||||||
flex: 2,
|
|
||||||
child: getWidnowTitle(),
|
|
||||||
),
|
|
||||||
getWidnowClose(),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWidnowBody() {
|
|
||||||
if (widget.fullscreen) {
|
|
||||||
return Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(10.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: widget.windowBody,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return Padding(
|
|
||||||
padding: const EdgeInsets.all(10.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: widget.windowBody,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget createWindow(Widget header, Widget body) {
|
|
||||||
Widget visibleItems;
|
|
||||||
if (widget.fullscreen) {
|
|
||||||
visibleItems = Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
header,
|
|
||||||
//const Divider(),
|
|
||||||
body,
|
|
||||||
],
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
visibleItems = SingleChildScrollView(
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
header,
|
|
||||||
//const Divider(),
|
|
||||||
body,
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return Dialog(
|
|
||||||
insetPadding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontralWindowPadding,
|
|
||||||
vertical: vertticalWindowPadding,
|
|
||||||
),
|
|
||||||
insetAnimationCurve: Easing.emphasizedDecelerate,
|
|
||||||
insetAnimationDuration: Durations.short1,
|
|
||||||
child: Container(
|
|
||||||
//padding: const EdgeInsets.all(10),
|
|
||||||
width: windowWidth,
|
|
||||||
//height: windowHeight,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
borderRadius: BorderRadius.circular(25.0),
|
|
||||||
border: Border.all(
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
width: 5.0),
|
|
||||||
),
|
|
||||||
child: visibleItems,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
var size = MediaQuery.of(context).size;
|
|
||||||
setState(() {
|
|
||||||
width = size.width;
|
|
||||||
height = size.height;
|
|
||||||
});
|
|
||||||
checkScreenSize();
|
|
||||||
return createWindow(
|
|
||||||
getWidnowHeader(),
|
|
||||||
getWidnowBody(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.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_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_action.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_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.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_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/Example/package_tools/package_tool_two.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/Example/package_tools/package_tool_two.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
||||||
@@ -18,8 +18,8 @@ class PackageTest extends StatefulWidget {
|
|||||||
class _PackageTestState extends State<PackageTest> {
|
class _PackageTestState extends State<PackageTest> {
|
||||||
int _selcetedIndex = 0;
|
int _selcetedIndex = 0;
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -32,7 +32,7 @@ class _PackageTestState extends State<PackageTest> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = Map();
|
Map<Widget, void Function()?> temp = Map();
|
||||||
temp[const Icon(Icons.inbox)] = () {
|
temp[const Icon(Icons.inbox)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -44,7 +44,7 @@ class _PackageTestState extends State<PackageTest> {
|
|||||||
_selcetedIndex = 1;
|
_selcetedIndex = 1;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
@@ -54,7 +54,7 @@ class _PackageTestState extends State<PackageTest> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.warning_amber_rounded,
|
Icons.warning_amber_rounded,
|
||||||
size: 100,
|
size: 100,
|
||||||
@@ -119,7 +119,7 @@ class _PackageTestState extends State<PackageTest> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
|
|||||||
@@ -4,8 +4,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_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_package_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_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.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_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';
|
||||||
@@ -29,7 +29,7 @@ class _PackageToolOneState extends State<PackageToolOne> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: true,
|
fullscreen: true,
|
||||||
windowTitle: "Test Full",
|
windowTitle: "Test Full",
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
@@ -46,9 +46,29 @@ class _PackageToolOneState extends State<PackageToolOne> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Test No Full",
|
windowTitle: "Test No Full",
|
||||||
|
menuOptions: [
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Show New Window",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
// showTestWindow();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
@@ -71,7 +91,7 @@ class _PackageToolOneState extends State<PackageToolOne> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.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';
|
||||||
|
|
||||||
class PackageToolTwo extends StatefulWidget {
|
class PackageToolTwo extends StatefulWidget {
|
||||||
@@ -14,7 +14,7 @@ class PackageToolTwo extends StatefulWidget {
|
|||||||
class _PackageToolTwoState extends State<PackageToolTwo> {
|
class _PackageToolTwoState extends State<PackageToolTwo> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,183 +0,0 @@
|
|||||||
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';
|
|
||||||
|
|
||||||
class MihAppWindow extends StatefulWidget {
|
|
||||||
final String windowTitle;
|
|
||||||
final Widget windowBody;
|
|
||||||
final Widget? windowTools;
|
|
||||||
// final List<SpeedDialChild> menuOptions;
|
|
||||||
final void Function() onWindowTapClose;
|
|
||||||
final bool fullscreen;
|
|
||||||
const MihAppWindow({
|
|
||||||
super.key,
|
|
||||||
required this.fullscreen,
|
|
||||||
required this.windowTitle,
|
|
||||||
this.windowTools,
|
|
||||||
// required this.menuOptions,
|
|
||||||
required this.onWindowTapClose,
|
|
||||||
required this.windowBody,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<MihAppWindow> createState() => _MihAppWindowState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _MihAppWindowState extends State<MihAppWindow> {
|
|
||||||
late double windowTitleSize;
|
|
||||||
late double horizontralWindowPadding;
|
|
||||||
late double vertticalWindowPadding;
|
|
||||||
late double windowWidth;
|
|
||||||
late double windowHeight;
|
|
||||||
late double width;
|
|
||||||
late double height;
|
|
||||||
|
|
||||||
void checkScreenSize() {
|
|
||||||
// print("screen width: $width");
|
|
||||||
// print("screen height: $height");
|
|
||||||
if (MzanziInnovationHub.of(context)!.theme.screenType == "desktop") {
|
|
||||||
setState(() {
|
|
||||||
windowTitleSize = 25;
|
|
||||||
horizontralWindowPadding = width / 7;
|
|
||||||
vertticalWindowPadding = 25;
|
|
||||||
windowWidth = width;
|
|
||||||
windowHeight = height;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
setState(() {
|
|
||||||
windowTitleSize = 20;
|
|
||||||
horizontralWindowPadding = 10;
|
|
||||||
vertticalWindowPadding = 10;
|
|
||||||
windowWidth = width;
|
|
||||||
windowHeight = height;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getWindowHeader() {
|
|
||||||
return Container(
|
|
||||||
// color: Colors.green,
|
|
||||||
alignment: Alignment.center,
|
|
||||||
height: 50,
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
// color: Colors.white,
|
|
||||||
alignment: Alignment.center,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(25), // Optional: rounds the corners
|
|
||||||
boxShadow: const [
|
|
||||||
BoxShadow(
|
|
||||||
color: Color.fromARGB(
|
|
||||||
60, 0, 0, 0), // 0.2 opacity = 51 in alpha (255 * 0.2)
|
|
||||||
spreadRadius: -5,
|
|
||||||
blurRadius: 5,
|
|
||||||
offset: Offset(0, 5),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
child: IconButton.filled(
|
|
||||||
style: ButtonStyle(
|
|
||||||
backgroundColor: WidgetStateProperty.all<Color>(
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor()),
|
|
||||||
),
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
iconSize: 20,
|
|
||||||
onPressed: () {
|
|
||||||
widget.onWindowTapClose();
|
|
||||||
},
|
|
||||||
icon: const Icon(
|
|
||||||
Icons.close,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
||||||
// color: Colors.pink,
|
|
||||||
child: Text(
|
|
||||||
widget.windowTitle,
|
|
||||||
textAlign: TextAlign.left,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: windowTitleSize,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
widget.windowTools != null ? widget.windowTools! : Container(),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
var size = MediaQuery.of(context).size;
|
|
||||||
setState(() {
|
|
||||||
width = size.width;
|
|
||||||
height = size.height;
|
|
||||||
});
|
|
||||||
checkScreenSize();
|
|
||||||
return Dialog(
|
|
||||||
insetPadding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontralWindowPadding,
|
|
||||||
vertical: vertticalWindowPadding,
|
|
||||||
),
|
|
||||||
insetAnimationCurve: Easing.emphasizedDecelerate,
|
|
||||||
insetAnimationDuration: Durations.short1,
|
|
||||||
child: Container(
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
borderRadius: BorderRadius.circular(25.0),
|
|
||||||
border: Border.all(
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
width: 5.0),
|
|
||||||
),
|
|
||||||
child: widget.fullscreen
|
|
||||||
? Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
getWindowHeader(),
|
|
||||||
Expanded(
|
|
||||||
child: SingleChildScrollView(child: widget.windowBody)),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
getWindowHeader(),
|
|
||||||
Flexible(
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
left: 25,
|
|
||||||
right: 25,
|
|
||||||
bottom: vertticalWindowPadding,
|
|
||||||
),
|
|
||||||
child: ConstrainedBox(
|
|
||||||
constraints: BoxConstraints(
|
|
||||||
maxHeight: windowHeight * 0.85,
|
|
||||||
maxWidth: windowWidth * 0.85,
|
|
||||||
),
|
|
||||||
child: MihSingleChildScroll(
|
|
||||||
child: widget.windowBody))),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,12 +4,14 @@ import 'package:mzansi_innovation_hub/main.dart';
|
|||||||
|
|
||||||
class MihFloatingMenu extends StatefulWidget {
|
class MihFloatingMenu extends StatefulWidget {
|
||||||
final IconData? icon;
|
final IconData? icon;
|
||||||
|
final double? iconSize;
|
||||||
final AnimatedIconData? animatedIcon;
|
final AnimatedIconData? animatedIcon;
|
||||||
final SpeedDialDirection? direction;
|
final SpeedDialDirection? direction;
|
||||||
final List<SpeedDialChild> children;
|
final List<SpeedDialChild> children;
|
||||||
const MihFloatingMenu({
|
const MihFloatingMenu({
|
||||||
super.key,
|
super.key,
|
||||||
this.icon,
|
this.icon,
|
||||||
|
this.iconSize,
|
||||||
this.animatedIcon,
|
this.animatedIcon,
|
||||||
this.direction,
|
this.direction,
|
||||||
required this.children,
|
required this.children,
|
||||||
@@ -22,26 +24,21 @@ class MihFloatingMenu extends StatefulWidget {
|
|||||||
class _MihFloatingMenuState extends State<MihFloatingMenu> {
|
class _MihFloatingMenuState extends State<MihFloatingMenu> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Padding(
|
return SpeedDial(
|
||||||
padding: const EdgeInsets.only(
|
icon: widget.icon,
|
||||||
right: 5.0,
|
buttonSize: Size(widget.iconSize ?? 56.0, widget.iconSize ?? 56.0),
|
||||||
bottom: 5.0,
|
animatedIcon: widget.animatedIcon,
|
||||||
),
|
direction: widget.direction ?? SpeedDialDirection.up,
|
||||||
child: SpeedDial(
|
activeIcon: Icons.close,
|
||||||
icon: widget.icon,
|
backgroundColor: MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
animatedIcon: widget.animatedIcon,
|
activeBackgroundColor:
|
||||||
direction: widget.direction ?? SpeedDialDirection.up,
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
activeIcon: Icons.close,
|
foregroundColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
backgroundColor: MzanziInnovationHub.of(context)!.theme.successColor(),
|
overlayColor: Colors.black,
|
||||||
activeBackgroundColor:
|
overlayOpacity: 0.5,
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
children: widget.children,
|
||||||
foregroundColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
onOpen: () => debugPrint('OPENING DIAL'),
|
||||||
overlayColor: Colors.black,
|
onClose: () => debugPrint('DIAL CLOSED'),
|
||||||
overlayOpacity: 0.5,
|
|
||||||
children: widget.children,
|
|
||||||
onOpen: () => debugPrint('OPENING DIAL'),
|
|
||||||
onClose: () => debugPrint('DIAL CLOSED'),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mih_home/components/mih_app_drawer.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mih_home/components/mih_app_drawer.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_package_tools.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
// import 'package:flutter_swipe_detector/flutter_swipe_detector.dart';
|
// import 'package:flutter_swipe_detector/flutter_swipe_detector.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
class MihApp extends StatefulWidget {
|
class MihPackage extends StatefulWidget {
|
||||||
final Widget appActionButton;
|
final Widget appActionButton;
|
||||||
final MihAppTools appTools;
|
final MihPackageTools appTools;
|
||||||
final List<Widget> appBody;
|
final List<Widget> appBody;
|
||||||
final MIHAppDrawer? actionDrawer;
|
final MIHAppDrawer? actionDrawer;
|
||||||
int selectedbodyIndex;
|
int selectedbodyIndex;
|
||||||
final Function(int) onIndexChange;
|
final Function(int) onIndexChange;
|
||||||
MihApp({
|
MihPackage({
|
||||||
super.key,
|
super.key,
|
||||||
required this.appActionButton,
|
required this.appActionButton,
|
||||||
required this.appTools,
|
required this.appTools,
|
||||||
@@ -23,10 +23,11 @@ class MihApp extends StatefulWidget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihApp> createState() => _MihAppState();
|
State<MihPackage> createState() => _MihPackageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppState extends State<MihApp> with SingleTickerProviderStateMixin {
|
class _MihPackageState extends State<MihPackage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late PageController _pageController;
|
late PageController _pageController;
|
||||||
late AnimationController _animationController;
|
late AnimationController _animationController;
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ class _MihAppState extends State<MihApp> with SingleTickerProviderStateMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void didUpdateWidget(covariant MihApp oldWidget) {
|
void didUpdateWidget(covariant MihPackage oldWidget) {
|
||||||
super.didUpdateWidget(oldWidget);
|
super.didUpdateWidget(oldWidget);
|
||||||
if (oldWidget.selectedbodyIndex != widget.selectedbodyIndex) {
|
if (oldWidget.selectedbodyIndex != widget.selectedbodyIndex) {
|
||||||
_pageController.animateToPage(
|
_pageController.animateToPage(
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class MihAppAction extends StatefulWidget {
|
class MihPackageAction extends StatefulWidget {
|
||||||
final void Function()? onTap;
|
final void Function()? onTap;
|
||||||
final double iconSize;
|
final double iconSize;
|
||||||
final Widget icon;
|
final Widget icon;
|
||||||
const MihAppAction({
|
const MihPackageAction({
|
||||||
super.key,
|
super.key,
|
||||||
required this.icon,
|
required this.icon,
|
||||||
required this.iconSize,
|
required this.iconSize,
|
||||||
@@ -12,10 +12,10 @@ class MihAppAction extends StatefulWidget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihAppAction> createState() => _MihAppActionState();
|
State<MihPackageAction> createState() => _MihPackageActionState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppActionState extends State<MihAppAction> {
|
class _MihPackageActionState extends State<MihPackageAction> {
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class MihAppAlert extends StatefulWidget {
|
class MihPackageAlert extends StatefulWidget {
|
||||||
final Widget alertIcon;
|
final Widget alertIcon;
|
||||||
final String alertTitle;
|
final String alertTitle;
|
||||||
final Widget alertBody;
|
final Widget alertBody;
|
||||||
final Color alertColour;
|
final Color alertColour;
|
||||||
const MihAppAlert({
|
const MihPackageAlert({
|
||||||
super.key,
|
super.key,
|
||||||
required this.alertIcon,
|
required this.alertIcon,
|
||||||
required this.alertTitle,
|
required this.alertTitle,
|
||||||
@@ -15,10 +15,10 @@ class MihAppAlert extends StatefulWidget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihAppAlert> createState() => _MihAppAlertState();
|
State<MihPackageAlert> createState() => _MihPackageAlertState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppAlertState extends State<MihAppAlert> {
|
class _MihPackageAlertState extends State<MihPackageAlert> {
|
||||||
late double popUpWidth;
|
late double popUpWidth;
|
||||||
late double? popUpheight;
|
late double? popUpheight;
|
||||||
late double popUpTitleSize;
|
late double popUpTitleSize;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.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_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_yt_video_player.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_yt_video_player.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class MihAppTile extends StatefulWidget {
|
class MihPackageTile extends StatefulWidget {
|
||||||
final String appName;
|
final String appName;
|
||||||
final String? ytVideoID;
|
final String? ytVideoID;
|
||||||
final Widget appIcon;
|
final Widget appIcon;
|
||||||
@@ -11,7 +11,7 @@ class MihAppTile extends StatefulWidget {
|
|||||||
final double iconSize;
|
final double iconSize;
|
||||||
final Color primaryColor;
|
final Color primaryColor;
|
||||||
final Color secondaryColor;
|
final Color secondaryColor;
|
||||||
const MihAppTile({
|
const MihPackageTile({
|
||||||
super.key,
|
super.key,
|
||||||
required this.onTap,
|
required this.onTap,
|
||||||
required this.appName,
|
required this.appName,
|
||||||
@@ -23,16 +23,16 @@ class MihAppTile extends StatefulWidget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihAppTile> createState() => _MihAppTileState();
|
State<MihPackageTile> createState() => _MihPackageTileState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppTileState extends State<MihAppTile> {
|
class _MihPackageTileState extends State<MihPackageTile> {
|
||||||
void displayHint() {
|
void displayHint() {
|
||||||
if (widget.ytVideoID != null) {
|
if (widget.ytVideoID != null) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: widget.appName,
|
windowTitle: widget.appName,
|
||||||
// windowTools: const [],
|
// windowTools: const [],
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class MihAppToolBody extends StatefulWidget {
|
class MihPackageToolBody extends StatefulWidget {
|
||||||
final bool borderOn;
|
final bool borderOn;
|
||||||
final Widget bodyItem;
|
final Widget bodyItem;
|
||||||
const MihAppToolBody({
|
const MihPackageToolBody({
|
||||||
super.key,
|
super.key,
|
||||||
required this.borderOn,
|
required this.borderOn,
|
||||||
required this.bodyItem,
|
required this.bodyItem,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihAppToolBody> createState() => _MihAppToolBodyState();
|
State<MihPackageToolBody> createState() => _MihPackageToolBodyState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppToolBodyState extends State<MihAppToolBody> {
|
class _MihPackageToolBodyState extends State<MihPackageToolBody> {
|
||||||
late double _innerBodyPadding;
|
late double _innerBodyPadding;
|
||||||
double getHorizontalPaddingSize(Size screenSize) {
|
double getHorizontalPaddingSize(Size screenSize) {
|
||||||
if (MzanziInnovationHub.of(context)!.theme.screenType == "desktop") {
|
if (MzanziInnovationHub.of(context)!.theme.screenType == "desktop") {
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
class MihAppTools extends StatefulWidget {
|
class MihPackageTools extends StatefulWidget {
|
||||||
final Map<Widget, void Function()?> tools;
|
final Map<Widget, void Function()?> tools;
|
||||||
int selcetedIndex;
|
int selcetedIndex;
|
||||||
MihAppTools({
|
MihPackageTools({
|
||||||
super.key,
|
super.key,
|
||||||
required this.tools,
|
required this.tools,
|
||||||
required this.selcetedIndex,
|
required this.selcetedIndex,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MihAppTools> createState() => _MihAppToolsState();
|
State<MihPackageTools> createState() => _MihPackageToolsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MihAppToolsState extends State<MihAppTools> {
|
class _MihPackageToolsState extends State<MihPackageTools> {
|
||||||
List<Widget> getTools() {
|
List<Widget> getTools() {
|
||||||
List<Widget> temp = [];
|
List<Widget> temp = [];
|
||||||
int index = 0;
|
int index = 0;
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_speed_dial/flutter_speed_dial.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_floating_menu.dart';
|
||||||
|
|
||||||
|
class MihPackageWindow extends StatefulWidget {
|
||||||
|
final String windowTitle;
|
||||||
|
final Widget windowBody;
|
||||||
|
final List<SpeedDialChild>? menuOptions;
|
||||||
|
final void Function() onWindowTapClose;
|
||||||
|
final bool fullscreen;
|
||||||
|
const MihPackageWindow({
|
||||||
|
super.key,
|
||||||
|
required this.fullscreen,
|
||||||
|
required this.windowTitle,
|
||||||
|
this.menuOptions,
|
||||||
|
required this.onWindowTapClose,
|
||||||
|
required this.windowBody,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<MihPackageWindow> createState() => _MihPackageWindowState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _MihPackageWindowState extends State<MihPackageWindow> {
|
||||||
|
late double windowTitleSize;
|
||||||
|
late double horizontralWindowPadding;
|
||||||
|
late double vertticalWindowPadding;
|
||||||
|
late double windowWidth;
|
||||||
|
late double windowHeight;
|
||||||
|
late double width;
|
||||||
|
late double height;
|
||||||
|
|
||||||
|
void checkScreenSize() {
|
||||||
|
// print("screen width: $width");
|
||||||
|
// print("screen height: $height");
|
||||||
|
if (MzanziInnovationHub.of(context)!.theme.screenType == "desktop") {
|
||||||
|
setState(() {
|
||||||
|
windowTitleSize = 25;
|
||||||
|
horizontralWindowPadding = width / 7;
|
||||||
|
vertticalWindowPadding = 25;
|
||||||
|
windowWidth = width;
|
||||||
|
windowHeight = height;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setState(() {
|
||||||
|
windowTitleSize = 20;
|
||||||
|
horizontralWindowPadding = 10;
|
||||||
|
vertticalWindowPadding = 10;
|
||||||
|
windowWidth = width;
|
||||||
|
windowHeight = height;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget getHeader() {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
// color: Colors.white,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(25), // Optional: rounds the corners
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromARGB(
|
||||||
|
60, 0, 0, 0), // 0.2 opacity = 51 in alpha (255 * 0.2)
|
||||||
|
spreadRadius: -2,
|
||||||
|
blurRadius: 10,
|
||||||
|
offset: Offset(0, 5),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
top: 2.0,
|
||||||
|
left: 5.0,
|
||||||
|
),
|
||||||
|
child: SizedBox(
|
||||||
|
width: 40,
|
||||||
|
child: IconButton.filled(
|
||||||
|
style: ButtonStyle(
|
||||||
|
backgroundColor: WidgetStateProperty.all<Color>(
|
||||||
|
MzanziInnovationHub.of(context)!.theme.errorColor()),
|
||||||
|
),
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
iconSize: 20,
|
||||||
|
onPressed: () {
|
||||||
|
widget.onWindowTapClose();
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
|
Icons.close,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
||||||
|
child: Text(
|
||||||
|
widget.windowTitle,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: windowTitleSize,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Visibility(
|
||||||
|
visible: (widget.menuOptions?.isNotEmpty ?? false),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
top: 2.0,
|
||||||
|
right: 5.0,
|
||||||
|
),
|
||||||
|
child: SizedBox(
|
||||||
|
width: 40,
|
||||||
|
child: MihFloatingMenu(
|
||||||
|
iconSize: 40,
|
||||||
|
animatedIcon: AnimatedIcons.menu_close,
|
||||||
|
direction: SpeedDialDirection.down,
|
||||||
|
children: widget.menuOptions != null ? widget.menuOptions! : [],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// If no menu, add a SizedBox to keep alignment
|
||||||
|
if (!(widget.menuOptions?.isNotEmpty ?? false))
|
||||||
|
const SizedBox(width: 40),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
var size = MediaQuery.of(context).size;
|
||||||
|
setState(() {
|
||||||
|
width = size.width;
|
||||||
|
height = size.height;
|
||||||
|
});
|
||||||
|
checkScreenSize();
|
||||||
|
return Dialog(
|
||||||
|
insetPadding: EdgeInsets.symmetric(
|
||||||
|
horizontal: horizontralWindowPadding,
|
||||||
|
vertical: vertticalWindowPadding,
|
||||||
|
),
|
||||||
|
insetAnimationCurve: Easing.emphasizedDecelerate,
|
||||||
|
insetAnimationDuration: Durations.short1,
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
borderRadius: BorderRadius.circular(25.0),
|
||||||
|
border: Border.all(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
width: 5.0),
|
||||||
|
),
|
||||||
|
child: widget.fullscreen
|
||||||
|
? Column(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
getHeader(),
|
||||||
|
const SizedBox(height: 5),
|
||||||
|
Expanded(
|
||||||
|
child: SingleChildScrollView(child: widget.windowBody)),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
getHeader(),
|
||||||
|
const SizedBox(height: 5),
|
||||||
|
Flexible(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 25,
|
||||||
|
right: 25,
|
||||||
|
bottom: vertticalWindowPadding,
|
||||||
|
),
|
||||||
|
child: ConstrainedBox(
|
||||||
|
constraints: BoxConstraints(
|
||||||
|
maxHeight: windowHeight * 0.85,
|
||||||
|
maxWidth: windowWidth * 0.85,
|
||||||
|
),
|
||||||
|
child: MihSingleChildScroll(child: widget.windowBody),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_%20attributes.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_%20attributes.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_info.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_info.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_privacy_policy.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_privacy_policy.dart';
|
||||||
@@ -31,7 +31,7 @@ class _AboutMihState extends State<AboutMih> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -45,8 +45,8 @@ class _AboutMihState extends State<AboutMih> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -56,7 +56,7 @@ class _AboutMihState extends State<AboutMih> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.info)] = () {
|
temp[const Icon(Icons.info)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -78,7 +78,7 @@ class _AboutMihState extends State<AboutMih> {
|
|||||||
_selcetedIndex = 3;
|
_selcetedIndex = 3;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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';
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ class AboutMihTile extends StatefulWidget {
|
|||||||
class _AboutMihTileState extends State<AboutMihTile> {
|
class _AboutMihTileState extends State<AboutMihTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/about',
|
'/about',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.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';
|
||||||
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_package_tool_body.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:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ class _MihAttributesState extends State<MihAttributes> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ 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';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_tile.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_package_tool_body.dart';
|
||||||
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';
|
||||||
@@ -87,7 +87,7 @@ class _MihInfoState extends State<MihInfo> {
|
|||||||
// context: context,
|
// context: context,
|
||||||
// barrierDismissible: false,
|
// barrierDismissible: false,
|
||||||
// builder: (context) {
|
// builder: (context) {
|
||||||
// return MihAppWindow(
|
// return MihPackageWindow(
|
||||||
// fullscreen: false,
|
// fullscreen: false,
|
||||||
// windowTitle: "MIH Installation Guide (iOS)",
|
// windowTitle: "MIH Installation Guide (iOS)",
|
||||||
// windowTools: const [],
|
// windowTools: const [],
|
||||||
@@ -634,7 +634,7 @@ class _MihInfoState extends State<MihInfo> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/mih_policy_tos_ext/policy_and_terms_text.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/about_mih/mih_policy_tos_ext/policy_and_terms_text.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ class MihPrivacyPolicy extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(context),
|
bodyItem: getBody(context),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/mih_policy_tos_ext/policy_and_terms_text.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/about_mih/mih_policy_tos_ext/policy_and_terms_text.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ class MIHTermsOfService extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(context),
|
bodyItem: getBody(context),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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_package_components/mih_package_window.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_success_message.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_objects/access_request.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
import '../../../main.dart';
|
|
||||||
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
|
||||||
import '../../../mih_components/mih_layout/mih_window.dart';
|
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
|
||||||
import '../../../mih_env/env.dart';
|
|
||||||
import '../../../mih_objects/access_request.dart';
|
|
||||||
import '../../../mih_objects/app_user.dart';
|
|
||||||
|
|
||||||
class BuildAccessRequestList extends StatefulWidget {
|
class BuildAccessRequestList extends StatefulWidget {
|
||||||
final List<AccessRequest> accessRequests;
|
final List<AccessRequest> accessRequests;
|
||||||
final AppUser signedInUser;
|
final AppUser signedInUser;
|
||||||
@@ -220,65 +219,66 @@ class _BuildPatientsListState extends State<BuildAccessRequestList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Update Appointment Access",
|
windowTitle: "Update Appointment Access",
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
const SizedBox(
|
children: [
|
||||||
height: 10,
|
const SizedBox(
|
||||||
),
|
height: 10,
|
||||||
Padding(
|
),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
Padding(
|
||||||
child: Text(
|
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
||||||
subtitle,
|
child: Text(
|
||||||
textAlign: TextAlign.left,
|
subtitle,
|
||||||
style: TextStyle(
|
textAlign: TextAlign.left,
|
||||||
color:
|
style: TextStyle(
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color:
|
||||||
fontSize: popUpBodySize,
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
//fontWeight: FontWeight.bold,
|
fontSize: popUpBodySize,
|
||||||
|
//fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Wrap(
|
||||||
Wrap(
|
runSpacing: 10,
|
||||||
runSpacing: 10,
|
spacing: 10,
|
||||||
spacing: 10,
|
children: [
|
||||||
children: [
|
SizedBox(
|
||||||
SizedBox(
|
width: popUpButtonWidth,
|
||||||
width: popUpButtonWidth,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
updateAccessAPICall(index, "declined");
|
||||||
updateAccessAPICall(index, "declined");
|
},
|
||||||
},
|
buttonText: "Decline",
|
||||||
buttonText: "Decline",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: popUpButtonWidth,
|
||||||
width: popUpButtonWidth,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
updateAccessAPICall(index, "approved");
|
||||||
updateAccessAPICall(index, "approved");
|
},
|
||||||
},
|
buttonText: "Approve",
|
||||||
buttonText: "Approve",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
),
|
const SizedBox(
|
||||||
const SizedBox(
|
height: 10,
|
||||||
height: 10,
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import '../../../main.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
||||||
import '../../../mih_apis/mih_api_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_button.dart';
|
||||||
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import '../../../mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
import '../../../mih_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import '../../../mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/patient_access.dart';
|
||||||
import '../../../mih_objects/patient_access.dart';
|
|
||||||
|
|
||||||
class BuildBusinessAccessList extends StatefulWidget {
|
class BuildBusinessAccessList extends StatefulWidget {
|
||||||
final List<PatientAccess> patientAccessList;
|
final List<PatientAccess> patientAccessList;
|
||||||
@@ -216,217 +215,227 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Profile Access",
|
windowTitle: "Profile Access",
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
const SizedBox(
|
children: [
|
||||||
height: 10,
|
const SizedBox(
|
||||||
),
|
height: 10,
|
||||||
SizedBox(
|
),
|
||||||
width: 1000,
|
SizedBox(
|
||||||
child: Text(
|
width: 1000,
|
||||||
subtitle,
|
child: Text(
|
||||||
textAlign: TextAlign.left,
|
subtitle,
|
||||||
style: TextStyle(
|
textAlign: TextAlign.left,
|
||||||
color:
|
style: TextStyle(
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color:
|
||||||
fontSize: popUpBodySize,
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
//fontWeight: FontWeight.bold,
|
fontSize: popUpBodySize,
|
||||||
|
//fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 20.0),
|
||||||
const SizedBox(height: 20.0),
|
Visibility(
|
||||||
Visibility(
|
visible: widget.patientAccessList[index].status == 'pending',
|
||||||
visible: widget.patientAccessList[index].status == 'pending',
|
child: Column(
|
||||||
child: Column(
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
children: [
|
||||||
children: [
|
Text(
|
||||||
Text(
|
"Important Notice: Approving Profile Access",
|
||||||
"Important Notice: Approving Profile Access",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
fontWeight: FontWeight.bold,
|
||||||
fontWeight: FontWeight.bold,
|
color:
|
||||||
color:
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
Text(
|
||||||
Text(
|
"You are about to accept access to your patient's profile. Please be aware of the following important points:",
|
||||||
"You are about to accept access to your patient's profile. Please be aware of the following important points:",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 700,
|
|
||||||
child: Text(
|
|
||||||
"1. Permanent Access: Once you accepts this access request, it will become permanent.",
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
color:
|
color:
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: 700,
|
||||||
width: 700,
|
child: Text(
|
||||||
child: Text(
|
"1. Permanent Access: Once you accepts this access request, it will become permanent.",
|
||||||
"2. Shared Information: Any updates make to youe patient profile will be visible to all who have access to the profile.",
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 700,
|
||||||
|
child: Text(
|
||||||
|
"2. Shared Information: Any updates make to youe patient profile will be visible to all who have access to the profile.",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 700,
|
||||||
|
child: Text(
|
||||||
|
"3. Irreversible Access: Once granted, you cannot revoke access to your patient's profile.",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"By pressing the \"Approve\" button you accept the above terms.",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.bold,
|
||||||
color:
|
color:
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
SizedBox(
|
),
|
||||||
width: 700,
|
|
||||||
child: Text(
|
|
||||||
"3. Irreversible Access: Once granted, you cannot revoke access to your patient's profile.",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"By pressing the \"Approve\" button you accept the above terms.",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
Visibility(
|
||||||
Visibility(
|
visible: widget.patientAccessList[index].status == 'approved',
|
||||||
visible: widget.patientAccessList[index].status == 'approved',
|
child: Column(
|
||||||
child: Column(
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
children: [
|
||||||
children: [
|
Text(
|
||||||
Text(
|
"Important Notice: Approved Profile Access",
|
||||||
"Important Notice: Approved Profile Access",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
fontWeight: FontWeight.bold,
|
||||||
fontWeight: FontWeight.bold,
|
color:
|
||||||
color:
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
Text(
|
||||||
Text(
|
"You have accepted access to your patient's profile. Please be aware of the following important points:",
|
||||||
"You have accepted access to your patient's profile. Please be aware of the following important points:",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 700,
|
|
||||||
child: Text(
|
|
||||||
"1. Permanent Access: This access is permanent.",
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
color:
|
color:
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: 700,
|
||||||
width: 700,
|
child: Text(
|
||||||
child: Text(
|
"1. Permanent Access: This access is permanent.",
|
||||||
"2. Shared Information: Any updates make to youe patient profile will be visible to all who have access to the profile.",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
fontWeight: FontWeight.normal,
|
||||||
fontWeight: FontWeight.normal,
|
color: MzanziInnovationHub.of(context)!
|
||||||
color:
|
.theme
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
.errorColor(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: 700,
|
||||||
width: 700,
|
child: Text(
|
||||||
child: Text(
|
"2. Shared Information: Any updates make to youe patient profile will be visible to all who have access to the profile.",
|
||||||
"3. Irreversible Access: You cannot revoke this access to your patient's profile.",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
fontWeight: FontWeight.normal,
|
||||||
fontWeight: FontWeight.normal,
|
color: MzanziInnovationHub.of(context)!
|
||||||
color:
|
.theme
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
.errorColor(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
],
|
width: 700,
|
||||||
|
child: Text(
|
||||||
|
"3. Irreversible Access: You cannot revoke this access to your patient's profile.",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 20.0),
|
||||||
const SizedBox(height: 20.0),
|
const SizedBox(
|
||||||
const SizedBox(
|
height: 20,
|
||||||
height: 20,
|
|
||||||
),
|
|
||||||
Visibility(
|
|
||||||
visible: widget.patientAccessList[index].status == 'pending',
|
|
||||||
child: Wrap(
|
|
||||||
runSpacing: 10,
|
|
||||||
spacing: 10,
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
width: popUpButtonWidth,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
print("request declined");
|
|
||||||
MIHApiCalls.updatePatientAccessAPICall(
|
|
||||||
widget.patientAccessList[index].business_id,
|
|
||||||
widget.patientAccessList[index].requested_by,
|
|
||||||
widget.patientAccessList[index].app_id,
|
|
||||||
"declined",
|
|
||||||
"${widget.signedInUser.fname} ${widget.signedInUser.lname}",
|
|
||||||
widget.signedInUser,
|
|
||||||
context,
|
|
||||||
);
|
|
||||||
//updateAccessAPICall(index, "declined");
|
|
||||||
},
|
|
||||||
buttonText: "Decline",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: popUpButtonWidth,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
print("request approved");
|
|
||||||
MIHApiCalls.updatePatientAccessAPICall(
|
|
||||||
widget.patientAccessList[index].business_id,
|
|
||||||
widget.patientAccessList[index].requested_by,
|
|
||||||
widget.patientAccessList[index].app_id,
|
|
||||||
"approved",
|
|
||||||
"${widget.signedInUser.fname} ${widget.signedInUser.lname}",
|
|
||||||
widget.signedInUser,
|
|
||||||
context,
|
|
||||||
);
|
|
||||||
//updateAccessAPICall(index, "approved");
|
|
||||||
},
|
|
||||||
buttonText: "Approve",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
Visibility(
|
||||||
const SizedBox(
|
visible: widget.patientAccessList[index].status == 'pending',
|
||||||
height: 10,
|
child: Wrap(
|
||||||
),
|
runSpacing: 10,
|
||||||
],
|
spacing: 10,
|
||||||
windowTools: const [],
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: popUpButtonWidth,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
print("request declined");
|
||||||
|
MIHApiCalls.updatePatientAccessAPICall(
|
||||||
|
widget.patientAccessList[index].business_id,
|
||||||
|
widget.patientAccessList[index].requested_by,
|
||||||
|
widget.patientAccessList[index].app_id,
|
||||||
|
"declined",
|
||||||
|
"${widget.signedInUser.fname} ${widget.signedInUser.lname}",
|
||||||
|
widget.signedInUser,
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
//updateAccessAPICall(index, "declined");
|
||||||
|
},
|
||||||
|
buttonText: "Decline",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
textColor: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.primaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: popUpButtonWidth,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
print("request approved");
|
||||||
|
MIHApiCalls.updatePatientAccessAPICall(
|
||||||
|
widget.patientAccessList[index].business_id,
|
||||||
|
widget.patientAccessList[index].requested_by,
|
||||||
|
widget.patientAccessList[index].app_id,
|
||||||
|
"approved",
|
||||||
|
"${widget.signedInUser.fname} ${widget.signedInUser.lname}",
|
||||||
|
widget.signedInUser,
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
//updateAccessAPICall(index, "approved");
|
||||||
|
},
|
||||||
|
buttonText: "Approve",
|
||||||
|
buttonColor: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.successColor(),
|
||||||
|
textColor: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.primaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/access_review/package_tools/mih_access_requests.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/access_review/package_tools/mih_access_requests.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -20,7 +20,7 @@ class _MihAccessState extends State<MihAccess> {
|
|||||||
int _selcetedIndex = 0;
|
int _selcetedIndex = 0;
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -34,8 +34,8 @@ class _MihAccessState extends State<MihAccess> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -45,14 +45,14 @@ class _MihAccessState extends State<MihAccess> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.people)] = () {
|
temp[const Icon(Icons.people)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_selcetedIndex = 0;
|
_selcetedIndex = 0;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -21,7 +21,7 @@ class MihAccessTile extends StatefulWidget {
|
|||||||
class _MihAccessTileState extends State<MihAccessTile> {
|
class _MihAccessTileState extends State<MihAccessTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mih-access',
|
'/mih-access',
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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_package_tool_body.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';
|
||||||
import '../../../main.dart';
|
import '../../../main.dart';
|
||||||
@@ -244,7 +244,7 @@ class _MihAccessRequestState extends State<MihAccessRequest> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_action.dart'
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_header.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_header.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_layout_builder.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_layout_builder.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.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_packages/mih_home/mih_profile_getter.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_profile_getter.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -106,7 +106,7 @@ class _BiometricCheckState extends State<BiometricCheck> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void authErrorPopUp() {
|
void authErrorPopUp() {
|
||||||
Widget alertpopUp = MihAppAlert(
|
Widget alertpopUp = MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.fingerprint,
|
Icons.fingerprint,
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/simple_calc.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/simple_calc.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/tip_calc.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/calculator/package_tools/tip_calc.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -21,7 +21,7 @@ class _MIHCalculatorState extends State<MIHCalculator> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -35,8 +35,8 @@ class _MIHCalculatorState extends State<MIHCalculator> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -46,7 +46,7 @@ class _MIHCalculatorState extends State<MIHCalculator> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.calculate)] = () {
|
temp[const Icon(Icons.calculate)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -58,7 +58,7 @@ class _MIHCalculatorState extends State<MIHCalculator> {
|
|||||||
_selectedIndex = 1;
|
_selectedIndex = 1;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selectedIndex,
|
selcetedIndex: _selectedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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';
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ class MihCalculatorTile extends StatefulWidget {
|
|||||||
class _MihCalculatorTileState extends State<MihCalculatorTile> {
|
class _MihCalculatorTileState extends State<MihCalculatorTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/calculator',
|
'/calculator',
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
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';
|
||||||
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_package_tool_body.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:math_expressions/math_expressions.dart';
|
import 'package:math_expressions/math_expressions.dart';
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ class _SimpleCalcState extends State<SimpleCalc> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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_number_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_number_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_package_window.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: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';
|
||||||
@@ -116,107 +116,27 @@ class _TipCalcState extends State<TipCalc> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Calculation Results",
|
windowTitle: "Calculation Results",
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowTools: const [],
|
windowBody: Column(
|
||||||
windowBody: [
|
children: [
|
||||||
// FaIcon(
|
|
||||||
// FontAwesomeIcons.moneyBills,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// size: 30,
|
|
||||||
// ),
|
|
||||||
// const Divider(),
|
|
||||||
Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
FaIcon(
|
|
||||||
FontAwesomeIcons.coins,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
size: 35,
|
|
||||||
),
|
|
||||||
const SizedBox(width: 15),
|
|
||||||
Text(
|
|
||||||
"Tip",
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 25,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
tip,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 30,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const Divider(),
|
|
||||||
Row(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
FaIcon(
|
|
||||||
FontAwesomeIcons.moneyBills,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
size: 35,
|
|
||||||
),
|
|
||||||
const SizedBox(width: 15),
|
|
||||||
Text(
|
|
||||||
"Total",
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 25,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
total,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 30,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"~ ${double.parse(total).ceil()}.00",
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 30,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const Divider(),
|
|
||||||
if (splitBillController.text == "Yes")
|
|
||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
FaIcon(
|
FaIcon(
|
||||||
FontAwesomeIcons.peopleGroup,
|
FontAwesomeIcons.coins,
|
||||||
color:
|
color:
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
size: 35,
|
size: 35,
|
||||||
),
|
),
|
||||||
const SizedBox(width: 15),
|
const SizedBox(width: 15),
|
||||||
Text(
|
Text(
|
||||||
"Total per Person",
|
"Tip",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 25,
|
fontSize: 25,
|
||||||
@@ -227,9 +147,8 @@ class _TipCalcState extends State<TipCalc> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (splitBillController.text == "Yes")
|
|
||||||
Text(
|
Text(
|
||||||
amountPerPerson,
|
tip,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 30,
|
fontSize: 30,
|
||||||
@@ -237,9 +156,32 @@ class _TipCalcState extends State<TipCalc> {
|
|||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (splitBillController.text == "Yes")
|
const Divider(),
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
FaIcon(
|
||||||
|
FontAwesomeIcons.moneyBills,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
size: 35,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 15),
|
||||||
|
Text(
|
||||||
|
"Total",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 25,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
Text(
|
Text(
|
||||||
"~ ${double.parse(amountPerPerson).ceil()}.00",
|
total,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 30,
|
fontSize: 30,
|
||||||
@@ -247,8 +189,66 @@ class _TipCalcState extends State<TipCalc> {
|
|||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
// if (splitBillController.text == "Yes") const Divider(),
|
Text(
|
||||||
],
|
"~ ${double.parse(total).ceil()}.00",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 30,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
if (splitBillController.text == "Yes")
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
FaIcon(
|
||||||
|
FontAwesomeIcons.peopleGroup,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
size: 35,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 15),
|
||||||
|
Text(
|
||||||
|
"Total per Person",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 25,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: MzanziInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
if (splitBillController.text == "Yes")
|
||||||
|
Text(
|
||||||
|
amountPerPerson,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 30,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
if (splitBillController.text == "Yes")
|
||||||
|
Text(
|
||||||
|
"~ ${double.parse(amountPerPerson).ceil()}.00",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 30,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// if (splitBillController.text == "Yes") const Divider(),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -262,7 +262,7 @@ class _TipCalcState extends State<TipCalc> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
|
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
import '../../../main.dart';
|
import '../../../main.dart';
|
||||||
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
||||||
import '../../../mih_components/mih_layout/mih_window.dart';
|
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
||||||
import '../../../mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
import '../../../mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
@@ -221,180 +221,70 @@ class _BuildPatientsListState extends State<BuildAccessRequestList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Update Appointment Access",
|
windowTitle: "Update Appointment Access",
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
const SizedBox(
|
children: [
|
||||||
height: 10,
|
const SizedBox(
|
||||||
),
|
height: 10,
|
||||||
Padding(
|
),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
Padding(
|
||||||
child: Text(
|
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
||||||
subtitle,
|
child: Text(
|
||||||
textAlign: TextAlign.left,
|
subtitle,
|
||||||
style: TextStyle(
|
textAlign: TextAlign.left,
|
||||||
color:
|
style: TextStyle(
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color:
|
||||||
fontSize: popUpBodySize,
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
//fontWeight: FontWeight.bold,
|
fontSize: popUpBodySize,
|
||||||
|
//fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Wrap(
|
||||||
Wrap(
|
runSpacing: 10,
|
||||||
runSpacing: 10,
|
spacing: 10,
|
||||||
spacing: 10,
|
children: [
|
||||||
children: [
|
SizedBox(
|
||||||
SizedBox(
|
width: popUpButtonWidth,
|
||||||
width: popUpButtonWidth,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
updateAccessAPICall(index, "declined");
|
||||||
updateAccessAPICall(index, "declined");
|
},
|
||||||
},
|
buttonText: "Decline",
|
||||||
buttonText: "Decline",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
SizedBox(
|
width: popUpButtonWidth,
|
||||||
width: popUpButtonWidth,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
updateAccessAPICall(index, "approved");
|
||||||
updateAccessAPICall(index, "approved");
|
},
|
||||||
},
|
buttonText: "Approve",
|
||||||
buttonText: "Approve",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
),
|
const SizedBox(
|
||||||
const SizedBox(
|
height: 10,
|
||||||
height: 10,
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
// showDialog(
|
|
||||||
// context: context,
|
|
||||||
// barrierDismissible: false,
|
|
||||||
// builder: (context) => Dialog(
|
|
||||||
// child: Stack(
|
|
||||||
// children: [
|
|
||||||
// Container(
|
|
||||||
// //padding: const EdgeInsets.all(15.0),
|
|
||||||
// width: popUpWidth,
|
|
||||||
// height: popUpheight,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// borderRadius: BorderRadius.circular(25.0),
|
|
||||||
// border: Border.all(
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// width: 5.0),
|
|
||||||
// ),
|
|
||||||
// child: SingleChildScrollView(
|
|
||||||
// padding: EdgeInsets.all(popUpPaddingSize),
|
|
||||||
// child: Column(
|
|
||||||
// mainAxisSize: MainAxisSize.min,
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
// children: [
|
|
||||||
// Text(
|
|
||||||
// "Update Appointment Access",
|
|
||||||
// textAlign: TextAlign.center,
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// fontSize: popUpTitleSize,
|
|
||||||
// fontWeight: FontWeight.bold,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 15.0),
|
|
||||||
// Text(
|
|
||||||
// subtitle,
|
|
||||||
// textAlign: TextAlign.left,
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// fontSize: popUpBodySize,
|
|
||||||
// //fontWeight: FontWeight.bold,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// Wrap(
|
|
||||||
// runSpacing: 10,
|
|
||||||
// spacing: 10,
|
|
||||||
// children: [
|
|
||||||
// SizedBox(
|
|
||||||
// width: popUpButtonWidth,
|
|
||||||
// height: 50,
|
|
||||||
// child: MIHButton(
|
|
||||||
// onTap: () {
|
|
||||||
// updateAccessAPICall(index, "declined");
|
|
||||||
// },
|
|
||||||
// buttonText: "Decline",
|
|
||||||
// buttonColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .errorColor(),
|
|
||||||
// textColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .primaryColor(),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// SizedBox(
|
|
||||||
// width: popUpButtonWidth,
|
|
||||||
// height: 50,
|
|
||||||
// child: MIHButton(
|
|
||||||
// onTap: () {
|
|
||||||
// updateAccessAPICall(index, "approved");
|
|
||||||
// },
|
|
||||||
// buttonText: "Approve",
|
|
||||||
// buttonColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .successColor(),
|
|
||||||
// textColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .primaryColor(),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// )
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// right: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// Navigator.pop(context);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.close,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
// size: 35,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -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_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';
|
||||||
@@ -5,7 +6,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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';
|
||||||
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_inputs_and_buttons/mih_time_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_time_input.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
@@ -151,18 +152,45 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Appointment Details",
|
windowTitle: "Appointment Details",
|
||||||
windowTools: [
|
menuOptions: [
|
||||||
Visibility(
|
SpeedDialChild(
|
||||||
visible: canEditAppointment(index),
|
child: Icon(
|
||||||
child: IconButton(
|
Icons.edit,
|
||||||
onPressed: () {
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
deleteAppointmentConfirmationWindow(index);
|
|
||||||
},
|
|
||||||
icon: const Icon(Icons.delete),
|
|
||||||
),
|
),
|
||||||
|
label: "Edit Appointment",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
appointmentUpdateWindow(index);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete Appointment",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
deleteAppointmentConfirmationWindow(index);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
@@ -172,79 +200,50 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
widget.titleController.clear();
|
widget.titleController.clear();
|
||||||
widget.descriptionIDController.clear();
|
widget.descriptionIDController.clear();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
SizedBox(
|
children: [
|
||||||
// width: 500,
|
const SizedBox(height: 10),
|
||||||
child: MIHTextField(
|
SizedBox(
|
||||||
controller: widget.titleController,
|
|
||||||
hintText: "Title",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
// width: 500,
|
||||||
child: MIHTextField(
|
child: MIHTextField(
|
||||||
controller: widget.dateController,
|
controller: widget.titleController,
|
||||||
hintText: "Date",
|
hintText: "Title",
|
||||||
editable: false,
|
editable: false,
|
||||||
required: false,
|
required: false,
|
||||||
)),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
child: MIHTextField(
|
|
||||||
controller: widget.timeController,
|
|
||||||
hintText: "Time",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
)),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
height: 250,
|
|
||||||
child: MIHMLTextField(
|
|
||||||
controller: widget.descriptionIDController,
|
|
||||||
hintText: "Description",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 20),
|
|
||||||
Visibility(
|
|
||||||
visible: canEditAppointment(index),
|
|
||||||
child: SizedBox(
|
|
||||||
width: 500,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
appointmentUpdateWindow(index);
|
|
||||||
},
|
|
||||||
buttonText: "Edit",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
// SizedBox(
|
SizedBox(
|
||||||
// width: 500,
|
// width: 500,
|
||||||
// height: 50,
|
child: MIHTextField(
|
||||||
// child: MIHButton(
|
controller: widget.dateController,
|
||||||
// onTap: () {
|
hintText: "Date",
|
||||||
// addAppointmentCall();
|
editable: false,
|
||||||
// checkforchange();
|
required: false,
|
||||||
// },
|
)),
|
||||||
// buttonText: "Add",
|
const SizedBox(height: 10),
|
||||||
// buttonColor:
|
SizedBox(
|
||||||
// MzanziInnovationHub.of(context)!.theme.successColor(),
|
// width: 500,
|
||||||
// textColor:
|
child: MIHTextField(
|
||||||
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
controller: widget.timeController,
|
||||||
// ),
|
hintText: "Time",
|
||||||
// ),
|
editable: false,
|
||||||
],
|
required: false,
|
||||||
|
)),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
SizedBox(
|
||||||
|
// width: 500,
|
||||||
|
height: 250,
|
||||||
|
child: MIHMLTextField(
|
||||||
|
controller: widget.descriptionIDController,
|
||||||
|
hintText: "Description",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -255,18 +254,45 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Appointment Details",
|
windowTitle: "Appointment Details",
|
||||||
windowTools: [
|
menuOptions: [
|
||||||
Visibility(
|
SpeedDialChild(
|
||||||
visible: canEditAppointment(index),
|
child: Icon(
|
||||||
child: IconButton(
|
Icons.edit,
|
||||||
onPressed: () {
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
deleteAppointmentConfirmationWindow(index);
|
|
||||||
},
|
|
||||||
icon: const Icon(Icons.delete),
|
|
||||||
),
|
),
|
||||||
|
label: "Edit Appointment",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
appointmentUpdateWindow(index);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete Appointment",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
deleteAppointmentConfirmationWindow(index);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
@@ -276,89 +302,59 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
widget.titleController.clear();
|
widget.titleController.clear();
|
||||||
widget.descriptionIDController.clear();
|
widget.descriptionIDController.clear();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
SizedBox(
|
children: [
|
||||||
// width: 500,
|
SizedBox(
|
||||||
child: MIHTextField(
|
|
||||||
controller: widget.titleController,
|
|
||||||
hintText: "Title",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
child: MIHTextField(
|
|
||||||
controller: widget.titleController,
|
|
||||||
hintText: "Patient ID Number",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
// width: 500,
|
||||||
child: MIHTextField(
|
child: MIHTextField(
|
||||||
controller: widget.dateController,
|
controller: widget.titleController,
|
||||||
hintText: "Date",
|
hintText: "Title",
|
||||||
editable: false,
|
editable: false,
|
||||||
required: false,
|
required: false,
|
||||||
)),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
child: MIHTextField(
|
|
||||||
controller: widget.timeController,
|
|
||||||
hintText: "Time",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
)),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
height: 250,
|
|
||||||
child: MIHMLTextField(
|
|
||||||
controller: widget.descriptionIDController,
|
|
||||||
hintText: "Description",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 20),
|
|
||||||
Visibility(
|
|
||||||
visible: canEditAppointment(index),
|
|
||||||
child: SizedBox(
|
|
||||||
width: 500,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
appointmentUpdateWindow(index);
|
|
||||||
},
|
|
||||||
buttonText: "Edit",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
// SizedBox(
|
SizedBox(
|
||||||
// width: 500,
|
// width: 500,
|
||||||
// height: 50,
|
child: MIHTextField(
|
||||||
// child: MIHButton(
|
controller: widget.titleController,
|
||||||
// onTap: () {
|
hintText: "Patient ID Number",
|
||||||
// addAppointmentCall();
|
editable: false,
|
||||||
// checkforchange();
|
required: false,
|
||||||
// },
|
),
|
||||||
// buttonText: "Add",
|
),
|
||||||
// buttonColor:
|
const SizedBox(height: 10),
|
||||||
// MzanziInnovationHub.of(context)!.theme.successColor(),
|
SizedBox(
|
||||||
// textColor:
|
// width: 500,
|
||||||
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
child: MIHTextField(
|
||||||
// ),
|
controller: widget.dateController,
|
||||||
// ),
|
hintText: "Date",
|
||||||
],
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
)),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
SizedBox(
|
||||||
|
// width: 500,
|
||||||
|
child: MIHTextField(
|
||||||
|
controller: widget.timeController,
|
||||||
|
hintText: "Time",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
)),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
SizedBox(
|
||||||
|
// width: 500,
|
||||||
|
height: 250,
|
||||||
|
child: MIHMLTextField(
|
||||||
|
controller: widget.descriptionIDController,
|
||||||
|
hintText: "Description",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -369,10 +365,9 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Update Appointment",
|
windowTitle: "Update Appointment",
|
||||||
windowTools: [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
widget.titleController.text = widget.appointmentList[index].title;
|
widget.titleController.text = widget.appointmentList[index].title;
|
||||||
@@ -387,95 +382,70 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
|
|||||||
});
|
});
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
SizedBox(
|
children: [
|
||||||
// width: 500,
|
SizedBox(
|
||||||
child: MIHTextField(
|
// width: 500,
|
||||||
controller: widget.titleController,
|
child: MIHTextField(
|
||||||
hintText: "Title",
|
controller: widget.titleController,
|
||||||
editable: true,
|
hintText: "Title",
|
||||||
required: true,
|
editable: true,
|
||||||
),
|
required: true,
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
child: MIHDateField(
|
|
||||||
controller: widget.dateController,
|
|
||||||
lableText: "Date",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
child: MIHTimeField(
|
|
||||||
controller: widget.timeController,
|
|
||||||
lableText: "Time",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
SizedBox(
|
|
||||||
// width: 500,
|
|
||||||
height: 250,
|
|
||||||
child: MIHMLTextField(
|
|
||||||
controller: widget.descriptionIDController,
|
|
||||||
hintText: "Description",
|
|
||||||
editable: true,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 20),
|
|
||||||
Wrap(
|
|
||||||
alignment: WrapAlignment.center,
|
|
||||||
runSpacing: 10,
|
|
||||||
spacing: 10,
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
width: 500,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
updateAppointmentCall(index);
|
|
||||||
},
|
|
||||||
buttonText: "Update",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
// SizedBox(
|
),
|
||||||
// width: 500,
|
const SizedBox(height: 10),
|
||||||
// height: 50,
|
SizedBox(
|
||||||
// child: MIHButton(
|
// width: 500,
|
||||||
// onTap: () {
|
child: MIHDateField(
|
||||||
// setState(() {
|
controller: widget.dateController,
|
||||||
// widget.titleController.text =
|
lableText: "Date",
|
||||||
// widget.appointmentList[index].title;
|
required: true,
|
||||||
// widget.descriptionIDController.text =
|
),
|
||||||
// widget.appointmentList[index].description;
|
),
|
||||||
// widget.dateController.text = widget
|
const SizedBox(height: 10),
|
||||||
// .appointmentList[index].date_time
|
SizedBox(
|
||||||
// .split('T')[0];
|
// width: 500,
|
||||||
// widget.timeController.text = widget
|
child: MIHTimeField(
|
||||||
// .appointmentList[index].date_time
|
controller: widget.timeController,
|
||||||
// .split('T')[1]
|
lableText: "Time",
|
||||||
// .substring(0, 5);
|
required: true,
|
||||||
// });
|
),
|
||||||
// Navigator.of(context).pop();
|
),
|
||||||
// },
|
const SizedBox(height: 10),
|
||||||
// buttonText: "Cancel",
|
SizedBox(
|
||||||
// buttonColor:
|
// width: 500,
|
||||||
// MzanziInnovationHub.of(context)!.theme.errorColor(),
|
height: 250,
|
||||||
// textColor:
|
child: MIHMLTextField(
|
||||||
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
controller: widget.descriptionIDController,
|
||||||
// ),
|
hintText: "Description",
|
||||||
// ),
|
editable: true,
|
||||||
],
|
required: true,
|
||||||
)
|
),
|
||||||
],
|
),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
runSpacing: 10,
|
||||||
|
spacing: 10,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 500,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
updateAppointmentCall(index);
|
||||||
|
},
|
||||||
|
buttonText: "Update",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/calendar/package_tools/appointments.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/calendar/package_tools/appointments.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -21,7 +21,7 @@ class _MzansiCalendarState extends State<MzansiCalendar> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -35,8 +35,8 @@ class _MzansiCalendarState extends State<MzansiCalendar> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -46,7 +46,7 @@ class _MzansiCalendarState extends State<MzansiCalendar> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.calendar_month)] = () {
|
temp[const Icon(Icons.calendar_month)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -54,7 +54,7 @@ class _MzansiCalendarState extends State<MzansiCalendar> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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';
|
||||||
@@ -21,7 +21,7 @@ class MzansiCalendarTile extends StatefulWidget {
|
|||||||
class _MzansiCalendarTileState extends State<MzansiCalendarTile> {
|
class _MzansiCalendarTileState extends State<MzansiCalendarTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/calendar',
|
'/calendar',
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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_inputs_and_buttons/mih_time_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_time_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_floating_menu.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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';
|
||||||
@@ -101,10 +101,9 @@ class _PatientAccessRequestState extends State<Appointments> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add Appointment",
|
windowTitle: "Add Appointment",
|
||||||
windowTools: [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
_appointmentDateController.clear();
|
_appointmentDateController.clear();
|
||||||
@@ -112,61 +111,63 @@ class _PatientAccessRequestState extends State<Appointments> {
|
|||||||
_appointmentTitleController.clear();
|
_appointmentTitleController.clear();
|
||||||
_appointmentDescriptionIDController.clear();
|
_appointmentDescriptionIDController.clear();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
SizedBox(
|
children: [
|
||||||
// width: 500,
|
SizedBox(
|
||||||
child: MIHTextField(
|
// width: 500,
|
||||||
controller: _appointmentTitleController,
|
child: MIHTextField(
|
||||||
hintText: "Title",
|
controller: _appointmentTitleController,
|
||||||
editable: true,
|
hintText: "Title",
|
||||||
required: true,
|
editable: true,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
child: MIHDateField(
|
||||||
child: MIHDateField(
|
controller: _appointmentDateController,
|
||||||
controller: _appointmentDateController,
|
lableText: "Date",
|
||||||
lableText: "Date",
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
child: MIHTimeField(
|
||||||
child: MIHTimeField(
|
controller: _appointmentTimeController,
|
||||||
controller: _appointmentTimeController,
|
lableText: "Time",
|
||||||
lableText: "Time",
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
height: 250,
|
||||||
height: 250,
|
child: MIHMLTextField(
|
||||||
child: MIHMLTextField(
|
controller: _appointmentDescriptionIDController,
|
||||||
controller: _appointmentDescriptionIDController,
|
hintText: "Description",
|
||||||
hintText: "Description",
|
editable: true,
|
||||||
editable: true,
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 20),
|
||||||
const SizedBox(height: 20),
|
SizedBox(
|
||||||
SizedBox(
|
width: 500,
|
||||||
width: 500,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
addAppointmentCall();
|
||||||
addAppointmentCall();
|
},
|
||||||
},
|
buttonText: "Add",
|
||||||
buttonText: "Add",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -365,7 +366,7 @@ class _PatientAccessRequestState extends State<Appointments> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.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_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_action.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_app_tools.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_package_components/mih_circle_avatar.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';
|
||||||
@@ -74,7 +74,7 @@ class _MihHomeState extends State<MihHome> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -98,7 +98,7 @@ class _MihHomeState extends State<MihHome> {
|
|||||||
|
|
||||||
Widget getAction() {
|
Widget getAction() {
|
||||||
return Builder(builder: (context) {
|
return Builder(builder: (context) {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: Padding(
|
icon: Padding(
|
||||||
padding: const EdgeInsets.only(left: 5.0),
|
padding: const EdgeInsets.only(left: 5.0),
|
||||||
child: MihCircleAvatar(
|
child: MihCircleAvatar(
|
||||||
@@ -140,7 +140,7 @@ class _MihHomeState extends State<MihHome> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.person)] = () {
|
temp[const Icon(Icons.person)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -156,7 +156,7 @@ class _MihHomeState extends State<MihHome> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import 'dart:async';
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
// import 'dart:convert';
|
// import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
@@ -21,7 +23,6 @@ import '../../mih_components/mih_layout/mih_header.dart';
|
|||||||
import '../../mih_components/mih_layout/mih_layout_builder.dart';
|
import '../../mih_components/mih_layout/mih_layout_builder.dart';
|
||||||
import '../../mih_components/mih_layout/mih_notification_drawer.dart';
|
import '../../mih_components/mih_layout/mih_notification_drawer.dart';
|
||||||
import '../../mih_components/mih_layout/mih_tile.dart';
|
import '../../mih_components/mih_layout/mih_tile.dart';
|
||||||
import '../../mih_components/mih_layout/mih_window.dart';
|
|
||||||
import '../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import '../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
||||||
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
@@ -844,39 +845,35 @@ class _MIHHomeLegacyState extends State<MIHHomeLegacy> {
|
|||||||
// return const MIHErrorMessage(errorType: "User Exists");
|
// return const MIHErrorMessage(errorType: "User Exists");
|
||||||
// return const MIHErrorMessage(errorType: "Password Match");
|
// return const MIHErrorMessage(errorType: "Password Match");
|
||||||
// return const MIHErrorMessage(errorType: "Invalid Credentials");
|
// return const MIHErrorMessage(errorType: "Invalid Credentials");
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle:
|
windowTitle:
|
||||||
"Test Window title that is too large for mobile devices",
|
"Test Window title that is too large for mobile devices",
|
||||||
windowBody: const [
|
windowBody: const Column(
|
||||||
SizedBox(
|
children: [
|
||||||
height: 250,
|
SizedBox(
|
||||||
)
|
height: 250,
|
||||||
],
|
)
|
||||||
windowTools: [
|
],
|
||||||
IconButton(
|
),
|
||||||
onPressed: () {
|
menuOptions: [
|
||||||
//deleteFilePopUp(filePath, fileID);
|
SpeedDialChild(
|
||||||
},
|
child: Icon(
|
||||||
icon: Icon(
|
|
||||||
Icons.delete,
|
Icons.delete,
|
||||||
size: 35,
|
color:
|
||||||
color: MzanziInnovationHub.of(context)!
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
.theme
|
|
||||||
.secondaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
label: "Delete File",
|
||||||
IconButton(
|
labelBackgroundColor:
|
||||||
onPressed: () {
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
//deleteFilePopUp(filePath, fileID);
|
labelStyle: TextStyle(
|
||||||
},
|
color:
|
||||||
icon: Icon(
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
Icons.wallet,
|
fontWeight: FontWeight.bold,
|
||||||
size: 35,
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.secondaryColor(),
|
|
||||||
),
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
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_package_components/mih-app_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.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_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_home.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_home.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getErrorTools() {
|
MihPackageTools getErrorTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.power_off_outlined)] = () {
|
temp[const Icon(Icons.power_off_outlined)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -75,7 +75,7 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
@@ -83,7 +83,7 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
|
|||||||
|
|
||||||
List<Widget> getErrorToolBody(String error) {
|
List<Widget> getErrorToolBody(String error) {
|
||||||
List<Widget> toolBodies = [
|
List<Widget> toolBodies = [
|
||||||
MihAppToolBody(
|
MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: Column(
|
bodyItem: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
@@ -152,8 +152,8 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget errorPage(String error) {
|
Widget errorPage(String error) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: MihAppAction(
|
appActionButton: MihPackageAction(
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
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_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_package_tool_body.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/business.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
|
||||||
@@ -189,7 +189,7 @@ class _MihBusinessHomeState extends State<MihBusinessHome>
|
|||||||
final Size size = MediaQuery.sizeOf(context);
|
final Size size = MediaQuery.sizeOf(context);
|
||||||
final double width = size.width;
|
final double width = size.width;
|
||||||
final double height = size.height;
|
final double height = size.height;
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
bodyItem: getBody(width, height),
|
bodyItem: getBody(width, height),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/business.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
|
||||||
@@ -149,7 +149,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
|
|||||||
//=============== Dev ===============
|
//=============== Dev ===============
|
||||||
if (widget.isDevActive) {
|
if (widget.isDevActive) {
|
||||||
temp.add({
|
temp.add({
|
||||||
"test": MihAppTile(
|
"test": MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/package-dev',
|
'/package-dev',
|
||||||
@@ -234,7 +234,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
|
|||||||
final double width = size.width;
|
final double width = size.width;
|
||||||
final double height = size.height;
|
final double height = size.height;
|
||||||
|
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
bodyItem: getBody(width, height),
|
bodyItem: getBody(width, height),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/mzansi_ai/package_tools/ai_chat.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_ai/package_tools/ai_chat.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -19,8 +19,8 @@ class MzansiAi extends StatefulWidget {
|
|||||||
class _MzansiAiState extends State<MzansiAi> {
|
class _MzansiAiState extends State<MzansiAi> {
|
||||||
int _selcetedIndex = 0;
|
int _selcetedIndex = 0;
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -30,7 +30,7 @@ class _MzansiAiState extends State<MzansiAi> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.chat)] = () {
|
temp[const Icon(Icons.chat)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -38,7 +38,7 @@ class _MzansiAiState extends State<MzansiAi> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
@@ -58,7 +58,7 @@ class _MzansiAiState extends State<MzansiAi> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -21,7 +21,7 @@ class MzansiAiTile extends StatefulWidget {
|
|||||||
class _MzansiAiTileState extends State<MzansiAiTile> {
|
class _MzansiAiTileState extends State<MzansiAiTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mzansi-ai',
|
'/mzansi-ai',
|
||||||
|
|||||||
@@ -5,8 +5,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_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_package_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_package_window.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_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';
|
||||||
@@ -169,67 +169,35 @@ class _AiChatState extends State<AiChat> {
|
|||||||
textStream = snapshot.requireData;
|
textStream = snapshot.requireData;
|
||||||
// print("Text: $textStream");
|
// print("Text: $textStream");
|
||||||
// _speakText(textStream!);
|
// _speakText(textStream!);
|
||||||
return MihAppWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: 'Mzansi AI Thoughts',
|
windowTitle: 'Mzansi AI Thoughts',
|
||||||
windowTools: Row(
|
menuOptions: _aiThinking == true
|
||||||
children: [
|
? null
|
||||||
Visibility(
|
: [
|
||||||
visible: _aiThinking == false,
|
SpeedDialChild(
|
||||||
child: Padding(
|
child: Icon(
|
||||||
padding: const EdgeInsets.all(5.0),
|
Icons.volume_up,
|
||||||
child: Container(
|
|
||||||
//color: MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.successColor(),
|
|
||||||
borderRadius: const BorderRadius.all(
|
|
||||||
Radius.circular(100),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: IconButton(
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
color: MzanziInnovationHub.of(context)!
|
||||||
.theme
|
.theme
|
||||||
.primaryColor(),
|
.primaryColor(),
|
||||||
onPressed: () async {
|
|
||||||
print("Start TTS now");
|
|
||||||
|
|
||||||
_speakText(snapshot.requireData);
|
|
||||||
},
|
|
||||||
icon: const Icon(Icons.volume_up),
|
|
||||||
),
|
),
|
||||||
),
|
label: "Read Aloud",
|
||||||
),
|
labelBackgroundColor:
|
||||||
),
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
Visibility(
|
labelStyle: TextStyle(
|
||||||
visible: _aiThinking == true,
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(5.0),
|
|
||||||
child: Container(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
borderRadius: const BorderRadius.all(
|
|
||||||
Radius.circular(100),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: IconButton(
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
color: MzanziInnovationHub.of(context)!
|
||||||
.theme
|
.theme
|
||||||
.primaryColor(),
|
.primaryColor(),
|
||||||
onPressed: () {
|
fontWeight: FontWeight.bold,
|
||||||
//print("Start TTS now");
|
|
||||||
_flutterTts.stop();
|
|
||||||
},
|
|
||||||
icon: const Icon(Icons.volume_off),
|
|
||||||
),
|
),
|
||||||
),
|
backgroundColor:
|
||||||
),
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
),
|
onTap: () {
|
||||||
],
|
_speakText(snapshot.requireData);
|
||||||
),
|
},
|
||||||
|
)
|
||||||
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
_captureAIResponse(snapshot.requireData);
|
_captureAIResponse(snapshot.requireData);
|
||||||
_flutterTts.stop();
|
_flutterTts.stop();
|
||||||
@@ -241,66 +209,23 @@ class _AiChatState extends State<AiChat> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Stack(
|
Text(
|
||||||
children: [
|
snapshot.requireData,
|
||||||
Text(
|
textAlign: TextAlign.left,
|
||||||
snapshot.requireData,
|
style: TextStyle(
|
||||||
textAlign: TextAlign.left,
|
color: MzanziInnovationHub.of(context)!
|
||||||
style: TextStyle(
|
.theme
|
||||||
color: MzanziInnovationHub.of(context)!
|
.secondaryColor(),
|
||||||
.theme
|
fontSize: _chatFrontSize,
|
||||||
.secondaryColor(),
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: _chatFrontSize,
|
),
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Positioned(
|
|
||||||
bottom: 0,
|
|
||||||
right: 0,
|
|
||||||
child: Visibility(
|
|
||||||
visible: _aiThinking == false,
|
|
||||||
child: IconButton.filled(
|
|
||||||
iconSize: 25,
|
|
||||||
autofocus: true,
|
|
||||||
onPressed: () {
|
|
||||||
_captureAIResponse(snapshot.requireData);
|
|
||||||
_flutterTts.stop();
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
focusColor: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.successColor(),
|
|
||||||
icon: Icon(
|
|
||||||
Icons.check,
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
// MIHButton(
|
|
||||||
// onTap: () {
|
|
||||||
// _captureAIResponse(snapshot.requireData);
|
|
||||||
// Navigator.of(context).pop();
|
|
||||||
// },
|
|
||||||
// buttonText: "Continue",
|
|
||||||
// buttonColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .successColor(),
|
|
||||||
// textColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .primaryColor(),
|
|
||||||
// ),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return MihAppWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: 'Mzansi AI Thoughts',
|
windowTitle: 'Mzansi AI Thoughts',
|
||||||
// windowTools: [],
|
// windowTools: [],
|
||||||
@@ -672,7 +597,7 @@ class _AiChatState extends State<AiChat> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
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_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_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';
|
||||||
@@ -149,80 +150,92 @@ class _BuildEmployeeListState extends State<BuildEmployeeList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Employee Details",
|
windowTitle: "Employee Details",
|
||||||
windowTools: [
|
menuOptions: [
|
||||||
IconButton(
|
SpeedDialChild(
|
||||||
onPressed: () {
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete Employee",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
showDeleteWarning(index);
|
showDeleteWarning(index);
|
||||||
},
|
},
|
||||||
icon: Icon(
|
|
||||||
Icons.delete,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
size: 35,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: fnameController,
|
const SizedBox(height: 10.0),
|
||||||
hintText: "First Name",
|
MIHTextField(
|
||||||
editable: false,
|
controller: fnameController,
|
||||||
required: true,
|
hintText: "First Name",
|
||||||
),
|
editable: false,
|
||||||
const SizedBox(height: 10.0),
|
required: true,
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: typeController,
|
|
||||||
hintText: "Title",
|
|
||||||
dropdownOptions: const ["Doctor", "Assistant"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: accessController,
|
|
||||||
hintText: "Access",
|
|
||||||
dropdownOptions: const ["Full", "Partial"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Update",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (isRequiredFieldsCaptured()) {
|
|
||||||
updateEmployeeAPICall(index);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: typeController,
|
||||||
|
hintText: "Title",
|
||||||
|
dropdownOptions: const ["Doctor", "Assistant"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: accessController,
|
||||||
|
hintText: "Access",
|
||||||
|
dropdownOptions: const ["Full", "Partial"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Update",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (isRequiredFieldsCaptured()) {
|
||||||
|
updateEmployeeAPICall(index);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ 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_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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';
|
||||||
@@ -124,70 +124,71 @@ class _BuildUserListState extends State<BuildUserList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add Employee",
|
windowTitle: "Add Employee",
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
const SizedBox(height: 10.0),
|
children: [
|
||||||
MIHTextField(
|
const SizedBox(height: 10.0),
|
||||||
controller: fnameController,
|
MIHTextField(
|
||||||
hintText: "Username Name",
|
controller: fnameController,
|
||||||
editable: false,
|
hintText: "Username Name",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Email",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: typeController,
|
|
||||||
hintText: "Title",
|
|
||||||
dropdownOptions: const ["Doctor", "Assistant"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: accessController,
|
|
||||||
hintText: "Access",
|
|
||||||
dropdownOptions: const ["Full", "Partial"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Add",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (isRequiredFieldsCaptured()) {
|
|
||||||
createBusinessUserAPICall(index);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(
|
|
||||||
errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10.0),
|
||||||
const SizedBox(height: 10.0),
|
MIHTextField(
|
||||||
],
|
controller: lnameController,
|
||||||
windowTools: [],
|
hintText: "Email",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: typeController,
|
||||||
|
hintText: "Title",
|
||||||
|
dropdownOptions: const ["Doctor", "Assistant"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: accessController,
|
||||||
|
hintText: "Access",
|
||||||
|
dropdownOptions: const ["Full", "Partial"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Add",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (isRequiredFieldsCaptured()) {
|
||||||
|
createBusinessUserAPICall(index);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(
|
||||||
|
errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
],
|
||||||
|
),
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.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_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart';
|
||||||
@@ -46,7 +46,7 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -59,8 +59,8 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -70,7 +70,7 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.business)] = () {
|
temp[const Icon(Icons.business)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -97,7 +97,7 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
|||||||
_selcetedIndex = 3;
|
_selcetedIndex = 3;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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';
|
||||||
@@ -21,7 +21,7 @@ class MzansiBusinessProfileTile extends StatefulWidget {
|
|||||||
class _MzansiBusinessProfileTileState extends State<MzansiBusinessProfileTile> {
|
class _MzansiBusinessProfileTileState extends State<MzansiBusinessProfileTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/business-profile/manage',
|
'/business-profile/manage',
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -22,7 +22,7 @@ class _MzansiSetupBusinessProfileTileState
|
|||||||
extends State<MzansiSetupBusinessProfileTile> {
|
extends State<MzansiSetupBusinessProfileTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/business-profile/set-up',
|
'/business-profile/set-up',
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import 'package:mzansi_innovation_hub/mih_apis/mih_location_api.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_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.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_success_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
|
||||||
@@ -91,7 +91,7 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.warning_rounded,
|
Icons.warning_rounded,
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
@@ -233,7 +233,7 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(context),
|
bodyItem: getBody(context),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_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_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.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';
|
||||||
@@ -322,7 +322,7 @@ class _MihBusinessProfileState extends State<MihBusinessProfile> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'dart:convert';
|
|||||||
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_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_package_tool_body.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_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
@@ -91,7 +91,7 @@ class _MihBusinessUserSearchState extends State<MihBusinessUserSearch> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'dart:convert';
|
|||||||
|
|
||||||
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_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.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/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
||||||
@@ -74,7 +74,7 @@ class _MihMyBusinessTeamState extends State<MihMyBusinessTeam> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_image_display.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_image_display.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';
|
||||||
@@ -126,7 +126,7 @@ class _MihMyBusinessUserState extends State<MihMyBusinessUser> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.warning_rounded,
|
Icons.warning_rounded,
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
@@ -205,7 +205,7 @@ class _MihMyBusinessUserState extends State<MihMyBusinessUser> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
import '../../../../main.dart';
|
import '../../../../main.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
|
||||||
import '../../../../mih_components/mih_layout/mih_window.dart';
|
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
@@ -150,80 +151,92 @@ class _BuildEmployeeListState extends State<BuildEmployeeList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Employee Details",
|
windowTitle: "Employee Details",
|
||||||
windowTools: [
|
menuOptions: [
|
||||||
IconButton(
|
SpeedDialChild(
|
||||||
onPressed: () {
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete Employee",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
showDeleteWarning(index);
|
showDeleteWarning(index);
|
||||||
},
|
},
|
||||||
icon: Icon(
|
|
||||||
Icons.delete,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
size: 35,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: fnameController,
|
const SizedBox(height: 10.0),
|
||||||
hintText: "First Name",
|
MIHTextField(
|
||||||
editable: false,
|
controller: fnameController,
|
||||||
required: true,
|
hintText: "First Name",
|
||||||
),
|
editable: false,
|
||||||
const SizedBox(height: 10.0),
|
required: true,
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: typeController,
|
|
||||||
hintText: "Title",
|
|
||||||
dropdownOptions: const ["Doctor", "Assistant"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: accessController,
|
|
||||||
hintText: "Access",
|
|
||||||
dropdownOptions: const ["Full", "Partial"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Update",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (isRequiredFieldsCaptured()) {
|
|
||||||
updateEmployeeAPICall(index);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: typeController,
|
||||||
|
hintText: "Title",
|
||||||
|
dropdownOptions: const ["Doctor", "Assistant"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: accessController,
|
||||||
|
hintText: "Access",
|
||||||
|
dropdownOptions: const ["Full", "Partial"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Update",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (isRequiredFieldsCaptured()) {
|
||||||
|
updateEmployeeAPICall(index);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
// showDialog(
|
// showDialog(
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
import '../../../../main.dart';
|
import '../../../../main.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
|
||||||
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
|
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
|
||||||
import '../../../../mih_components/mih_layout/mih_window.dart';
|
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import '../../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
import '../../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
|
||||||
@@ -125,188 +125,74 @@ class _BuildUserListState extends State<BuildUserList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add Employee",
|
windowTitle: "Add Employee",
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
const SizedBox(height: 10.0),
|
children: [
|
||||||
MIHTextField(
|
const SizedBox(height: 10.0),
|
||||||
controller: fnameController,
|
MIHTextField(
|
||||||
hintText: "Username Name",
|
controller: fnameController,
|
||||||
editable: false,
|
hintText: "Username Name",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Email",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: typeController,
|
|
||||||
hintText: "Title",
|
|
||||||
dropdownOptions: const ["Doctor", "Assistant"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDropdownField(
|
|
||||||
controller: accessController,
|
|
||||||
hintText: "Access",
|
|
||||||
dropdownOptions: const ["Full", "Partial"],
|
|
||||||
required: true,
|
|
||||||
editable: true,
|
|
||||||
enableSearch: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Add",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (isRequiredFieldsCaptured()) {
|
|
||||||
createBusinessUserAPICall(index);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(
|
|
||||||
errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10.0),
|
||||||
const SizedBox(height: 10.0),
|
MIHTextField(
|
||||||
],
|
controller: lnameController,
|
||||||
windowTools: [],
|
hintText: "Email",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: typeController,
|
||||||
|
hintText: "Title",
|
||||||
|
dropdownOptions: const ["Doctor", "Assistant"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDropdownField(
|
||||||
|
controller: accessController,
|
||||||
|
hintText: "Access",
|
||||||
|
dropdownOptions: const ["Full", "Partial"],
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
enableSearch: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Add",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (isRequiredFieldsCaptured()) {
|
||||||
|
createBusinessUserAPICall(index);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(
|
||||||
|
errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
],
|
||||||
|
),
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}));
|
}));
|
||||||
// showDialog(
|
|
||||||
// context: context,
|
|
||||||
// barrierDismissible: false,
|
|
||||||
// builder: (context) => Dialog(
|
|
||||||
// child: Stack(
|
|
||||||
// children: [
|
|
||||||
// Container(
|
|
||||||
// padding: const EdgeInsets.all(10.0),
|
|
||||||
// width: 700.0,
|
|
||||||
// //height: 475.0,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// borderRadius: BorderRadius.circular(25.0),
|
|
||||||
// border: Border.all(
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// width: 5.0),
|
|
||||||
// ),
|
|
||||||
// child: SingleChildScrollView(
|
|
||||||
// padding: const EdgeInsets.symmetric(horizontal: 10),
|
|
||||||
// child: Column(
|
|
||||||
// mainAxisSize: MainAxisSize.min,
|
|
||||||
// children: [
|
|
||||||
// Text(
|
|
||||||
// "Add Employee",
|
|
||||||
// textAlign: TextAlign.center,
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// fontSize: 35.0,
|
|
||||||
// fontWeight: FontWeight.bold,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 25.0),
|
|
||||||
// MIHTextField(
|
|
||||||
// controller: fnameController,
|
|
||||||
// hintText: "Username Name",
|
|
||||||
// editable: false,
|
|
||||||
// required: true,
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// MIHTextField(
|
|
||||||
// controller: lnameController,
|
|
||||||
// hintText: "Email",
|
|
||||||
// editable: false,
|
|
||||||
// required: true,
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// MIHDropdownField(
|
|
||||||
// controller: typeController,
|
|
||||||
// hintText: "Title",
|
|
||||||
// dropdownOptions: const ["Doctor", "Assistant"],
|
|
||||||
// required: true,
|
|
||||||
// editable: true,
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// MIHDropdownField(
|
|
||||||
// controller: accessController,
|
|
||||||
// hintText: "Access",
|
|
||||||
// dropdownOptions: const ["Full", "Partial"],
|
|
||||||
// required: true,
|
|
||||||
// editable: true,
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 30.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 300,
|
|
||||||
// height: 50,
|
|
||||||
// child: MIHButton(
|
|
||||||
// buttonText: "Add",
|
|
||||||
// buttonColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// textColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .primaryColor(),
|
|
||||||
// onTap: () {
|
|
||||||
// if (isRequiredFieldsCaptured()) {
|
|
||||||
// createBusinessUserAPICall(index);
|
|
||||||
// } else {
|
|
||||||
// showDialog(
|
|
||||||
// context: context,
|
|
||||||
// builder: (context) {
|
|
||||||
// return const MIHErrorMessage(
|
|
||||||
// errorType: "Input Error");
|
|
||||||
// },
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// right: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// Navigator.pop(context);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.close,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
// size: 35,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_settings.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_settings.dart';
|
||||||
@@ -22,7 +22,7 @@ class _MzansiProfileState extends State<MzansiProfile> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -35,8 +35,8 @@ class _MzansiProfileState extends State<MzansiProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -46,7 +46,7 @@ class _MzansiProfileState extends State<MzansiProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.perm_identity)] = () {
|
temp[const Icon(Icons.perm_identity)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -58,7 +58,7 @@ class _MzansiProfileState extends State<MzansiProfile> {
|
|||||||
_selcetedIndex = 1;
|
_selcetedIndex = 1;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/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';
|
||||||
@@ -25,7 +25,7 @@ class _MzansiProfileTileState extends State<MzansiProfileTile> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
// ImageProvider logo = MzanziInnovationHub.of(context)!.theme.logoImage();
|
// ImageProvider logo = MzanziInnovationHub.of(context)!.theme.logoImage();
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mzansi-profile',
|
'/mzansi-profile',
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/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';
|
||||||
@@ -24,7 +24,7 @@ class MzansiSetupProfileTile extends StatefulWidget {
|
|||||||
class _MzansiSetupProfileTileState extends State<MzansiSetupProfileTile> {
|
class _MzansiSetupProfileTileState extends State<MzansiSetupProfileTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mzansi-profile',
|
'/mzansi-profile',
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_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_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.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_success_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
|
||||||
@@ -44,7 +44,7 @@ class _MihPersonalProfileState extends State<MihPersonalProfile> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.warning_amber_rounded,
|
Icons.warning_amber_rounded,
|
||||||
size: 100,
|
size: 100,
|
||||||
@@ -252,7 +252,7 @@ class _MihPersonalProfileState extends State<MihPersonalProfile> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import 'package:mzansi_innovation_hub/main.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_user_apis.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_user_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_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_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.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';
|
||||||
@@ -22,7 +22,7 @@ class MihPersonalSettings extends StatefulWidget {
|
|||||||
class _MihPersonalSettingsState extends State<MihPersonalSettings> {
|
class _MihPersonalSettingsState extends State<MihPersonalSettings> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(borderOn: true, bodyItem: getBody());
|
return MihPackageToolBody(borderOn: true, bodyItem: getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteAccountPopUp(BuildContext ctxtd) {
|
void deleteAccountPopUp(BuildContext ctxtd) {
|
||||||
@@ -30,7 +30,7 @@ class _MihPersonalSettingsState extends State<MihPersonalSettings> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.warning_amber_rounded,
|
Icons.warning_amber_rounded,
|
||||||
size: 100,
|
size: 100,
|
||||||
|
|||||||
@@ -4,10 +4,8 @@ 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';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_number_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_number_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
@@ -50,85 +48,86 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Edit Loyalty Card",
|
windowTitle: "Edit Loyalty Card",
|
||||||
windowTools: const [
|
|
||||||
SizedBox(width: 35),
|
|
||||||
],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
_cardNumberController.clear();
|
_cardNumberController.clear();
|
||||||
_nicknameController.clear();
|
_nicknameController.clear();
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: _nicknameController,
|
const SizedBox(height: 10),
|
||||||
hintText: "Card Title",
|
MIHTextField(
|
||||||
editable: true,
|
controller: _nicknameController,
|
||||||
required: false,
|
hintText: "Card Title",
|
||||||
),
|
editable: true,
|
||||||
const SizedBox(height: 10),
|
required: false,
|
||||||
Row(
|
),
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
const SizedBox(height: 10),
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
Flexible(
|
mainAxisSize: MainAxisSize.max,
|
||||||
child: MIHNumberField(
|
children: [
|
||||||
controller: _cardNumberController,
|
Flexible(
|
||||||
hintText: "Card Number",
|
child: MIHNumberField(
|
||||||
editable: true,
|
controller: _cardNumberController,
|
||||||
required: true,
|
hintText: "Card Number",
|
||||||
enableDecimal: false,
|
editable: true,
|
||||||
|
required: true,
|
||||||
|
enableDecimal: false,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(width: 10),
|
||||||
const SizedBox(width: 10),
|
MIHButton(
|
||||||
MIHButton(
|
onTap: () async {
|
||||||
onTap: () async {
|
openscanner();
|
||||||
openscanner();
|
},
|
||||||
|
buttonText: "Scan",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
if (_cardNumberController.text == "") {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
||||||
|
widget.signedInUser,
|
||||||
|
widget.cardList[index].idloyalty_cards,
|
||||||
|
widget.cardList[index].favourite,
|
||||||
|
widget.cardList[index].priority_index,
|
||||||
|
_nicknameController.text,
|
||||||
|
_cardNumberController.text,
|
||||||
|
0,
|
||||||
|
ctxt,
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
buttonText: "Scan",
|
buttonText: "Update",
|
||||||
buttonColor:
|
buttonColor:
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
textColor:
|
textColor:
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
),
|
),
|
||||||
],
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
if (_cardNumberController.text == "") {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.cardList[index].idloyalty_cards,
|
|
||||||
widget.cardList[index].favourite,
|
|
||||||
widget.cardList[index].priority_index,
|
|
||||||
_nicknameController.text,
|
|
||||||
_cardNumberController.text,
|
|
||||||
0,
|
|
||||||
ctxt,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
buttonText: "Update",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -157,7 +156,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.favorite,
|
Icons.favorite,
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
@@ -213,7 +212,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MihAppAlert(
|
return MihPackageAlert(
|
||||||
alertIcon: Icon(
|
alertIcon: Icon(
|
||||||
Icons.favorite_border,
|
Icons.favorite_border,
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
@@ -276,102 +275,82 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MihAppWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: widget.cardList[index].shop_name.toUpperCase(),
|
windowTitle: widget.cardList[index].shop_name.toUpperCase(),
|
||||||
windowTools: Row(
|
menuOptions: [
|
||||||
children: [
|
SpeedDialChild(
|
||||||
Padding(
|
child: widget.cardList[index].favourite == ""
|
||||||
padding: const EdgeInsets.only(top: 5.0),
|
? Icon(
|
||||||
child: MihFloatingMenu(
|
Icons.favorite,
|
||||||
animatedIcon: AnimatedIcons.menu_close,
|
color:
|
||||||
direction: SpeedDialDirection.down,
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
children: [
|
)
|
||||||
SpeedDialChild(
|
: Icon(
|
||||||
child: widget.cardList[index].favourite == ""
|
Icons.favorite_border,
|
||||||
? Icon(
|
color:
|
||||||
Icons.favorite,
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
color: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.primaryColor(),
|
|
||||||
)
|
|
||||||
: Icon(
|
|
||||||
Icons.favorite_border,
|
|
||||||
color: MzanziInnovationHub.of(context)!
|
|
||||||
.theme
|
|
||||||
.primaryColor(),
|
|
||||||
),
|
|
||||||
label: widget.cardList[index].favourite == ""
|
|
||||||
? "Add to Favourite"
|
|
||||||
: "Remove from Favourite",
|
|
||||||
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 (widget.cardList[index].favourite == "") {
|
|
||||||
addToFavCardWindow(context, index);
|
|
||||||
} else {
|
|
||||||
removeFromFavCardWindow(context, index);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
SpeedDialChild(
|
label: widget.cardList[index].favourite == ""
|
||||||
child: Icon(
|
? "Add to Favourite"
|
||||||
Icons.edit,
|
: "Remove from Favourite",
|
||||||
color:
|
labelBackgroundColor:
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
),
|
labelStyle: TextStyle(
|
||||||
label: "Edit Card Details",
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
labelBackgroundColor:
|
fontWeight: FontWeight.bold,
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
labelStyle: TextStyle(
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
backgroundColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
onTap: () {
|
|
||||||
setState(() {
|
|
||||||
_cardNumberController.text =
|
|
||||||
widget.cardList[index].card_number;
|
|
||||||
_nicknameController.text =
|
|
||||||
widget.cardList[index].nickname;
|
|
||||||
});
|
|
||||||
editCardWindow(context, index);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
SpeedDialChild(
|
|
||||||
child: Icon(
|
|
||||||
Icons.delete,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
label: "Delete 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: () {
|
|
||||||
deleteCardWindow(context, index);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
backgroundColor:
|
||||||
),
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (widget.cardList[index].favourite == "") {
|
||||||
|
addToFavCardWindow(context, index);
|
||||||
|
} else {
|
||||||
|
removeFromFavCardWindow(context, index);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.edit,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Edit Card Details",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
setState(() {
|
||||||
|
_cardNumberController.text = widget.cardList[index].card_number;
|
||||||
|
_nicknameController.text = widget.cardList[index].nickname;
|
||||||
|
});
|
||||||
|
editCardWindow(context, index);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete 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: () {
|
||||||
|
deleteCardWindow(context, index);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/mzansi_wallet/package_tools/mih_card_favourites.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_cards.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_cards.dart';
|
||||||
@@ -32,7 +32,7 @@ class _MihWalletState extends State<MihWallet> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -46,8 +46,8 @@ class _MihWalletState extends State<MihWallet> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -57,7 +57,7 @@ class _MihWalletState extends State<MihWallet> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.card_membership)] = () {
|
temp[const Icon(Icons.card_membership)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -70,7 +70,7 @@ class _MihWalletState extends State<MihWallet> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -22,7 +22,7 @@ class MihWalletTile extends StatefulWidget {
|
|||||||
class _MihWalletTileState extends State<MihWalletTile> {
|
class _MihWalletTileState extends State<MihWalletTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mzansi-wallet',
|
'/mzansi-wallet',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.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_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_package_tool_body.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/loyalty_card.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/loyalty_card.dart';
|
||||||
@@ -33,7 +33,7 @@ class _MihCardFavouritesState extends State<MihCardFavourites> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_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_package_components/mih_package_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_floating_menu.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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';
|
||||||
@@ -81,21 +81,9 @@ class _MihCardsState extends State<MihCards> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add New Loyalty Card",
|
windowTitle: "Add New Loyalty Card",
|
||||||
windowTools: const [
|
|
||||||
SizedBox(width: 35),
|
|
||||||
// IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// //Delete card API Call
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.delete,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
shopController.clear();
|
shopController.clear();
|
||||||
cardNumberController.clear();
|
cardNumberController.clear();
|
||||||
@@ -103,145 +91,148 @@ class _MihCardsState extends State<MihCards> {
|
|||||||
shopName.value = "";
|
shopName.value = "";
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHDropdownField(
|
children: [
|
||||||
controller: shopController,
|
MIHDropdownField(
|
||||||
hintText: "Shop Name",
|
controller: shopController,
|
||||||
dropdownOptions: const [
|
hintText: "Shop Name",
|
||||||
"+More",
|
dropdownOptions: const [
|
||||||
"Apple Tree",
|
"+More",
|
||||||
"Auchan",
|
"Apple Tree",
|
||||||
"Best Before",
|
"Auchan",
|
||||||
"Big Save",
|
"Best Before",
|
||||||
"Boxer",
|
"Big Save",
|
||||||
"BP",
|
"Boxer",
|
||||||
"Builders Warehouse",
|
"BP",
|
||||||
"Checkers",
|
"Builders Warehouse",
|
||||||
"Choppies",
|
"Checkers",
|
||||||
"Clicks",
|
"Choppies",
|
||||||
"Continente",
|
"Clicks",
|
||||||
"Cotton:On",
|
"Continente",
|
||||||
"Carrefour",
|
"Cotton:On",
|
||||||
"Dis-Chem",
|
"Carrefour",
|
||||||
"Edgars",
|
"Dis-Chem",
|
||||||
"Eskom",
|
"Edgars",
|
||||||
"Exclusive Books",
|
"Eskom",
|
||||||
"Fresh Stop",
|
"Exclusive Books",
|
||||||
"Fresmart",
|
"Fresh Stop",
|
||||||
"Infinity",
|
"Fresmart",
|
||||||
"Jet",
|
"Infinity",
|
||||||
"Justrite",
|
"Jet",
|
||||||
"Kero",
|
"Justrite",
|
||||||
"Leroy Merlin",
|
"Kero",
|
||||||
"Makro",
|
"Leroy Merlin",
|
||||||
"Naivas",
|
"Makro",
|
||||||
"OK Foods",
|
"Naivas",
|
||||||
"Panarottis",
|
"OK Foods",
|
||||||
"Pick n Pay",
|
"Panarottis",
|
||||||
"PnA",
|
"Pick n Pay",
|
||||||
"PQ Clothing",
|
"PnA",
|
||||||
"Rage",
|
"PQ Clothing",
|
||||||
"Sefalana",
|
"Rage",
|
||||||
"Sasol",
|
"Sefalana",
|
||||||
"Shell",
|
"Sasol",
|
||||||
"Shoprite",
|
"Shell",
|
||||||
"Signature Cosmetics & Fragrances",
|
"Shoprite",
|
||||||
"Spar",
|
"Signature Cosmetics & Fragrances",
|
||||||
"Spur",
|
"Spar",
|
||||||
"TFG Group",
|
"Spur",
|
||||||
"Toys R Us",
|
"TFG Group",
|
||||||
"Woermann Brock",
|
"Toys R Us",
|
||||||
"Woolworths"
|
"Woermann Brock",
|
||||||
],
|
"Woolworths"
|
||||||
required: true,
|
],
|
||||||
editable: true,
|
required: true,
|
||||||
enableSearch: false,
|
editable: true,
|
||||||
),
|
enableSearch: false,
|
||||||
ValueListenableBuilder(
|
),
|
||||||
valueListenable: shopName,
|
ValueListenableBuilder(
|
||||||
builder: (BuildContext context, String value, Widget? child) {
|
valueListenable: shopName,
|
||||||
return Visibility(
|
builder: (BuildContext context, String value, Widget? child) {
|
||||||
visible: value != "",
|
return Visibility(
|
||||||
child: Column(
|
visible: value != "",
|
||||||
children: [
|
child: Column(
|
||||||
const SizedBox(height: 10),
|
children: [
|
||||||
MihCardDisplay(
|
const SizedBox(height: 10),
|
||||||
shopName: shopName.value, nickname: "", height: 200),
|
MihCardDisplay(
|
||||||
],
|
shopName: shopName.value, nickname: "", height: 200),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
MIHTextField(
|
||||||
|
controller: _nicknameController,
|
||||||
|
hintText: "Card Title",
|
||||||
|
editable: true,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
Flexible(
|
||||||
|
child: MIHNumberField(
|
||||||
|
controller: cardNumberController,
|
||||||
|
hintText: "Card Number",
|
||||||
|
editable: true,
|
||||||
|
required: true,
|
||||||
|
enableDecimal: false,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
const SizedBox(width: 10),
|
||||||
},
|
MIHButton(
|
||||||
),
|
onTap: () async {
|
||||||
const SizedBox(height: 10),
|
openscanner();
|
||||||
MIHTextField(
|
},
|
||||||
controller: _nicknameController,
|
buttonText: "Scan",
|
||||||
hintText: "Card Title",
|
buttonColor:
|
||||||
editable: true,
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
required: false,
|
textColor:
|
||||||
),
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
const SizedBox(height: 10),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Flexible(
|
|
||||||
child: MIHNumberField(
|
|
||||||
controller: cardNumberController,
|
|
||||||
hintText: "Card Number",
|
|
||||||
editable: true,
|
|
||||||
required: true,
|
|
||||||
enableDecimal: false,
|
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
const SizedBox(width: 10),
|
),
|
||||||
MIHButton(
|
const SizedBox(height: 15),
|
||||||
onTap: () async {
|
SizedBox(
|
||||||
openscanner();
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
if (shopController.text == "" ||
|
||||||
|
cardNumberController.text == "") {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
MIHMzansiWalletApis.addLoyaltyCardAPICall(
|
||||||
|
widget.signedInUser,
|
||||||
|
widget.signedInUser.app_id,
|
||||||
|
shopController.text,
|
||||||
|
cardNumberController.text,
|
||||||
|
"",
|
||||||
|
0,
|
||||||
|
_nicknameController.text,
|
||||||
|
0,
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
buttonText: "Scan",
|
buttonText: "Add",
|
||||||
buttonColor:
|
buttonColor:
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
textColor:
|
textColor:
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
),
|
),
|
||||||
],
|
|
||||||
),
|
|
||||||
const SizedBox(height: 15),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
if (shopController.text == "" ||
|
|
||||||
cardNumberController.text == "") {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
MIHMzansiWalletApis.addLoyaltyCardAPICall(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.signedInUser.app_id,
|
|
||||||
shopController.text,
|
|
||||||
cardNumberController.text,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
_nicknameController.text,
|
|
||||||
0,
|
|
||||||
context,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
buttonText: "Add",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -269,7 +260,7 @@ class _MihCardsState extends State<MihCards> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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';
|
||||||
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_inputs_and_buttons/mih_time_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_time_input.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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_success_message.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_warning_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
@@ -167,75 +167,77 @@ class _BuildPatientsListState extends State<BuildMihPatientSearchList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Patient Appointment",
|
windowTitle: "Patient Appointment",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: idController,
|
MIHTextField(
|
||||||
hintText: "ID No.",
|
controller: idController,
|
||||||
editable: false,
|
hintText: "ID No.",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: fnameController,
|
|
||||||
hintText: "First Name",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDateField(
|
|
||||||
controller: dateController,
|
|
||||||
lableText: "Date",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTimeField(
|
|
||||||
controller: timeController,
|
|
||||||
lableText: "Time",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 30.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Book",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
//print("here1");
|
|
||||||
bool filled = isAppointmentFieldsFilled();
|
|
||||||
//print("fields filled: $filled");
|
|
||||||
if (filled) {
|
|
||||||
//print("here2");
|
|
||||||
submitApointment(index);
|
|
||||||
//print("here3");
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: fnameController,
|
||||||
|
hintText: "First Name",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDateField(
|
||||||
|
controller: dateController,
|
||||||
|
lableText: "Date",
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTimeField(
|
||||||
|
controller: timeController,
|
||||||
|
lableText: "Time",
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 30.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Book",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
//print("here1");
|
||||||
|
bool filled = isAppointmentFieldsFilled();
|
||||||
|
//print("fields filled: $filled");
|
||||||
|
if (filled) {
|
||||||
|
//print("here2");
|
||||||
|
submitApointment(index);
|
||||||
|
//print("here3");
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -321,226 +323,230 @@ class _BuildPatientsListState extends State<BuildMihPatientSearchList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Patient Profile",
|
windowTitle: "Patient Profile",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: idController,
|
MIHTextField(
|
||||||
hintText: "ID No.",
|
controller: idController,
|
||||||
editable: false,
|
hintText: "ID No.",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: fnameController,
|
|
||||||
hintText: "First Name",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: accessStatusController,
|
|
||||||
hintText: "Access Status",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 20.0),
|
|
||||||
Visibility(
|
|
||||||
visible: !hasAccess,
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
"Important Notice: Requesting Patient Profile Access",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"You are about to request access to a patient's profile. Please be aware of the following important points:",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 600,
|
|
||||||
child: Text(
|
|
||||||
"1. Permanent Access: Once the patient accepts your access request, it will become permanent.",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 600,
|
|
||||||
child: Text(
|
|
||||||
"2. Shared Information: Any updates you make to the patient's profile will be visible to others who have access to the profile.",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 600,
|
|
||||||
child: Text(
|
|
||||||
"3. Irreversible Access: Once granted, you cannot revoke your access to the patient's profile.",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
color:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"By pressing the \"Request Access\" button you accept the above terms.\n",
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10.0),
|
||||||
// const SizedBox(height: 15.0),
|
MIHTextField(
|
||||||
Wrap(runSpacing: 10, spacing: 10, children: [
|
controller: fnameController,
|
||||||
// Visibility(
|
hintText: "First Name",
|
||||||
// visible: hasAccess,
|
editable: false,
|
||||||
// child: SizedBox(
|
required: true,
|
||||||
// width: 300,
|
|
||||||
// height: 50,
|
|
||||||
// child: MIHButton(
|
|
||||||
// buttonText: "Book Appointment",
|
|
||||||
// buttonColor:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// textColor:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// onTap: () {
|
|
||||||
// if (hasAccess) {
|
|
||||||
// appointmentPopUp(index);
|
|
||||||
// } else {
|
|
||||||
// noAccessWarning();
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
Visibility(
|
|
||||||
visible: hasAccess,
|
|
||||||
child: SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "View Patient Profile",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (hasAccess) {
|
|
||||||
Navigator.of(context)
|
|
||||||
.pushNamed('/patient-manager/patient',
|
|
||||||
arguments: PatientViewArguments(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.patients[index],
|
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
"business",
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
noAccessWarning();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: accessStatusController,
|
||||||
|
hintText: "Access Status",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 20.0),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: !hasAccess && accessStatus == "No Access",
|
visible: !hasAccess,
|
||||||
child: SizedBox(
|
child: Column(
|
||||||
width: 300,
|
mainAxisSize: MainAxisSize.max,
|
||||||
height: 50,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
child: MIHButton(
|
children: [
|
||||||
buttonText: "Request Access",
|
Text(
|
||||||
buttonColor:
|
"Important Notice: Requesting Patient Profile Access",
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
style: TextStyle(
|
||||||
textColor:
|
fontWeight: FontWeight.bold,
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
color:
|
||||||
onTap: () {
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
//print("Send access Request...");
|
),
|
||||||
MIHApiCalls.addPatientAccessAPICall(
|
),
|
||||||
widget.business!.business_id,
|
Text(
|
||||||
widget.patients[index].app_id,
|
"You are about to request access to a patient's profile. Please be aware of the following important points:",
|
||||||
"patient",
|
style: TextStyle(
|
||||||
widget.business!.Name,
|
fontWeight: FontWeight.normal,
|
||||||
widget.personalSelected,
|
color:
|
||||||
BusinessArguments(
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
widget.signedInUser,
|
),
|
||||||
widget.businessUser,
|
),
|
||||||
widget.business,
|
SizedBox(
|
||||||
|
width: 600,
|
||||||
|
child: Text(
|
||||||
|
"1. Permanent Access: Once the patient accepts your access request, it will become permanent.",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
),
|
),
|
||||||
context,
|
),
|
||||||
);
|
),
|
||||||
},
|
SizedBox(
|
||||||
),
|
width: 600,
|
||||||
),
|
child: Text(
|
||||||
),
|
"2. Shared Information: Any updates you make to the patient's profile will be visible to others who have access to the profile.",
|
||||||
Visibility(
|
style: TextStyle(
|
||||||
visible: !hasAccess && accessStatus == "declined",
|
fontWeight: FontWeight.normal,
|
||||||
child: SizedBox(
|
color:
|
||||||
width: 300,
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Re-apply",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
// print("Send rewaply access Request...");
|
|
||||||
MIHApiCalls.reapplyPatientAccessAPICall(
|
|
||||||
widget.business!.business_id,
|
|
||||||
widget.patients[index].app_id,
|
|
||||||
widget.personalSelected,
|
|
||||||
BusinessArguments(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
),
|
),
|
||||||
context,
|
),
|
||||||
);
|
),
|
||||||
},
|
SizedBox(
|
||||||
|
width: 600,
|
||||||
|
child: Text(
|
||||||
|
"3. Irreversible Access: Once granted, you cannot revoke your access to the patient's profile.",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"By pressing the \"Request Access\" button you accept the above terms.\n",
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// const SizedBox(height: 15.0),
|
||||||
|
Wrap(runSpacing: 10, spacing: 10, children: [
|
||||||
|
// Visibility(
|
||||||
|
// visible: hasAccess,
|
||||||
|
// child: SizedBox(
|
||||||
|
// width: 300,
|
||||||
|
// height: 50,
|
||||||
|
// child: MIHButton(
|
||||||
|
// buttonText: "Book Appointment",
|
||||||
|
// buttonColor:
|
||||||
|
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
// textColor:
|
||||||
|
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
// onTap: () {
|
||||||
|
// if (hasAccess) {
|
||||||
|
// appointmentPopUp(index);
|
||||||
|
// } else {
|
||||||
|
// noAccessWarning();
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
Visibility(
|
||||||
|
visible: hasAccess,
|
||||||
|
child: SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "View Patient Profile",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (hasAccess) {
|
||||||
|
Navigator.of(context)
|
||||||
|
.pushNamed('/patient-manager/patient',
|
||||||
|
arguments: PatientViewArguments(
|
||||||
|
widget.signedInUser,
|
||||||
|
widget.patients[index],
|
||||||
|
widget.businessUser,
|
||||||
|
widget.business,
|
||||||
|
"business",
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
noAccessWarning();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Visibility(
|
||||||
Visibility(
|
visible: !hasAccess && accessStatus == "No Access",
|
||||||
visible: !hasAccess && accessStatus == "pending",
|
child: SizedBox(
|
||||||
child: const SizedBox(
|
width: 300,
|
||||||
width: 500,
|
height: 50,
|
||||||
//height: 50,
|
child: MIHButton(
|
||||||
child: Text(
|
buttonText: "Request Access",
|
||||||
"Patient has not approved access to their profile. Once access has been approved you can book and appointment or view their profile."),
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
//print("Send access Request...");
|
||||||
|
MIHApiCalls.addPatientAccessAPICall(
|
||||||
|
widget.business!.business_id,
|
||||||
|
widget.patients[index].app_id,
|
||||||
|
"patient",
|
||||||
|
widget.business!.Name,
|
||||||
|
widget.personalSelected,
|
||||||
|
BusinessArguments(
|
||||||
|
widget.signedInUser,
|
||||||
|
widget.businessUser,
|
||||||
|
widget.business,
|
||||||
|
),
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
Visibility(
|
||||||
])
|
visible: !hasAccess && accessStatus == "declined",
|
||||||
],
|
child: SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Re-apply",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
// print("Send rewaply access Request...");
|
||||||
|
MIHApiCalls.reapplyPatientAccessAPICall(
|
||||||
|
widget.business!.business_id,
|
||||||
|
widget.patients[index].app_id,
|
||||||
|
widget.personalSelected,
|
||||||
|
BusinessArguments(
|
||||||
|
widget.signedInUser,
|
||||||
|
widget.businessUser,
|
||||||
|
widget.business,
|
||||||
|
),
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Visibility(
|
||||||
|
visible: !hasAccess && accessStatus == "pending",
|
||||||
|
child: const SizedBox(
|
||||||
|
width: 500,
|
||||||
|
//height: 50,
|
||||||
|
child: Text(
|
||||||
|
"Patient has not approved access to their profile. Once access has been approved you can book and appointment or view their profile."),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
])
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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';
|
||||||
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_inputs_and_buttons/mih_time_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_time_input.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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_warning_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
@@ -100,75 +100,77 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Patient Appointment",
|
windowTitle: "Patient Appointment",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: idController,
|
MIHTextField(
|
||||||
hintText: "ID No.",
|
controller: idController,
|
||||||
editable: false,
|
hintText: "ID No.",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: fnameController,
|
|
||||||
hintText: "First Name",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHDateField(
|
|
||||||
controller: dateController,
|
|
||||||
lableText: "Date",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTimeField(
|
|
||||||
controller: timeController,
|
|
||||||
lableText: "Time",
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 30.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Book",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
//print("here1");
|
|
||||||
bool filled = isAppointmentFieldsFilled();
|
|
||||||
//print("fields filled: $filled");
|
|
||||||
if (filled) {
|
|
||||||
//print("here2");
|
|
||||||
submitApointment(index);
|
|
||||||
//print("here3");
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: fnameController,
|
||||||
|
hintText: "First Name",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHDateField(
|
||||||
|
controller: dateController,
|
||||||
|
lableText: "Date",
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTimeField(
|
||||||
|
controller: timeController,
|
||||||
|
lableText: "Time",
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 30.0),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Book",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
//print("here1");
|
||||||
|
bool filled = isAppointmentFieldsFilled();
|
||||||
|
//print("fields filled: $filled");
|
||||||
|
if (filled) {
|
||||||
|
//print("here2");
|
||||||
|
submitApointment(index);
|
||||||
|
//print("here3");
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -214,74 +216,75 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Patient Profile",
|
windowTitle: "Patient Profile",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: idController,
|
MIHTextField(
|
||||||
hintText: "ID No.",
|
controller: idController,
|
||||||
editable: false,
|
hintText: "ID No.",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: fnameController,
|
|
||||||
hintText: "First Name",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: lnameController,
|
|
||||||
hintText: "Surname",
|
|
||||||
editable: false,
|
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 30.0),
|
|
||||||
Wrap(runSpacing: 10, spacing: 10, children: [
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Book Appointment",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
appointmentPopUp(index);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
SizedBox(
|
const SizedBox(height: 10.0),
|
||||||
width: 300,
|
MIHTextField(
|
||||||
height: 50,
|
controller: fnameController,
|
||||||
child: MIHButton(
|
hintText: "First Name",
|
||||||
buttonText: "View Patient Profile",
|
editable: false,
|
||||||
buttonColor:
|
required: true,
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
// Navigator.of(context).pop();
|
|
||||||
Navigator.of(context).pushNamed('/patient-manager/patient',
|
|
||||||
arguments: PatientViewArguments(
|
|
||||||
widget.signedInUser,
|
|
||||||
patientProfile,
|
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
"business",
|
|
||||||
));
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
])
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: lnameController,
|
||||||
|
hintText: "Surname",
|
||||||
|
editable: false,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 30.0),
|
||||||
|
Wrap(runSpacing: 10, spacing: 10, children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Book Appointment",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
appointmentPopUp(index);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "View Patient Profile",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
// Navigator.of(context).pop();
|
||||||
|
Navigator.of(context).pushNamed('/patient-manager/patient',
|
||||||
|
arguments: PatientViewArguments(
|
||||||
|
widget.signedInUser,
|
||||||
|
patientProfile,
|
||||||
|
widget.businessUser,
|
||||||
|
widget.business,
|
||||||
|
"business",
|
||||||
|
));
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
])
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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';
|
||||||
@@ -20,7 +20,7 @@ class PatManagerTile extends StatefulWidget {
|
|||||||
class _PatManagerTileState extends State<PatManagerTile> {
|
class _PatManagerTileState extends State<PatManagerTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/patient-manager',
|
'/patient-manager',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:mzansi_innovation_hub/main.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_package_tool_body.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';
|
||||||
@@ -221,7 +221,7 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getPatientSearch(),
|
bodyItem: getPatientSearch(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:mzansi_innovation_hub/main.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_package_tool_body.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';
|
||||||
@@ -201,7 +201,7 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: myPatientListTool(),
|
bodyItem: myPatientListTool(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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_inputs_and_buttons/mih_time_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_time_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_floating_menu.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
@@ -222,71 +222,73 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Appointment Type",
|
windowTitle: "Appointment Type",
|
||||||
windowTools: [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
Text(
|
children: [
|
||||||
question,
|
Text(
|
||||||
style: TextStyle(
|
question,
|
||||||
fontSize: 20,
|
style: TextStyle(
|
||||||
color:
|
fontSize: 20,
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
|
color: MzanziInnovationHub.of(context)!
|
||||||
textAlign: TextAlign.left,
|
.theme
|
||||||
),
|
.secondaryColor()),
|
||||||
const SizedBox(height: 15),
|
textAlign: TextAlign.left,
|
||||||
SizedBox(
|
|
||||||
width: 500,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
onTap: () {
|
|
||||||
widget.onIndexChange(1);
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
buttonText: "Existing Patient",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 15),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
width: 500,
|
||||||
width: 500,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
widget.onIndexChange(1);
|
||||||
widget.onIndexChange(2);
|
Navigator.of(context).pop();
|
||||||
Navigator.of(context).pop();
|
},
|
||||||
},
|
buttonText: "Existing Patient",
|
||||||
buttonText: "Existing MIH User",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
width: 500,
|
||||||
width: 500,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
widget.onIndexChange(2);
|
||||||
Navigator.pop(context);
|
Navigator.of(context).pop();
|
||||||
addAppointmentWindow();
|
},
|
||||||
},
|
buttonText: "Existing MIH User",
|
||||||
buttonText: "Skeleton Appointment",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
],
|
SizedBox(
|
||||||
|
width: 500,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
addAppointmentWindow();
|
||||||
|
},
|
||||||
|
buttonText: "Skeleton Appointment",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -297,10 +299,9 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add Appointment",
|
windowTitle: "Add Appointment",
|
||||||
windowTools: [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
_appointmentDateController.clear();
|
_appointmentDateController.clear();
|
||||||
@@ -309,61 +310,63 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
_appointmentDescriptionIDController.clear();
|
_appointmentDescriptionIDController.clear();
|
||||||
_patientController.clear();
|
_patientController.clear();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
SizedBox(
|
children: [
|
||||||
// width: 500,
|
SizedBox(
|
||||||
child: MIHTextField(
|
// width: 500,
|
||||||
controller: _appointmentTitleController,
|
child: MIHTextField(
|
||||||
hintText: "Title",
|
controller: _appointmentTitleController,
|
||||||
editable: true,
|
hintText: "Title",
|
||||||
required: true,
|
editable: true,
|
||||||
|
required: true,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
child: MIHDateField(
|
||||||
child: MIHDateField(
|
controller: _appointmentDateController,
|
||||||
controller: _appointmentDateController,
|
lableText: "Date",
|
||||||
lableText: "Date",
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
child: MIHTimeField(
|
||||||
child: MIHTimeField(
|
controller: _appointmentTimeController,
|
||||||
controller: _appointmentTimeController,
|
lableText: "Time",
|
||||||
lableText: "Time",
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10),
|
||||||
const SizedBox(height: 10),
|
SizedBox(
|
||||||
SizedBox(
|
// width: 500,
|
||||||
// width: 500,
|
height: 250,
|
||||||
height: 250,
|
child: MIHMLTextField(
|
||||||
child: MIHMLTextField(
|
controller: _appointmentDescriptionIDController,
|
||||||
controller: _appointmentDescriptionIDController,
|
hintText: "Description",
|
||||||
hintText: "Description",
|
editable: true,
|
||||||
editable: true,
|
required: true,
|
||||||
required: true,
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 20),
|
||||||
const SizedBox(height: 20),
|
SizedBox(
|
||||||
SizedBox(
|
width: 500,
|
||||||
width: 500,
|
height: 50,
|
||||||
height: 50,
|
child: MIHButton(
|
||||||
child: MIHButton(
|
onTap: () {
|
||||||
onTap: () {
|
addAppointmentCall();
|
||||||
addAppointmentCall();
|
},
|
||||||
},
|
buttonText: "Add",
|
||||||
buttonText: "Add",
|
buttonColor:
|
||||||
buttonColor:
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.successColor(),
|
textColor:
|
||||||
textColor:
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -450,7 +453,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBusinessAppointmentsTool(),
|
bodyItem: getBusinessAppointmentsTool(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/patient_profile/pat_manager/package_tools/mih_patient_search.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_manager/package_tools/mih_patient_search.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_manager/package_tools/my_patient_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_manager/package_tools/my_patient_list.dart';
|
||||||
@@ -29,7 +29,7 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getActionButton(),
|
appActionButton: getActionButton(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -42,8 +42,8 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getActionButton() {
|
MihPackageAction getActionButton() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -53,7 +53,7 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.calendar_month)] = () {
|
temp[const Icon(Icons.calendar_month)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -72,7 +72,7 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
_selcetedIndex = 2;
|
_selcetedIndex = 2;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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_search_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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/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';
|
||||||
@@ -389,10 +389,9 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Generate Claim/ Statement Document",
|
windowTitle: "Generate Claim/ Statement Document",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
// medicineController.clear();
|
// medicineController.clear();
|
||||||
// quantityController.clear();
|
// quantityController.clear();
|
||||||
@@ -402,9 +401,7 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
// noRepeatsController.clear();
|
// noRepeatsController.clear();
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: getWindowBody(),
|
||||||
getWindowBody(),
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/icd10_code.dart.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/icd10_code.dart.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_icd10_code_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_icd10_code_list.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -37,10 +37,9 @@ class _ICD10SearchWindowState extends State<ICD10SearchWindow> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "ICD-10 Search",
|
windowTitle: "ICD-10 Search",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
// medicineController.clear();
|
// medicineController.clear();
|
||||||
// quantityController.clear();
|
// quantityController.clear();
|
||||||
@@ -50,9 +49,7 @@ class _ICD10SearchWindowState extends State<ICD10SearchWindow> {
|
|||||||
// noRepeatsController.clear();
|
// noRepeatsController.clear();
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: getWindowBody(),
|
||||||
getWindowBody(),
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.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_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
@@ -66,47 +65,48 @@ class _MedicineSearchState extends State<MedicineSearch> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MIHWindow(
|
return MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Select Medicine",
|
windowTitle: "Select Medicine",
|
||||||
windowTools: [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
FutureBuilder(
|
children: [
|
||||||
future: futueMeds,
|
FutureBuilder(
|
||||||
builder: (context, snapshot) {
|
future: futueMeds,
|
||||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
builder: (context, snapshot) {
|
||||||
return const SizedBox(
|
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||||
height: 400,
|
return const SizedBox(
|
||||||
child: Mihloadingcircle(),
|
height: 400,
|
||||||
);
|
child: Mihloadingcircle(),
|
||||||
} else if (snapshot.hasData && snapshot.data!.isNotEmpty) {
|
);
|
||||||
final medsList = snapshot.data!;
|
} else if (snapshot.hasData && snapshot.data!.isNotEmpty) {
|
||||||
return SizedBox(
|
final medsList = snapshot.data!;
|
||||||
height: 400,
|
return SizedBox(
|
||||||
child: BuildMedicinesList(
|
height: 400,
|
||||||
contoller: widget.searchVlaue,
|
child: BuildMedicinesList(
|
||||||
medicines: medsList,
|
contoller: widget.searchVlaue,
|
||||||
//searchString: searchString,
|
medicines: medsList,
|
||||||
),
|
//searchString: searchString,
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return const SizedBox(
|
|
||||||
height: 400,
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
"No Match Found\nPlease close and manually capture medicine",
|
|
||||||
style: TextStyle(fontSize: 25, color: Colors.grey),
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
),
|
),
|
||||||
),
|
);
|
||||||
);
|
} else {
|
||||||
}
|
return const SizedBox(
|
||||||
},
|
height: 400,
|
||||||
),
|
child: Center(
|
||||||
],
|
child: Text(
|
||||||
|
"No Match Found\nPlease close and manually capture medicine",
|
||||||
|
style: TextStyle(fontSize: 25, color: Colors.grey),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:fl_downloader/fl_downloader.dart';
|
||||||
|
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_apis/mih_file_api.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_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_success_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.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';
|
||||||
@@ -14,6 +19,9 @@ import 'package:mzansi_innovation_hub/mih_objects/claim_statement_file.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
import 'package:http/http.dart' as http2;
|
||||||
|
import "package:universal_html/html.dart" as html;
|
||||||
|
|
||||||
class BuildClaimStatementFileList extends StatefulWidget {
|
class BuildClaimStatementFileList extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
final AppUser signedInUser;
|
||||||
@@ -45,6 +53,8 @@ class _BuildClaimStatementFileListState
|
|||||||
final baseAPI = AppEnviroment.baseApiUrl;
|
final baseAPI = AppEnviroment.baseApiUrl;
|
||||||
final basefile = AppEnviroment.baseFileUrl;
|
final basefile = AppEnviroment.baseFileUrl;
|
||||||
String fileUrl = "";
|
String fileUrl = "";
|
||||||
|
int progress = 0;
|
||||||
|
late StreamSubscription progressStream;
|
||||||
|
|
||||||
Future<String> getFileUrlApiCall(String filePath) async {
|
Future<String> getFileUrlApiCall(String filePath) async {
|
||||||
String teporaryFileUrl = "";
|
String teporaryFileUrl = "";
|
||||||
@@ -105,42 +115,149 @@ class _BuildClaimStatementFileListState
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getFileName(String path) {
|
||||||
|
//print(pdfLink.split(".")[1]);
|
||||||
|
return path.split("/").last;
|
||||||
|
}
|
||||||
|
|
||||||
|
void printDocument(String link, String path) async {
|
||||||
|
http2.Response response = await http.get(Uri.parse(link));
|
||||||
|
var pdfData = response.bodyBytes;
|
||||||
|
Navigator.of(context).pushNamed(
|
||||||
|
'/file-veiwer/print-preview',
|
||||||
|
arguments: PrintPreviewArguments(
|
||||||
|
pdfData,
|
||||||
|
getFileName(path),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void nativeFileDownload(String fileLink) async {
|
||||||
|
var permission = await FlDownloader.requestPermission();
|
||||||
|
if (permission == StoragePermissionStatus.granted) {
|
||||||
|
try {
|
||||||
|
mihLoadingPopUp();
|
||||||
|
await FlDownloader.download(fileLink);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
} on Exception catch (error) {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
print(error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print("denied");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void viewFilePopUp(String fileName, String filePath, int fileID, String url) {
|
void viewFilePopUp(String fileName, String filePath, int fileID, String url) {
|
||||||
bool hasAccessToDelete = false;
|
bool hasAccessToDelete = false;
|
||||||
if (widget.type == "business") {
|
if (widget.type == "business") {
|
||||||
hasAccessToDelete = true;
|
hasAccessToDelete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<SpeedDialChild>? menuList = [
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.download,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Download",
|
||||||
|
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 (MzanziInnovationHub.of(context)!.theme.getPlatform() == "Web") {
|
||||||
|
html.window.open(url, 'download');
|
||||||
|
} else {
|
||||||
|
nativeFileDownload(url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
];
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.print,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Print",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor: MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
printDocument(url, filePath);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.fullscreen,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Full Screen",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor: MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
printDocument(url, filePath);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (hasAccessToDelete) {
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete 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: () {
|
||||||
|
deleteFilePopUp(filePath, fileID);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: true,
|
fullscreen: false,
|
||||||
windowTitle: fileName,
|
windowTitle: fileName,
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
BuildFileView(
|
children: [
|
||||||
link: url,
|
BuildFileView(
|
||||||
path: filePath,
|
link: url,
|
||||||
//pdfLink: '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
path: filePath,
|
||||||
),
|
//pdfLink: '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
||||||
const SizedBox(
|
|
||||||
height: 10,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
windowTools: [
|
|
||||||
Visibility(
|
|
||||||
visible: hasAccessToDelete,
|
|
||||||
child: IconButton(
|
|
||||||
onPressed: () {
|
|
||||||
deleteFilePopUp(filePath, fileID);
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
size: 35,
|
|
||||||
Icons.delete,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(
|
||||||
],
|
height: 10,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
menuOptions: menuList,
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
@@ -148,12 +265,41 @@ class _BuildClaimStatementFileListState
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mihLoadingPopUp() {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const Mihloadingcircle();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
// TODO: implement dispose
|
// TODO: implement dispose
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
FlDownloader.initialize();
|
||||||
|
progressStream = FlDownloader.progressStream.listen((event) {
|
||||||
|
if (event.status == DownloadStatus.successful) {
|
||||||
|
setState(() {
|
||||||
|
progress = event.progress;
|
||||||
|
});
|
||||||
|
//Navigator.of(context).pop();
|
||||||
|
print("Progress $progress%: Success Downloading");
|
||||||
|
FlDownloader.openFile(filePath: event.filePath);
|
||||||
|
} else if (event.status == DownloadStatus.failed) {
|
||||||
|
print("Progress $progress%: Error Downloading");
|
||||||
|
} else if (event.status == DownloadStatus.running) {
|
||||||
|
print("Progress $progress%: Download Running");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (widget.files.isNotEmpty) {
|
if (widget.files.isNotEmpty) {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:syncfusion_flutter_core/theme.dart';
|
import 'package:syncfusion_flutter_core/theme.dart';
|
||||||
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
|
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
|
||||||
import "package:universal_html/html.dart" as html;
|
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:fl_downloader/fl_downloader.dart';
|
import 'package:fl_downloader/fl_downloader.dart';
|
||||||
|
|
||||||
@@ -115,149 +114,29 @@ class _BuildFileViewState extends State<BuildFileView> {
|
|||||||
//double height = MediaQuery.sizeOf(context).height;
|
//double height = MediaQuery.sizeOf(context).height;
|
||||||
debugPrint(widget.link);
|
debugPrint(widget.link);
|
||||||
if (getExtType(widget.path).toLowerCase() == "pdf") {
|
if (getExtType(widget.path).toLowerCase() == "pdf") {
|
||||||
return Expanded(
|
return SizedBox(
|
||||||
child: Stack(
|
height: 500,
|
||||||
fit: StackFit.expand,
|
child: SfPdfViewerTheme(
|
||||||
children: [
|
data: SfPdfViewerThemeData(
|
||||||
SfPdfViewerTheme(
|
backgroundColor:
|
||||||
data: SfPdfViewerThemeData(
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
backgroundColor:
|
),
|
||||||
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
child: SfPdfViewer.network(
|
||||||
),
|
widget.link,
|
||||||
child: SfPdfViewer.network(
|
controller: pdfViewerController,
|
||||||
widget.link,
|
interactionMode: PdfInteractionMode.pan,
|
||||||
controller: pdfViewerController,
|
),
|
||||||
interactionMode: PdfInteractionMode.pan,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Positioned(
|
|
||||||
bottom: 10,
|
|
||||||
right: 10,
|
|
||||||
width: 50,
|
|
||||||
height: 50,
|
|
||||||
child: IconButton.filled(
|
|
||||||
iconSize: 35,
|
|
||||||
padding: const EdgeInsets.all(0),
|
|
||||||
onPressed: () {
|
|
||||||
printDocument();
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
Icons.print,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Positioned(
|
|
||||||
bottom: 10,
|
|
||||||
left: 10,
|
|
||||||
width: 50,
|
|
||||||
height: 50,
|
|
||||||
child: IconButton.filled(
|
|
||||||
iconSize: 35,
|
|
||||||
padding: const EdgeInsets.all(0),
|
|
||||||
onPressed: () async {
|
|
||||||
// debugPrint(
|
|
||||||
// "I'm here ${MzanziInnovationHub.of(context)!.theme.getPlatform()}");
|
|
||||||
if (MzanziInnovationHub.of(context)!.theme.getPlatform() ==
|
|
||||||
"Web") {
|
|
||||||
html.window.open(
|
|
||||||
widget.link,
|
|
||||||
// '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
|
||||||
'download');
|
|
||||||
} else {
|
|
||||||
// print("Here");
|
|
||||||
// var permission = await FlDownloader.requestPermission();
|
|
||||||
// if (permission == StoragePermissionStatus.granted) {
|
|
||||||
// await FlDownloader.download(widget.link);
|
|
||||||
// } else {
|
|
||||||
// print("denied");
|
|
||||||
// }
|
|
||||||
nativeFileDownload(widget.link);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
Icons.download,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return Expanded(
|
return SizedBox(
|
||||||
// height: height,
|
height: 500,
|
||||||
// padding: const EdgeInsets.all(10.0),
|
child: InteractiveViewer(
|
||||||
child: Stack(
|
//constrained: true,
|
||||||
fit: StackFit.expand,
|
//clipBehavior: Clip.antiAlias,
|
||||||
children: [
|
maxScale: 5.0,
|
||||||
InteractiveViewer(
|
//minScale: 0.,
|
||||||
//constrained: true,
|
child: Image.network(widget.link),
|
||||||
//clipBehavior: Clip.antiAlias,
|
|
||||||
maxScale: 5.0,
|
|
||||||
//minScale: 0.,
|
|
||||||
child: Image.network(widget.link),
|
|
||||||
),
|
|
||||||
Positioned(
|
|
||||||
bottom: 10,
|
|
||||||
right: 10,
|
|
||||||
width: 50,
|
|
||||||
height: 50,
|
|
||||||
child: IconButton.filled(
|
|
||||||
iconSize: 35,
|
|
||||||
padding: const EdgeInsets.all(0),
|
|
||||||
onPressed: () {
|
|
||||||
//expandImage(width, height);
|
|
||||||
Navigator.of(context).pushNamed(
|
|
||||||
'/file-veiwer',
|
|
||||||
arguments: FileViewArguments(
|
|
||||||
widget.link,
|
|
||||||
widget.path,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
Icons.fullscreen,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Positioned(
|
|
||||||
bottom: 10,
|
|
||||||
left: 10,
|
|
||||||
width: 50,
|
|
||||||
height: 50,
|
|
||||||
child: IconButton.filled(
|
|
||||||
iconSize: 35,
|
|
||||||
padding: const EdgeInsets.all(0),
|
|
||||||
onPressed: () async {
|
|
||||||
// debugPrint("I'm here ");
|
|
||||||
// debugPrint(
|
|
||||||
// "I'm here ${MzanziInnovationHub.of(context)!.theme.getPlatform()}");
|
|
||||||
if (MzanziInnovationHub.of(context)!.theme.getPlatform() ==
|
|
||||||
"Web") {
|
|
||||||
html.window.open(
|
|
||||||
widget.link,
|
|
||||||
// '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
|
||||||
'download');
|
|
||||||
} else {
|
|
||||||
//print("Here");
|
|
||||||
// var permission = await FlDownloader.requestPermission();
|
|
||||||
// if (permission == StoragePermissionStatus.granted) {
|
|
||||||
// await FlDownloader.download(widget.link);
|
|
||||||
// } else {
|
|
||||||
// print("denied");
|
|
||||||
// }
|
|
||||||
nativeFileDownload(widget.link);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
Icons.download,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:fl_downloader/fl_downloader.dart';
|
||||||
|
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_file_api.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_file_api.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_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';
|
||||||
@@ -17,6 +20,8 @@ import 'package:mzansi_innovation_hub/mih_objects/patients.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/list_builders/build_file_view.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
import 'package:http/http.dart' as http2;
|
||||||
|
import "package:universal_html/html.dart" as html;
|
||||||
|
|
||||||
class BuildFilesList extends StatefulWidget {
|
class BuildFilesList extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
final AppUser signedInUser;
|
||||||
@@ -46,6 +51,8 @@ class _BuildFilesListState extends State<BuildFilesList> {
|
|||||||
final baseAPI = AppEnviroment.baseApiUrl;
|
final baseAPI = AppEnviroment.baseApiUrl;
|
||||||
final basefile = AppEnviroment.baseFileUrl;
|
final basefile = AppEnviroment.baseFileUrl;
|
||||||
String fileUrl = "";
|
String fileUrl = "";
|
||||||
|
int progress = 0;
|
||||||
|
late StreamSubscription progressStream;
|
||||||
|
|
||||||
Future<String> getFileUrlApiCall(String filePath) async {
|
Future<String> getFileUrlApiCall(String filePath) async {
|
||||||
String teporaryFileUrl = "";
|
String teporaryFileUrl = "";
|
||||||
@@ -158,147 +165,185 @@ class _BuildFilesListState extends State<BuildFilesList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getFileName(String path) {
|
||||||
|
//print(pdfLink.split(".")[1]);
|
||||||
|
return path.split("/").last;
|
||||||
|
}
|
||||||
|
|
||||||
|
void printDocument(String link, String path) async {
|
||||||
|
http2.Response response = await http.get(Uri.parse(link));
|
||||||
|
var pdfData = response.bodyBytes;
|
||||||
|
Navigator.of(context).pushNamed(
|
||||||
|
'/file-veiwer/print-preview',
|
||||||
|
arguments: PrintPreviewArguments(
|
||||||
|
pdfData,
|
||||||
|
getFileName(path),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void nativeFileDownload(String fileLink) async {
|
||||||
|
var permission = await FlDownloader.requestPermission();
|
||||||
|
if (permission == StoragePermissionStatus.granted) {
|
||||||
|
try {
|
||||||
|
mihLoadingPopUp();
|
||||||
|
await FlDownloader.download(fileLink);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
} on Exception catch (error) {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
print(error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print("denied");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void viewFilePopUp(String fileName, String filePath, int fileID, String url) {
|
void viewFilePopUp(String fileName, String filePath, int fileID, String url) {
|
||||||
bool hasAccessToDelete = false;
|
bool hasAccessToDelete = false;
|
||||||
if (widget.type == "business") {
|
if (widget.type == "business") {
|
||||||
hasAccessToDelete = true;
|
hasAccessToDelete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<SpeedDialChild>? menuList = [
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.download,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Download",
|
||||||
|
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 (MzanziInnovationHub.of(context)!.theme.getPlatform() == "Web") {
|
||||||
|
html.window.open(url, 'download');
|
||||||
|
} else {
|
||||||
|
nativeFileDownload(url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
];
|
||||||
|
if (filePath.split(".").last.toLowerCase() == "pdf") {
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.print,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Print",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
printDocument(url, filePath);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.fullscreen,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Full Screen",
|
||||||
|
labelBackgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
printDocument(url, filePath);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.fullscreen,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Full Screen",
|
||||||
|
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(
|
||||||
|
'/file-veiwer',
|
||||||
|
arguments: FileViewArguments(
|
||||||
|
url,
|
||||||
|
filePath,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (hasAccessToDelete) {
|
||||||
|
menuList.add(
|
||||||
|
SpeedDialChild(
|
||||||
|
child: Icon(
|
||||||
|
Icons.delete,
|
||||||
|
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
label: "Delete 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: () {
|
||||||
|
deleteFilePopUp(filePath, fileID);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: true,
|
fullscreen: false,
|
||||||
windowTitle: fileName,
|
windowTitle: fileName,
|
||||||
windowBody: [
|
windowBody: BuildFileView(
|
||||||
BuildFileView(
|
link: url,
|
||||||
link: url,
|
path: filePath,
|
||||||
path: filePath,
|
//pdfLink: '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
||||||
//pdfLink: '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
),
|
||||||
),
|
menuOptions: menuList,
|
||||||
const SizedBox(
|
|
||||||
height: 10,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
windowTools: [
|
|
||||||
Visibility(
|
|
||||||
visible: hasAccessToDelete,
|
|
||||||
child: IconButton(
|
|
||||||
onPressed: () {
|
|
||||||
deleteFilePopUp(filePath, fileID);
|
|
||||||
},
|
|
||||||
icon: Icon(
|
|
||||||
size: 35,
|
|
||||||
Icons.delete,
|
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
// showDialog(
|
}
|
||||||
// context: context,
|
|
||||||
// barrierDismissible: false,
|
void mihLoadingPopUp() {
|
||||||
// builder: (context) => Dialog(
|
showDialog(
|
||||||
// child: Stack(
|
context: context,
|
||||||
// children: [
|
builder: (context) {
|
||||||
// Container(
|
return const Mihloadingcircle();
|
||||||
// padding: const EdgeInsets.all(10.0),
|
},
|
||||||
// width: 800.0,
|
);
|
||||||
// //height: 475.0,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// borderRadius: BorderRadius.circular(25.0),
|
|
||||||
// border: Border.all(
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// width: 5.0),
|
|
||||||
// ),
|
|
||||||
// child: Column(
|
|
||||||
// mainAxisSize: MainAxisSize.min,
|
|
||||||
// children: [
|
|
||||||
// const SizedBox(
|
|
||||||
// height: 25,
|
|
||||||
// ),
|
|
||||||
// Text(
|
|
||||||
// fileName,
|
|
||||||
// textAlign: TextAlign.center,
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// fontSize: 35.0,
|
|
||||||
// fontWeight: FontWeight.bold,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 25.0),
|
|
||||||
// Expanded(
|
|
||||||
// child: BuildFileView(
|
|
||||||
// link: url,
|
|
||||||
// path: filePath,
|
|
||||||
// //pdfLink: '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
|
||||||
// )),
|
|
||||||
// const SizedBox(height: 30.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 300,
|
|
||||||
// height: 50,
|
|
||||||
// child: MIHButton(
|
|
||||||
// onTap: () {
|
|
||||||
// html.window.open(
|
|
||||||
// url,
|
|
||||||
// // '${AppEnviroment.baseFileUrl}/mih/$filePath',
|
|
||||||
// 'download');
|
|
||||||
// },
|
|
||||||
// buttonText: "Dowload",
|
|
||||||
// buttonColor: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// textColor:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// right: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// Navigator.pop(context);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.close,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
// size: 35,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// left: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// deleteFilePopUp(filePath, fileID);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.delete,
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -307,6 +352,26 @@ class _BuildFilesListState extends State<BuildFilesList> {
|
|||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
FlDownloader.initialize();
|
||||||
|
progressStream = FlDownloader.progressStream.listen((event) {
|
||||||
|
if (event.status == DownloadStatus.successful) {
|
||||||
|
setState(() {
|
||||||
|
progress = event.progress;
|
||||||
|
});
|
||||||
|
//Navigator.of(context).pop();
|
||||||
|
print("Progress $progress%: Success Downloading");
|
||||||
|
FlDownloader.openFile(filePath: event.filePath);
|
||||||
|
} else if (event.status == DownloadStatus.failed) {
|
||||||
|
print("Progress $progress%: Error Downloading");
|
||||||
|
} else if (event.status == DownloadStatus.running) {
|
||||||
|
print("Progress $progress%: Download Running");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (widget.files.isNotEmpty) {
|
if (widget.files.isNotEmpty) {
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
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_multiline_text_input.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_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_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_error_message.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';
|
||||||
@@ -136,202 +137,80 @@ class _BuildNotesListState extends State<BuildNotesList> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: true,
|
fullscreen: false,
|
||||||
windowTitle: selectednote.note_name,
|
windowTitle: "Note Details",
|
||||||
windowTools: [
|
menuOptions: hasAccessToDelete
|
||||||
Visibility(
|
? [
|
||||||
visible: hasAccessToDelete,
|
SpeedDialChild(
|
||||||
child: IconButton(
|
child: Icon(
|
||||||
onPressed: () {
|
Icons.delete,
|
||||||
deletePatientPopUp(selectednote.idpatient_notes);
|
color:
|
||||||
},
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
icon: Icon(
|
),
|
||||||
Icons.delete,
|
label: "Delete Document",
|
||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
labelBackgroundColor:
|
||||||
),
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
),
|
labelStyle: TextStyle(
|
||||||
),
|
color:
|
||||||
],
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
backgroundColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
onTap: () {
|
||||||
|
deletePatientPopUp(selectednote.idpatient_notes);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
: null,
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: businessNameController,
|
const SizedBox(height: 10.0),
|
||||||
hintText: "Office",
|
MIHTextField(
|
||||||
editable: false,
|
controller: businessNameController,
|
||||||
required: false,
|
hintText: "Office",
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: userNameController,
|
|
||||||
hintText: "Created By",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: dateController,
|
|
||||||
hintText: "Created Date",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: noteTitleController,
|
|
||||||
hintText: "Note Title",
|
|
||||||
editable: false,
|
|
||||||
required: false,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
Expanded(
|
|
||||||
child: MIHMLTextField(
|
|
||||||
controller: noteTextController,
|
|
||||||
hintText: "Note Details",
|
|
||||||
editable: false,
|
editable: false,
|
||||||
required: false,
|
required: false,
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10.0),
|
||||||
],
|
MIHTextField(
|
||||||
|
controller: userNameController,
|
||||||
|
hintText: "Created By",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: dateController,
|
||||||
|
hintText: "Created Date",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: noteTitleController,
|
||||||
|
hintText: "Note Title",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
SizedBox(
|
||||||
|
height: 250,
|
||||||
|
child: MIHMLTextField(
|
||||||
|
controller: noteTextController,
|
||||||
|
hintText: "Note Details",
|
||||||
|
editable: false,
|
||||||
|
required: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
// showDialog(
|
|
||||||
// context: context,
|
|
||||||
// barrierDismissible: false,
|
|
||||||
// builder: (context) => Dialog(
|
|
||||||
// child: Stack(
|
|
||||||
// children: [
|
|
||||||
// Container(
|
|
||||||
// padding: const EdgeInsets.all(15.0),
|
|
||||||
// width: 700.0,
|
|
||||||
// //height: 475.0,
|
|
||||||
// decoration: BoxDecoration(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// borderRadius: BorderRadius.circular(25.0),
|
|
||||||
// border: Border.all(
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// width: 5.0),
|
|
||||||
// ),
|
|
||||||
// child: Column(
|
|
||||||
// mainAxisSize: MainAxisSize.max,
|
|
||||||
// children: [
|
|
||||||
// const SizedBox(
|
|
||||||
// height: 25,
|
|
||||||
// ),
|
|
||||||
// Text(
|
|
||||||
// selectednote.note_name,
|
|
||||||
// textAlign: TextAlign.center,
|
|
||||||
// style: TextStyle(
|
|
||||||
// color: MzanziInnovationHub.of(context)!
|
|
||||||
// .theme
|
|
||||||
// .secondaryColor(),
|
|
||||||
// fontSize: 35.0,
|
|
||||||
// fontWeight: FontWeight.bold,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 25.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 700,
|
|
||||||
// child: MIHTextField(
|
|
||||||
// controller: businessNameController,
|
|
||||||
// hintText: "Office",
|
|
||||||
// editable: false,
|
|
||||||
// required: false,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 700,
|
|
||||||
// child: MIHTextField(
|
|
||||||
// controller: userNameController,
|
|
||||||
// hintText: "Created By",
|
|
||||||
// editable: false,
|
|
||||||
// required: false,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 700,
|
|
||||||
// child: MIHTextField(
|
|
||||||
// controller: dateController,
|
|
||||||
// hintText: "Created Date",
|
|
||||||
// editable: false,
|
|
||||||
// required: false,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// SizedBox(
|
|
||||||
// width: 700,
|
|
||||||
// child: MIHTextField(
|
|
||||||
// controller: noteTitleController,
|
|
||||||
// hintText: "Note Title",
|
|
||||||
// editable: false,
|
|
||||||
// required: false,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// const SizedBox(height: 10.0),
|
|
||||||
// Expanded(
|
|
||||||
// child: MIHMLTextField(
|
|
||||||
// controller: noteTextController,
|
|
||||||
// hintText: "Note Details",
|
|
||||||
// editable: false,
|
|
||||||
// required: false,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// //const SizedBox(height: 25.0),
|
|
||||||
// // SizedBox(
|
|
||||||
// // width: 300,
|
|
||||||
// // height: 100,
|
|
||||||
// // child: MIHButton(
|
|
||||||
// // onTap: () {
|
|
||||||
// // Navigator.pop(context);
|
|
||||||
// // },
|
|
||||||
// // buttonText: "Close",
|
|
||||||
// // buttonColor: Colors.blueAccent,
|
|
||||||
// // textColor: Colors.white,
|
|
||||||
// // ),
|
|
||||||
// // )
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// right: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// Navigator.pop(context);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.close,
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.errorColor(),
|
|
||||||
// size: 35,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Positioned(
|
|
||||||
// top: 5,
|
|
||||||
// left: 5,
|
|
||||||
// width: 50,
|
|
||||||
// height: 50,
|
|
||||||
// child: IconButton(
|
|
||||||
// onPressed: () {
|
|
||||||
// deletePatientPopUp(selectednote.idpatient_notes);
|
|
||||||
// },
|
|
||||||
// icon: Icon(
|
|
||||||
// Icons.delete,
|
|
||||||
// color:
|
|
||||||
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.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';
|
||||||
@@ -21,7 +21,7 @@ class PatientProfileTile extends StatefulWidget {
|
|||||||
class _PatientProfileTileState extends State<PatientProfileTile> {
|
class _PatientProfileTileState extends State<PatientProfileTile> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/patient-profile',
|
'/patient-profile',
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
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_package_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_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';
|
||||||
@@ -113,7 +113,7 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_
|
|||||||
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';
|
||||||
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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_floating_menu.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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';
|
||||||
@@ -84,106 +84,108 @@ class _PatientConsultationState extends State<PatientConsultation> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Add Note",
|
windowTitle: "Add Note",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
titleController.clear();
|
titleController.clear();
|
||||||
noteTextController.clear();
|
noteTextController.clear();
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHTextField(
|
children: [
|
||||||
controller: officeController,
|
MIHTextField(
|
||||||
hintText: "Office",
|
controller: officeController,
|
||||||
editable: false,
|
hintText: "Office",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
),
|
||||||
MIHTextField(
|
const SizedBox(height: 10.0),
|
||||||
controller: doctorController,
|
MIHTextField(
|
||||||
hintText: "Created By",
|
controller: doctorController,
|
||||||
editable: false,
|
hintText: "Created By",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
),
|
||||||
MIHTextField(
|
const SizedBox(height: 10.0),
|
||||||
controller: dateController,
|
MIHTextField(
|
||||||
hintText: "Created Date",
|
controller: dateController,
|
||||||
editable: false,
|
hintText: "Created Date",
|
||||||
required: true,
|
editable: false,
|
||||||
),
|
required: true,
|
||||||
const SizedBox(height: 10.0),
|
),
|
||||||
MIHTextField(
|
const SizedBox(height: 10.0),
|
||||||
controller: titleController,
|
MIHTextField(
|
||||||
hintText: "Note Title",
|
controller: titleController,
|
||||||
editable: true,
|
hintText: "Note Title",
|
||||||
required: true,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
SizedBox(
|
|
||||||
//width: 700,
|
|
||||||
height: 250,
|
|
||||||
child: MIHMLTextField(
|
|
||||||
controller: noteTextController,
|
|
||||||
hintText: "Note Details",
|
|
||||||
editable: true,
|
editable: true,
|
||||||
required: true,
|
required: true,
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(height: 10.0),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 15,
|
//width: 700,
|
||||||
child: ValueListenableBuilder(
|
height: 250,
|
||||||
builder: (BuildContext context, int value, Widget? child) {
|
child: MIHMLTextField(
|
||||||
return Row(
|
controller: noteTextController,
|
||||||
mainAxisSize: MainAxisSize.max,
|
hintText: "Note Details",
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
editable: true,
|
||||||
children: [
|
required: true,
|
||||||
Text(
|
),
|
||||||
"$value",
|
|
||||||
style: TextStyle(
|
|
||||||
color: getNoteDetailLimitColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(width: 5),
|
|
||||||
Text(
|
|
||||||
"/512",
|
|
||||||
style: TextStyle(
|
|
||||||
color: getNoteDetailLimitColor(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
valueListenable: _counter,
|
|
||||||
),
|
),
|
||||||
),
|
SizedBox(
|
||||||
const SizedBox(height: 15.0),
|
height: 15,
|
||||||
SizedBox(
|
child: ValueListenableBuilder(
|
||||||
width: 300,
|
builder: (BuildContext context, int value, Widget? child) {
|
||||||
height: 50,
|
return Row(
|
||||||
child: MIHButton(
|
mainAxisSize: MainAxisSize.max,
|
||||||
onTap: () {
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
if (isFieldsFilled()) {
|
children: [
|
||||||
addPatientNoteAPICall();
|
Text(
|
||||||
Navigator.pop(context);
|
"$value",
|
||||||
} else {
|
style: TextStyle(
|
||||||
showDialog(
|
color: getNoteDetailLimitColor(),
|
||||||
context: context,
|
),
|
||||||
builder: (context) {
|
),
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
const SizedBox(width: 5),
|
||||||
},
|
Text(
|
||||||
|
"/512",
|
||||||
|
style: TextStyle(
|
||||||
|
color: getNoteDetailLimitColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
},
|
valueListenable: _counter,
|
||||||
buttonText: "Add Note",
|
),
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 15.0),
|
||||||
],
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
onTap: () {
|
||||||
|
if (isFieldsFilled()) {
|
||||||
|
addPatientNoteAPICall();
|
||||||
|
Navigator.pop(context);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
buttonText: "Add Note",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -316,7 +318,7 @@ class _PatientConsultationState extends State<PatientConsultation> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ 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';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_input.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_file_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_layout/mih_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_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_floating_menu.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.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';
|
||||||
@@ -221,62 +221,64 @@ class _PatientDocumentsState extends State<PatientDocuments> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Upload File",
|
windowTitle: "Upload File",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
MIHFileField(
|
children: [
|
||||||
controller: selectedFileController,
|
MIHFileField(
|
||||||
hintText: "Select File",
|
controller: selectedFileController,
|
||||||
editable: false,
|
hintText: "Select File",
|
||||||
required: true,
|
editable: false,
|
||||||
onPressed: () async {
|
required: true,
|
||||||
FilePickerResult? result = await FilePicker.platform.pickFiles(
|
onPressed: () async {
|
||||||
type: FileType.custom,
|
FilePickerResult? result = await FilePicker.platform.pickFiles(
|
||||||
allowedExtensions: ['jpg', 'png', 'pdf'],
|
type: FileType.custom,
|
||||||
withData: true,
|
allowedExtensions: ['jpg', 'png', 'pdf'],
|
||||||
);
|
withData: true,
|
||||||
if (result == null) return;
|
);
|
||||||
final selectedFile = result.files.first;
|
if (result == null) return;
|
||||||
print("Selected file: $selectedFile");
|
final selectedFile = result.files.first;
|
||||||
setState(() {
|
print("Selected file: $selectedFile");
|
||||||
selected = selectedFile;
|
setState(() {
|
||||||
});
|
selected = selectedFile;
|
||||||
setState(() {
|
});
|
||||||
selectedFileController.text = selectedFile.name;
|
setState(() {
|
||||||
});
|
selectedFileController.text = selectedFile.name;
|
||||||
},
|
});
|
||||||
),
|
|
||||||
const SizedBox(height: 15),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Add File",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () {
|
|
||||||
if (isFileFieldsFilled()) {
|
|
||||||
submitDocUploadForm();
|
|
||||||
// uploadSelectedFile(selected);
|
|
||||||
Navigator.pop(context);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 15),
|
||||||
],
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Add File",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () {
|
||||||
|
if (isFileFieldsFilled()) {
|
||||||
|
submitDocUploadForm();
|
||||||
|
// uploadSelectedFile(selected);
|
||||||
|
Navigator.pop(context);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -285,44 +287,46 @@ class _PatientDocumentsState extends State<PatientDocuments> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Create Medical Certificate",
|
windowTitle: "Create Medical Certificate",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
Medcertinput(
|
children: [
|
||||||
startDateController: startDateController,
|
Medcertinput(
|
||||||
endDateTextController: endDateTextController,
|
startDateController: startDateController,
|
||||||
retDateTextController: retDateTextController,
|
endDateTextController: endDateTextController,
|
||||||
),
|
retDateTextController: retDateTextController,
|
||||||
const SizedBox(height: 15.0),
|
|
||||||
SizedBox(
|
|
||||||
width: 300,
|
|
||||||
height: 50,
|
|
||||||
child: MIHButton(
|
|
||||||
buttonText: "Generate",
|
|
||||||
buttonColor:
|
|
||||||
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
|
||||||
textColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
onTap: () async {
|
|
||||||
if (isMedCertFieldsFilled()) {
|
|
||||||
await generateMedCert();
|
|
||||||
//Navigator.pop(context);
|
|
||||||
} else {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
)
|
const SizedBox(height: 15.0),
|
||||||
],
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 50,
|
||||||
|
child: MIHButton(
|
||||||
|
buttonText: "Generate",
|
||||||
|
buttonColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
textColor:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onTap: () async {
|
||||||
|
if (isMedCertFieldsFilled()) {
|
||||||
|
await generateMedCert();
|
||||||
|
//Navigator.pop(context);
|
||||||
|
} else {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -331,10 +335,9 @@ class _PatientDocumentsState extends State<PatientDocuments> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MIHWindow(
|
builder: (context) => MihPackageWindow(
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
windowTitle: "Create Prescription",
|
windowTitle: "Create Prescription",
|
||||||
windowTools: const [],
|
|
||||||
onWindowTapClose: () {
|
onWindowTapClose: () {
|
||||||
medicineController.clear();
|
medicineController.clear();
|
||||||
quantityController.clear();
|
quantityController.clear();
|
||||||
@@ -344,22 +347,24 @@ class _PatientDocumentsState extends State<PatientDocuments> {
|
|||||||
noRepeatsController.clear();
|
noRepeatsController.clear();
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
windowBody: [
|
windowBody: Column(
|
||||||
PrescripInput(
|
children: [
|
||||||
medicineController: medicineController,
|
PrescripInput(
|
||||||
quantityController: quantityController,
|
medicineController: medicineController,
|
||||||
dosageController: dosageController,
|
quantityController: quantityController,
|
||||||
timesDailyController: timesDailyController,
|
dosageController: dosageController,
|
||||||
noDaysController: noDaysController,
|
timesDailyController: timesDailyController,
|
||||||
noRepeatsController: noRepeatsController,
|
noDaysController: noDaysController,
|
||||||
outputController: outputController,
|
noRepeatsController: noRepeatsController,
|
||||||
selectedPatient: widget.selectedPatient,
|
outputController: outputController,
|
||||||
signedInUser: widget.signedInUser,
|
selectedPatient: widget.selectedPatient,
|
||||||
business: widget.business,
|
signedInUser: widget.signedInUser,
|
||||||
businessUser: widget.businessUser,
|
business: widget.business,
|
||||||
env: env,
|
businessUser: widget.businessUser,
|
||||||
),
|
env: env,
|
||||||
],
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -594,7 +599,7 @@ class _PatientDocumentsState extends State<PatientDocuments> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ 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_package_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_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';
|
||||||
@@ -232,7 +232,7 @@ class _PatientInfoState extends State<PatientInfo> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihAppToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: true,
|
borderOn: true,
|
||||||
bodyItem: getBody(),
|
bodyItem: getBody(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app.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_app_action.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_app_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_packages/patient_profile/pat_profile/package_tools/patient_claim_or_statement.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/package_tools/patient_claim_or_statement.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/package_tools/patient_consultation.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/package_tools/patient_consultation.dart';
|
||||||
@@ -23,7 +23,7 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
int _selcetedIndex = 0;
|
int _selcetedIndex = 0;
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihApp(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
@@ -36,8 +36,8 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppAction getAction() {
|
MihPackageAction getAction() {
|
||||||
return MihAppAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -47,7 +47,7 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihAppTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.perm_identity)] = () {
|
temp[const Icon(Icons.perm_identity)] = () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -69,7 +69,7 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
_selcetedIndex = 3;
|
_selcetedIndex = 3;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
return MihAppTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex: _selcetedIndex,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class _MIHTestState extends State<MIHTest> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
secondaryActionButton: null,
|
secondaryActionButton: null,
|
||||||
body: MIHBody(
|
body: const MIHBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
bodyItems: [
|
bodyItems: [
|
||||||
// YoutubePlayer(
|
// YoutubePlayer(
|
||||||
@@ -64,18 +64,5 @@ class _MIHTestState extends State<MIHTest> {
|
|||||||
pullDownToRefresh: false,
|
pullDownToRefresh: false,
|
||||||
onPullDown: () async {},
|
onPullDown: () async {},
|
||||||
);
|
);
|
||||||
// return MIHWindow(
|
|
||||||
// fullscreen: false,
|
|
||||||
// windowTitle: "Test",
|
|
||||||
// windowTools: const [],
|
|
||||||
// onWindowTapClose: () {
|
|
||||||
// Navigator.pop(context);
|
|
||||||
// },
|
|
||||||
// windowBody: [
|
|
||||||
// YoutubePlayer(
|
|
||||||
// controller: videoController,
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user