mirror of
https://github.com/krille-chan/fluffychat
synced 2024-10-05 17:52:45 +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) {
|
if (room == null) {
|
||||||
return Center(child: Text(L10n.of(context)!.noRoomsFound));
|
return Center(child: Text(L10n.of(context)!.noRoomsFound));
|
||||||
}
|
}
|
||||||
final powerLevelsContent = Map<String, dynamic>.from(
|
final powerLevelsContent = Map<String, Object?>.from(
|
||||||
room.getState(EventTypes.RoomPowerLevels)!.content,
|
room.getState(EventTypes.RoomPowerLevels)?.content ?? {},
|
||||||
);
|
);
|
||||||
final powerLevels = Map<String, dynamic>.from(powerLevelsContent)
|
final powerLevels = Map<String, dynamic>.from(powerLevelsContent)
|
||||||
..removeWhere((k, v) => v is! int);
|
..removeWhere((k, v) => v is! int);
|
||||||
final eventsPowerLevels =
|
final eventsPowerLevels = Map<String, int?>.from(
|
||||||
Map<String, dynamic>.from(powerLevelsContent['events'] ?? {})
|
powerLevelsContent.tryGetMap<String, int?>('events') ?? {},
|
||||||
..removeWhere((k, v) => v is! int);
|
)..removeWhere((k, v) => v is! int);
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Column(
|
Column(
|
||||||
|
@ -67,9 +67,12 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
||||||
Builder(
|
Builder(
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
const key = 'rooms';
|
const key = 'rooms';
|
||||||
final int value = powerLevelsContent
|
final value = powerLevelsContent
|
||||||
.containsKey('notifications')
|
.containsKey('notifications')
|
||||||
? powerLevelsContent['notifications']['rooms'] ?? 0
|
? powerLevelsContent
|
||||||
|
.tryGetMap<String, Object?>('notifications')
|
||||||
|
?.tryGet<int>('rooms') ??
|
||||||
|
0
|
||||||
: 0;
|
: 0;
|
||||||
return PermissionsListTile(
|
return PermissionsListTile(
|
||||||
permissionKey: key,
|
permissionKey: key,
|
||||||
|
@ -98,11 +101,11 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
||||||
PermissionsListTile(
|
PermissionsListTile(
|
||||||
permissionKey: entry.key,
|
permissionKey: entry.key,
|
||||||
category: 'events',
|
category: 'events',
|
||||||
permission: entry.value,
|
permission: entry.value ?? 0,
|
||||||
onTap: () => controller.editPowerLevel(
|
onTap: () => controller.editPowerLevel(
|
||||||
context,
|
context,
|
||||||
entry.key,
|
entry.key,
|
||||||
entry.value,
|
entry.value ?? 0,
|
||||||
category: 'events',
|
category: 'events',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue