1
0
Fork 0
forked from Nexus/nexus

treewide: use dot shorthands where possible

Now this feature is stable, we should use it. I might have missed some usecases, but these can be added in future commits.
This commit is contained in:
Henry Hiles 2026-06-02 11:53:14 -04:00
commit d2ec5f035b
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
67 changed files with 391 additions and 534 deletions

View file

@ -4,8 +4,6 @@ import "package:flutter_hooks/flutter_hooks.dart";
import "package:fluttertagger/fluttertagger.dart";
import "package:hooks_riverpod/hooks_riverpod.dart";
import "package:nexus/controllers/power_level_controller.dart";
import "package:nexus/models/configs/power_level_config.dart";
import "package:nexus/models/content/content.dart";
import "package:nexus/models/event.dart";
import "package:nexus/models/relation_type.dart";
import "package:nexus/widgets/composer/mention_overlay.dart";
@ -42,7 +40,7 @@ class Composer extends HookConsumerWidget {
final shouldMention = useState(true);
final query = useState("");
if (relationType == RelationType.edit && controller.value.text.isEmpty) {
if (relationType == .edit && controller.value.text.isEmpty) {
controller.value.text = relatedEvent?.localContent?.editSource ?? "";
}
@ -51,7 +49,7 @@ class Composer extends HookConsumerWidget {
onSend(
controller.value.formattedText,
shouldMention: shouldMention.value,
tags: controller.value.tags.toIList(),
tags: .new(controller.value.tags),
);
onDismiss();
@ -60,13 +58,13 @@ class Composer extends HookConsumerWidget {
final style = TextStyle(
color: theme.colorScheme.primary,
fontWeight: FontWeight.bold,
fontWeight: .bold,
);
return Padding(
padding: EdgeInsetsGeometry.all(12),
padding: .all(12),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(12)),
borderRadius: .all(.circular(12)),
child: Column(
children: [
RelationPreview(
@ -79,17 +77,14 @@ class Composer extends HookConsumerWidget {
),
Container(
color: theme.colorScheme.surfaceContainerHighest,
padding: EdgeInsets.symmetric(horizontal: 8),
padding: .symmetric(horizontal: 8),
child: Row(
spacing: 8,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: .center,
children:
ref.watch(
PowerLevelController.provider(
PowerLevelConfig(
eventType: EventType.message,
roomId: roomId,
),
.new(eventType: .message, roomId: roomId),
),
)
? [
@ -124,7 +119,7 @@ class Composer extends HookConsumerWidget {
),
Expanded(
child: FlutterTagger(
triggerStrategy: TriggerStrategy.eager,
triggerStrategy: .eager,
overlay: MentionOverlay(
roomId,
query: query.value,
@ -144,16 +139,16 @@ class Composer extends HookConsumerWidget {
maxLines: 12,
minLines: 1,
autofocus: true,
decoration: InputDecoration(
decoration: .new(
hintText: "Your message here...",
border: InputBorder.none,
border: .none,
),
controller: controller.value,
key: key,
onSubmitted: (_) => send(),
// Don't defocus on submit
onEditingComplete: () {},
textInputAction: TextInputAction.done,
textInputAction: .done,
focusNode: node,
),
),
@ -167,10 +162,7 @@ class Composer extends HookConsumerWidget {
: [
Expanded(
child: Padding(
padding: EdgeInsetsGeometry.symmetric(
horizontal: 8,
vertical: 12,
),
padding: .symmetric(horizontal: 8, vertical: 12),
child: Text(
"You don't have permission to send messages in this room...",
),

View file

@ -5,9 +5,7 @@ import "package:nexus/controllers/rooms_controller.dart";
import "package:nexus/controllers/via_controller.dart";
import "package:nexus/helpers/extensions/better_when.dart";
import "package:nexus/helpers/extensions/get_localpart.dart";
import "package:nexus/models/configs/members_by_status_config.dart";
import "package:nexus/models/content/membership.dart";
import "package:nexus/models/membership_status.dart";
import "package:nexus/widgets/avatar_or_hash.dart";
import "package:nexus/widgets/loading.dart";
@ -29,21 +27,18 @@ class MentionOverlay extends ConsumerWidget {
final rooms = ref.watch(RoomsController.provider);
return Padding(
padding: EdgeInsets.all(8),
padding: .all(8),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(12)),
borderRadius: .all(.circular(12)),
child: Container(
color: Theme.of(context).colorScheme.surfaceContainerHigh,
padding: EdgeInsets.all(8),
padding: .all(8),
child: switch (triggerCharacter) {
"@" =>
ref
.watch(
MembersByStatusController.provider(
MembersByStatusConfig(
roomId: roomId,
status: MembershipStatus.join,
),
.new(roomId: roomId, status: .join),
),
)
.betterWhen(

View file

@ -27,38 +27,34 @@ class RelationPreview extends ConsumerWidget {
return Container(
color: theme.colorScheme.surfaceContainerHigh,
padding: EdgeInsets.symmetric(horizontal: 12),
padding: .symmetric(horizontal: 12),
child: Row(
spacing: 8,
children: [
if (relationType == RelationType.edit)
Text(
"Editing message:",
style: TextStyle(fontWeight: FontWeight.bold),
),
if (relationType == .edit)
Text("Editing message:", style: .new(fontWeight: .bold)),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(vertical: 8),
padding: .symmetric(vertical: 8),
child: EventPreview(relatedEvent!),
),
),
if (relationType == RelationType.reply)
if (relationType == .reply)
TextButton(
onPressed: toggleShouldMention,
child: Text(
shouldMention ? "@On" : "@Off",
style: TextStyle(
fontWeight: FontWeight.w900,
fontWeight: .w900,
color: shouldMention ? null : Theme.of(context).disabledColor,
),
),
),
IconButton(
tooltip:
"Cancel ${relationType == RelationType.edit ? "edit" : "reply"}",
tooltip: "Cancel ${relationType == .edit ? "edit" : "reply"}",
onPressed: onDismiss,
icon: const Icon(Icons.close),
iconSize: 20,