add screen and tools

This commit is contained in:
2025-01-22 11:24:05 +02:00
parent f85be93207
commit abdac7ecb3
2 changed files with 249 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import 'package:flutter/material.dart';
class AiChat extends StatefulWidget {
const AiChat({super.key});
@override
State<AiChat> createState() => _AiChatState();
}
class _AiChatState extends State<AiChat> {
final TextEditingController _chatMessageController = TextEditingController();
Widget getChatBody(double height) {
return Container(
// height: height,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"Mzansi AI Chat",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
),
],
),
Divider(
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
const SizedBox(height: 10),
Container(
height: height - 300,
color: Colors.black,
),
const SizedBox(height: 10),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: SizedBox(
height: 50,
child: MIHTextField(
controller: _chatMessageController,
hintText: "Ask Mzansi AI",
editable: true,
required: true,
),
),
),
IconButton(
onPressed: () {
print("Sent Message");
},
icon: Icon(Icons.send),
),
],
),
],
),
);
}
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
return getChatBody(height);
}
}

View File

@@ -0,0 +1,174 @@
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_header.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_layout_builder.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/ai_chat.dart';
import 'package:flutter/material.dart';
class MzansiAi extends StatefulWidget {
const MzansiAi({super.key});
@override
State<MzansiAi> createState() => _MzansiAiState();
}
class _MzansiAiState extends State<MzansiAi> {
int _selectedIndex = 0;
MIHAction getActionButton() {
return MIHAction(
icon: const Icon(Icons.arrow_back),
iconSize: 35,
onTap: () {
Navigator.of(context).pushNamedAndRemoveUntil(
'/',
arguments: AuthArguments(true, false),
(route) => false,
);
},
);
}
MIHHeader getHeader() {
return const MIHHeader(
headerAlignment: MainAxisAlignment.center,
headerItems: [
Text(
"",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25,
),
),
],
);
}
MIHHeader getSecAction() {
return MIHHeader(
headerAlignment: MainAxisAlignment.end,
headerItems: [
//============ Patient Details ================
Visibility(
visible: _selectedIndex != 0,
child: IconButton(
onPressed: () {
setState(() {
_selectedIndex = 0;
});
},
icon: const Icon(
Icons.chat_bubble,
size: 35,
),
),
),
Visibility(
visible: _selectedIndex == 0,
child: IconButton.filled(
iconSize: 35,
onPressed: () {
setState(() {
_selectedIndex = 0;
});
},
icon: const Icon(
Icons.chat_bubble,
),
),
),
//============ Patient Notes ================
// Visibility(
// visible: _selectedIndex != 1,
// child: IconButton(
// onPressed: () {
// setState(() {
// _selectedIndex = 1;
// });
// },
// icon: const Icon(
// Icons.article_outlined,
// size: 35,
// ),
// ),
// ),
// Visibility(
// visible: _selectedIndex == 1,
// child: IconButton.filled(
// onPressed: () {
// setState(() {
// _selectedIndex = 1;
// });
// },
// icon: const Icon(
// Icons.article_outlined,
// size: 35,
// ),
// ),
// ),
// //============ Patient Files ================
// Visibility(
// visible: _selectedIndex != 2,
// child: IconButton(
// onPressed: () {
// setState(() {
// _selectedIndex = 2;
// });
// },
// icon: const Icon(
// Icons.file_present,
// size: 35,
// ),
// ),
// ),
// Visibility(
// visible: _selectedIndex == 2,
// child: IconButton.filled(
// onPressed: () {
// setState(() {
// _selectedIndex = 2;
// });
// },
// icon: const Icon(
// Icons.file_present,
// size: 35,
// ),
// ),
// ),
],
);
}
MIHBody getBody() {
return MIHBody(
borderOn: true,
bodyItems: [showSelection(_selectedIndex)],
);
}
Widget showSelection(int index) {
if (index == 0) {
return const AiChat();
} else if (index == 1) {
return const Placeholder();
} else {
return const Placeholder();
}
}
@override
Widget build(BuildContext context) {
return MIHLayoutBuilder(
actionButton: getActionButton(),
secondaryActionButton: getSecAction(),
header: getHeader(),
body: getBody(),
actionDrawer: null,
secondaryActionDrawer: null,
bottomNavBar: null,
pullDownToRefresh: false,
onPullDown: () async {},
);
}
}