Compare commits

..
4 changed files with 73 additions and 62 deletions

View file

@ -130,7 +130,7 @@ class SettingsSectionsController
.watch(ClientController.provider.notifier) .watch(ClientController.provider.notifier)
.setAccountData( .setAccountData(
.new( .new(
type: InvitePermissionConfig.key, type: AccountData.invitePermissionConfigKey,
content: InvitePermissionConfig( content: InvitePermissionConfig(
defaultAction: value, defaultAction: value,
), ),

View file

@ -15,17 +15,21 @@ abstract class AccountData with _$AccountData {
IList<RecentEmoji> recentEmoji, IList<RecentEmoji> recentEmoji,
) => {"recent_emoji": recentEmoji.map((emoji) => emoji.toJson()).toList()}; ) => {"recent_emoji": recentEmoji.map((emoji) => emoji.toJson()).toList()};
static const invitePermissionConfigKey = "m.invite_permission_config";
static const directKey = "m.direct";
static const recentEmojiKey = "m.recent_emoji";
const factory AccountData({ const factory AccountData({
@JsonKey(name: InvitePermissionConfig.key) @JsonKey(name: AccountData.invitePermissionConfigKey)
@Default(InvitePermissionConfig()) @Default(InvitePermissionConfig())
InvitePermissionConfig invitePermissionConfig, InvitePermissionConfig invitePermissionConfig,
@JsonKey(name: "m.direct") @JsonKey(name: AccountData.directKey)
@Default(IMap.empty()) @Default(IMap.empty())
IMap<String, IList<String>> directMessages, IMap<String, IList<String>> directMessages,
@JsonKey( @JsonKey(
name: "m.recent_emoji", name: AccountData.recentEmojiKey,
readValue: AccountData.readRecentEmojiValue, readValue: AccountData.readRecentEmojiValue,
toJson: AccountData.recentEmojiToJson, toJson: AccountData.recentEmojiToJson,
) )
@ -39,8 +43,6 @@ abstract class AccountData with _$AccountData {
@freezed @freezed
abstract class InvitePermissionConfig with _$InvitePermissionConfig { abstract class InvitePermissionConfig with _$InvitePermissionConfig {
static const key = "m.invite_permission_config";
const factory InvitePermissionConfig({ const factory InvitePermissionConfig({
@JsonKey(unknownEnumValue: DefaultInviteAction.allow) @JsonKey(unknownEnumValue: DefaultInviteAction.allow)
@Default(DefaultInviteAction.allow) @Default(DefaultInviteAction.allow)

View file

@ -60,7 +60,9 @@ class SelectServerPage extends HookConsumerWidget {
AppLinks().uriLinkStream.listen((encodedUri) async { AppLinks().uriLinkStream.listen((encodedUri) async {
final state = encodedUri.queryParameters["state"]; final state = encodedUri.queryParameters["state"];
if (state != codeResponse.state) return; if (state != codeResponse.state) return;
isLoading.value = true;
try {
final code = encodedUri.queryParameters["code"]; final code = encodedUri.queryParameters["code"];
if (code != null) { if (code != null) {
@ -82,6 +84,9 @@ class SelectServerPage extends HookConsumerWidget {
) )
.onError(showError); .onError(showError);
} }
} finally {
isLoading.value = false;
}
}); });
} }
} }

View file

@ -40,6 +40,7 @@ class RoomAppbar extends ConsumerWidget implements PreferredSizeWidget {
constraints: .loose(.fromWidth(400)), constraints: .loose(.fromWidth(400)),
child: Padding( child: Padding(
padding: .all(24), padding: .all(24),
child: SingleChildScrollView(
child: Column( child: Column(
mainAxisSize: .min, mainAxisSize: .min,
crossAxisAlignment: .start, crossAxisAlignment: .start,
@ -66,7 +67,9 @@ class RoomAppbar extends ConsumerWidget implements PreferredSizeWidget {
room.metadata?.name ?? "Unnamed Room", room.metadata?.name ?? "Unnamed Room",
overflow: .ellipsis, overflow: .ellipsis,
maxLines: 3, maxLines: 3,
style: Theme.of(context).textTheme.headlineSmall, style: Theme.of(
context,
).textTheme.headlineSmall,
), ),
), ),
], ],
@ -86,6 +89,7 @@ class RoomAppbar extends ConsumerWidget implements PreferredSizeWidget {
), ),
), ),
), ),
),
leading: isDesktop leading: isDesktop
? room == null ? room == null
? null ? null