improvements

design_3.0_cx_module
Sikander Saleem 2 months ago
parent 1f074b33e5
commit e3857149e7

@ -66,7 +66,8 @@ class ChatApiClient {
}
Future<ChatParticipantModel?> loadParticipants(int moduleId, int referenceId, String? assigneeEmployeeNumber) async {
Response response = await ApiClient().getJsonForResponse("${URLs.chatHubUrlApi}/chat/context/$moduleId/$referenceId?assigneeEmployeeNumber=$assigneeEmployeeNumber", token: chatLoginResponse!.token);
Response response =
await ApiClient().getJsonForResponse("${URLs.chatHubUrlApi}/chat/context/$moduleId/$referenceId?assigneeEmployeeNumber=$assigneeEmployeeNumber", token: chatLoginResponse!.token);
if (!kReleaseMode) {
// logger.i("login-res: " + response.body);
@ -93,18 +94,18 @@ class ChatApiClient {
Response response = await ApiClient().postJsonForResponse(
"${URLs.chatHubUrlApi}/UserChatHistory/GetUserChatHistory/$myId/$otherId/0", {"moduleCode": moduleId.toString(), "referenceId": referenceId.toString()},
token: chatLoginResponse!.token);
// try {
if (response.statusCode == 200) {
List data = jsonDecode(response.body);
return data.map((elemet) => SingleUserChatModel.fromJson(elemet)).toList();
try {
if (response.statusCode == 200) {
List data = jsonDecode(response.body);
return data.map((elemet) => SingleUserChatModel.fromJson(elemet)).toList();
// return UserChatHistoryModel.fromJson(jsonDecode(response.body));
} else {
// return UserChatHistoryModel.fromJson(jsonDecode(response.body));
} else {
return [];
}
} catch (ex) {
return [];
}
// } catch (ex) {
// return [];
// }
}
/* Future<ChatResponse?> sendTextMessage(String message, int conversationId) async {

@ -34,10 +34,12 @@ enum ChatState { idle, voiceRecordingStarted, voiceRecordingCompleted }
class ChatPage extends StatefulWidget {
int moduleId;
int requestId;
String assigneeEmployeeNumber;
String myEmployeeID;
String title;
bool readOnly;
ChatPage({Key? key, required this.moduleId, required this.requestId, this.title = "Chat", this.readOnly = false}) : super(key: key);
ChatPage({Key? key, required this.moduleId, required this.requestId, this.title = "Chat", this.readOnly = false, this.assigneeEmployeeNumber = "", this.myEmployeeID = ""}) : super(key: key);
@override
_ChatPageState createState() {
@ -72,6 +74,18 @@ class _ChatPageState extends State<ChatPage> {
}
void loadChatHistory() {
// // String assigneeEmployeeNumber = Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder?.data?.assignedEmployee?.employeeId ?? "";
// // String myEmployeeId = context.userProvider.user!.username!;
// //
//
// receiver = context.userProvider.isNurse ? widget.assigneeEmployeeNumber : widget.myEmployeeID;
//
// Provider.of<ChatProvider>(context, listen: false).connectToHub(widget.moduleId, widget.requestId, widget.myEmployeeID, widget.assigneeEmployeeNumber);
//
// receiver = context.userProvider.isNurse
// ? assigneeEmployeeNumber
// :myEmployeeId;
String assigneeEmployeeNumber = Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder?.data?.assignedEmployee?.employeeId ?? "";
String myEmployeeId = context.userProvider.user!.username!;

@ -0,0 +1,73 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'chat_page.dart';
import 'chat_provider.dart';
class ChatWidget extends StatefulWidget {
int moduleId;
int requestId;
String assigneeEmployeeNumber;
String myEmployeeID;
bool isReadOnly;
String title;
ChatWidget({Key? key, this.isReadOnly = false, this.title = "Chat", required this.moduleId, required this.requestId, required this.assigneeEmployeeNumber, required this.myEmployeeID})
: super(key: key);
@override
_ChatWidgetState createState() {
return _ChatWidgetState();
}
}
class _ChatWidgetState extends State<ChatWidget> {
@override
void initState() {
super.initState();
Provider.of<ChatProvider>(context, listen: false).reset();
getChatToken();
}
void getChatToken() {
ChatProvider cProvider = Provider.of<ChatProvider>(context, listen: false);
if (cProvider.chatLoginResponse != null && cProvider.referenceID == widget.requestId) return;
// String assigneeEmployeeNumber = Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder?.data?.assignedEmployee?.employeeId ?? "";
String myEmployeeId = widget.myEmployeeID;
String receiver = context.userProvider.isNurse ? widget.assigneeEmployeeNumber : widget.myEmployeeID;
cProvider.getUserAutoLoginTokenSilent(widget.moduleId, widget.requestId, widget.title, myEmployeeId, receiver);
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Consumer<ChatProvider>(builder: (pContext, requestProvider, _) {
return IconButton(
icon: const Icon(Icons.chat_bubble),
onPressed: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => ChatPage(
moduleId: widget.moduleId,
requestId: widget.requestId,
title: widget.title,
readOnly: widget.isReadOnly,
assigneeEmployeeNumber: widget.assigneeEmployeeNumber,
myEmployeeID: widget.myEmployeeID,
)));
},
).toShimmer(context: context, isShow: requestProvider.chatLoginTokenLoading, radius: 30, height: 30, width: 30);
});
;
}
}

@ -48,7 +48,7 @@ class ChatFilePicker extends StatelessWidget {
if (pickedFile != null) {
CroppedFile? croppedFile = await ImageCropper().cropImage(
sourcePath: pickedFile.path,
aspectRatio: CropAspectRatio(ratioX: 1, ratioY: 1),
// aspectRatio: CropAspectRatio(ratioX: 1, ratioY: 1),
uiSettings: [
AndroidUiSettings(
toolbarTitle: 'ATOMS',

@ -11,6 +11,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/cx_module/chat/chat_widget.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/views/pages/user/gas_refill/update_gas_refill_request.dart';
import 'package:test_sa/views/widgets/images/files_list.dart';
@ -55,7 +56,17 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
gasRefillProvider = Provider.of<GasRefillProvider>(context);
return Scaffold(
appBar: DefaultAppBar(title: context.translation.gasRefillDetails),
appBar: DefaultAppBar(
title: context.translation.gasRefillDetails,
// actions: [
// if (context.userProvider.isEngineer || context.userProvider.isNurse) ...[
// if (context.userProvider.isEngineer)
// ChatWidget(moduleId: 4, requestId: 1, assigneeEmployeeNumber: "123456", myEmployeeID: "1234")
// else
// ChatWidget(moduleId: 4, requestId: 1, assigneeEmployeeNumber: "123456", myEmployeeID: "123456")
// ]
// ],
),
key: _scaffoldKey,
body: FutureBuilder(
future: gasRefillProvider.getGasRefillObjectById(widget.model.id!),

Loading…
Cancel
Save