You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/modules/cx_module/chat/chat_widget.dart

74 lines
2.5 KiB
Dart

2 months ago
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);
});
;
}
}