addParticipants method
Widget
addParticipants(
- BuildContext context,
- ContactItemStyle style,
- TextStyle noData,
- CopyMeetLinkStyle copyMeetLinkStyle,
Implementation
Widget addParticipants(BuildContext context, ContactItemStyle style,
TextStyle noData, CopyMeetLinkStyle copyMeetLinkStyle) {
return Obx(() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(top: 10.0, left: 10.0, bottom: 5.0),
child: Text(
getTranslated("meetLink"),
style: copyMeetLinkStyle.titleTextStyle,
),
),
Row(
children: [
Container(
width: 50,
height: 50,
margin: const EdgeInsets.all(10.0),
decoration: copyMeetLinkStyle.leadingStyle.iconDecoration,
child: Center(
child: Icon(
Icons.link,
color: copyMeetLinkStyle.leadingStyle.iconColor,
size: 18,
),
),
),
Expanded(
child: Text(
controller.meetLink.value,
style: copyMeetLinkStyle.linkTextStyle,
)),
IconButton(
onPressed: () {
if (controller.meetLink.value.isEmpty) return;
Clipboard.setData(ClipboardData(
text:
Constants.webChatLogin + controller.meetLink.value));
toToast(getTranslated("linkCopied"));
},
icon: AppUtils.svgIcon(
icon: copyIcon,
fit: BoxFit.contain,
colorFilter: ColorFilter.mode(
copyMeetLinkStyle.copyIconColor, BlendMode.srcIn)),
),
],
),
const AppDivider(),
Expanded(
child: Stack(
children: [
Visibility(
visible: !controller.isPageLoading.value &&
controller.usersList.isEmpty,
child: Center(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 20.0),
child: Text(
getTranslated("noContactsFound"),
style: noData,
),
),
)),
controller.isPageLoading.value
? const Center(
child: Padding(
padding: EdgeInsets.all(16.0),
child: CircularProgressIndicator(),
))
: const Offstage(),
Column(
children: [
controller.isPageLoading.value
? Expanded(child: Container())
: Expanded(
child: ListView.builder(
itemCount: controller.scrollable.value
? controller.usersList.length +
(controller.groupId.isEmpty ? 1 : 0)
: controller.usersList.length,
controller: controller.scrollController,
physics: const AlwaysScrollableScrollPhysics(),
itemBuilder: (BuildContext context, int index) {
if (index >= controller.usersList.length &&
controller.usersList.isNotEmpty &&
controller.groupId.isEmpty) {
return const Center(
child: CircularProgressIndicator());
} else if (controller.usersList.isNotEmpty) {
var item = controller.usersList[index];
return ContactItem(
item: item,
onAvatarClick: () {
// controller.showProfilePopup(item.obs);
},
spanTxt: controller.searchQuery.text,
isCheckBoxVisible:
controller.isCheckBoxVisible,
checkValue: controller
.selectedUsersJIDList
.contains(item.jid),
onCheckBoxChange: (value) {
controller.onListItemPressed(item);
},
onListItemPressed: () {
controller.onListItemPressed(item);
},
contactItemStyle: style,
);
} else {
return const Offstage();
}
}),
),
Obx(() {
return controller.groupCallMembersCount.value > 0
? InkWell(
onTap: () {
controller.makeCall();
},
child: Container(
height: 50,
decoration: AppStyleConfig
.addParticipantsPageStyle
.buttonDecoration,
/*decoration: const BoxDecoration(
color: buttonBgColor,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(2), topRight: Radius.circular(2))
),*/
child: Center(
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
AppUtils.svgIcon(
icon: addParticipantsInCall,
colorFilter: ColorFilter.mode(
AppStyleConfig
.addParticipantsPageStyle
.buttonIconColor,
BlendMode.srcIn),
),
const SizedBox(
width: 8,
),
Text(
getTranslated(
"selectedParticipantsToCall")
.replaceFirst("%d",
"${(controller.groupCallMembersCount.value)}"),
style: AppStyleConfig
.addParticipantsPageStyle
.buttonTextStyle,
// style: const TextStyle(color: Colors.white, fontSize: 14, fontWeight: FontWeight.w500, fontFamily: 'sf_ui'),
)
],
),
)),
)
: const Offstage();
})
],
)
],
),
),
],
);
});
}