mirror of
https://github.com/krille-chan/fluffychat
synced 2024-10-05 13:52:46 +00:00
fix: Make chat permission settings null and type safe
This commit is contained in:
parent
02ceddf9e8
commit
f6c6898fb6
1 changed files with 12 additions and 9 deletions
|
@ -31,14 +31,14 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
|||
if (room == null) {
|
||||
return Center(child: Text(L10n.of(context)!.noRoomsFound));
|
||||
}
|
||||
final powerLevelsContent = Map<String, dynamic>.from(
|
||||
room.getState(EventTypes.RoomPowerLevels)!.content,
|
||||
final powerLevelsContent = Map<String, Object?>.from(
|
||||
room.getState(EventTypes.RoomPowerLevels)?.content ?? {},
|
||||
);
|
||||
final powerLevels = Map<String, dynamic>.from(powerLevelsContent)
|
||||
..removeWhere((k, v) => v is! int);
|
||||
final eventsPowerLevels =
|
||||
Map<String, dynamic>.from(powerLevelsContent['events'] ?? {})
|
||||
..removeWhere((k, v) => v is! int);
|
||||
final eventsPowerLevels = Map<String, int?>.from(
|
||||
powerLevelsContent.tryGetMap<String, int?>('events') ?? {},
|
||||
)..removeWhere((k, v) => v is! int);
|
||||
return Column(
|
||||
children: [
|
||||
Column(
|
||||
|
@ -67,9 +67,12 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
|||
Builder(
|
||||
builder: (context) {
|
||||
const key = 'rooms';
|
||||
final int value = powerLevelsContent
|
||||
final value = powerLevelsContent
|
||||
.containsKey('notifications')
|
||||
? powerLevelsContent['notifications']['rooms'] ?? 0
|
||||
? powerLevelsContent
|
||||
.tryGetMap<String, Object?>('notifications')
|
||||
?.tryGet<int>('rooms') ??
|
||||
0
|
||||
: 0;
|
||||
return PermissionsListTile(
|
||||
permissionKey: key,
|
||||
|
@ -98,11 +101,11 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
|||
PermissionsListTile(
|
||||
permissionKey: entry.key,
|
||||
category: 'events',
|
||||
permission: entry.value,
|
||||
permission: entry.value ?? 0,
|
||||
onTap: () => controller.editPowerLevel(
|
||||
context,
|
||||
entry.key,
|
||||
entry.value,
|
||||
entry.value ?? 0,
|
||||
category: 'events',
|
||||
),
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue