Skip to content

Commit

Permalink
Added Change Role option in prebuilt
Browse files Browse the repository at this point in the history
  • Loading branch information
Decoder07 committed Jul 22, 2024
1 parent d3437e9 commit 7de4906
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 235 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import 'package:hmssdk_flutter/hmssdk_flutter.dart';

///Project imports
import 'package:hms_room_kit/hms_room_kit.dart';
import 'package:hms_room_kit/src/widgets/bottom_sheets/change_role_bottom_sheet.dart';
import 'package:hms_room_kit/src/widgets/toasts/hms_toasts_type.dart';
import 'package:hms_room_kit/src/layout_api/hms_room_layout.dart';
import 'package:hms_room_kit/src/model/participant_store.dart';
Expand Down Expand Up @@ -177,6 +178,34 @@ class _ParticipantsBottomSheetState extends State<ParticipantsBottomSheet> {
break;
case 5:

///This is called when someone clicks on switch Role
Navigator.pop(context);
showModalBottomSheet(
isScrollControlled: true,
backgroundColor: HMSThemeColors.surfaceDim,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16)),
),
context: context,
builder: (ctx) => ChangeNotifierProvider.value(
value: meetingStore,
child: Padding(
padding: EdgeInsets.only(
bottom: MediaQuery.of(ctx).viewInsets.bottom),
child: ChangeRoleBottomSheet(
peerName: peer.name,
roles: meetingStore.roles,
peer: peer,
changeRole: (newRole, isForceChange) =>
meetingStore.changeRoleOfPeer(
peer: peer,
roleName: newRole,
forceChange: true)))),
);
case 6:

///This is called when someone clicks on remove Participant
meetingStore.removePeerFromRoom(peer);
break;
Expand Down Expand Up @@ -299,9 +328,30 @@ class _ParticipantsBottomSheetState extends State<ParticipantsBottomSheet> {
),
]),
),
if (removePeerPermission)
if (changeRolePermission)
PopupMenuItem(
value: 5,
child: Row(children: [
SvgPicture.asset(
"packages/hms_room_kit/lib/src/assets/icons/peer_settings.svg",
colorFilter: ColorFilter.mode(
HMSThemeColors.onSurfaceHighEmphasis,
BlendMode.srcIn)),
const SizedBox(
width: 8,
),
HMSTitleText(
text: "Switch Role",
textColor: HMSThemeColors.onSurfaceHighEmphasis,
fontSize: 14,
lineHeight: 20,
letterSpacing: 0.1,
),
]),
),
if (removePeerPermission)
PopupMenuItem(
value: 6,
child: Row(children: [
SvgPicture.asset(
"packages/hms_room_kit/lib/src/assets/icons/peer_remove.svg",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:hms_room_kit/hms_room_kit.dart';
import 'package:hms_room_kit/src/meeting/meeting_store.dart';
import 'package:hms_room_kit/src/model/peer_track_node.dart';
import 'package:hms_room_kit/src/widgets/bottom_sheets/change_role_bottom_sheet.dart';
import 'package:hms_room_kit/src/widgets/common_widgets/hms_cross_button.dart';
import 'package:hms_room_kit/src/widgets/common_widgets/hms_subheading_text.dart';
import 'package:hmssdk_flutter/hmssdk_flutter.dart';
Expand Down Expand Up @@ -220,6 +221,55 @@ class _RemotePeerBottomSheetState extends State<RemotePeerBottomSheet> {
textColor: widget.peerTrackNode.track == null
? HMSThemeColors.onSurfaceLowEmphasis
: HMSThemeColors.onSurfaceHighEmphasis)),
if (widget.meetingStore.localPeer?.role.permissions
.changeRole ??
false)
ListTile(
horizontalTitleGap: 2,
onTap: () async {
Navigator.pop(context);
showModalBottomSheet(
isScrollControlled: true,
backgroundColor: HMSThemeColors.surfaceDim,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16)),
),
context: context,
builder: (ctx) => ChangeNotifierProvider.value(
value: widget.meetingStore,
child: Padding(
padding: EdgeInsets.only(
bottom: MediaQuery.of(ctx)
.viewInsets
.bottom),
child: ChangeRoleBottomSheet(
peerName:
widget.peerTrackNode.peer.name,
roles: widget.meetingStore.roles,
peer: widget.peerTrackNode.peer,
changeRole: (newRole, isForceChange) =>
widget.meetingStore
.changeRoleOfPeer(
peer: widget
.peerTrackNode.peer,
roleName: newRole,
forceChange:
isForceChange)))),
);
},
contentPadding: EdgeInsets.zero,
leading: SvgPicture.asset(
"packages/hms_room_kit/lib/src/assets/icons/peer_settings.svg",
semanticsLabel: "fl_change_role",
colorFilter: ColorFilter.mode(
HMSThemeColors.onSurfaceHighEmphasis,
BlendMode.srcIn),
),
title: HMSSubheadingText(
text: "Switch Role",
textColor: HMSThemeColors.onSurfaceHighEmphasis)),
// ListTile(
// horizontalTitleGap: 2,
// onTap: () async {
Expand Down
Loading

0 comments on commit 7de4906

Please sign in to comment.