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.
74 lines
2.5 KiB
Dart
74 lines
2.5 KiB
Dart
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);
|
|
});
|
|
;
|
|
}
|
|
}
|