chore: Follow up nicer dropdownbuttons

This commit is contained in:
krille-chan 2024-04-15 10:12:37 +02:00
parent 216d3bd403
commit 2a4fd6927c
No known key found for this signature in database
2 changed files with 66 additions and 48 deletions

View file

@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
class PermissionsListTile extends StatelessWidget { class PermissionsListTile extends StatelessWidget {
final String permissionKey; final String permissionKey;
final int permission; final int permission;
@ -72,7 +74,13 @@ class PermissionsListTile extends StatelessWidget {
subtitle: Text( subtitle: Text(
L10n.of(context)!.minimumPowerLevel(permission.toString()), L10n.of(context)!.minimumPowerLevel(permission.toString()),
), ),
trailing: DropdownButton<int>( trailing: Material(
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
color: Theme.of(context).colorScheme.onInverseSurface,
child: DropdownButton<int>(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
underline: const SizedBox.shrink(),
onChanged: canEdit ? onChanged : null, onChanged: canEdit ? onChanged : null,
value: {0, 50, 100}.contains(permission) ? permission : null, value: {0, 50, 100}.contains(permission) ? permission : null,
items: [ items: [
@ -94,6 +102,7 @@ class PermissionsListTile extends StatelessWidget {
), ),
], ],
), ),
),
); );
} }
} }

View file

@ -288,19 +288,27 @@ class UserBottomSheetView extends StatelessWidget {
.participantAction(UserBottomSheetAction.mention), .participantAction(UserBottomSheetAction.mention),
), ),
if (user != null) ...[ if (user != null) ...[
Divider(height: 1, color: Theme.of(context).dividerColor), Divider(color: Theme.of(context).dividerColor),
ListTile( ListTile(
title: Text( title: Text(
'${L10n.of(context)!.userRole} (${user.powerLevel})', '${L10n.of(context)!.userRole} (${user.powerLevel})',
), ),
leading: const Icon(Icons.person_outlined), leading: const Icon(Icons.person_outlined),
trailing: DropdownButton<int>( trailing: Material(
borderRadius:
BorderRadius.circular(AppConfig.borderRadius / 2),
color: Theme.of(context).colorScheme.onInverseSurface,
child: DropdownButton<int>(
onChanged: user.canChangePowerLevel onChanged: user.canChangePowerLevel
? controller.setPowerLevel ? controller.setPowerLevel
: null, : null,
value: {0, 50, 100}.contains(user.powerLevel) value: {0, 50, 100}.contains(user.powerLevel)
? user.powerLevel ? user.powerLevel
: null, : null,
padding: const EdgeInsets.symmetric(horizontal: 8.0),
borderRadius:
BorderRadius.circular(AppConfig.borderRadius / 2),
underline: const SizedBox.shrink(),
items: [ items: [
DropdownMenuItem( DropdownMenuItem(
value: 0, value: 0,
@ -321,7 +329,8 @@ class UserBottomSheetView extends StatelessWidget {
], ],
), ),
), ),
Divider(height: 1, color: Theme.of(context).dividerColor), ),
Divider(color: Theme.of(context).dividerColor),
], ],
if (user != null && user.canKick) if (user != null && user.canKick)
ListTile( ListTile(