forked from Henry-Hiles/nexus
lazy load memberships
This commit is contained in:
parent
8b056d8ed1
commit
9054b6b357
14 changed files with 231 additions and 197 deletions
|
|
@ -22,6 +22,10 @@ class Html extends ConsumerWidget {
|
|||
html,
|
||||
textStyle: textStyle,
|
||||
customWidgetBuilder: (element) {
|
||||
if (element.attributes.keys.contains("data-mx-profile-fallback")) {
|
||||
return SizedBox.shrink();
|
||||
}
|
||||
|
||||
if (element.attributes.keys.contains("data-mx-spoiler")) {
|
||||
return InlineCustomWidget(child: SpoilerText(text: element.text));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import "package:flutter/widgets.dart";
|
||||
import "package:flutter_chat_core/flutter_chat_core.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/member_controller.dart";
|
||||
import "package:nexus/controllers/author_controller.dart";
|
||||
import "package:nexus/helpers/extensions/better_when.dart";
|
||||
import "package:nexus/models/configs/member_config.dart";
|
||||
import "package:nexus/models/configs/author_config.dart";
|
||||
import "package:nexus/models/room.dart";
|
||||
import "package:nexus/widgets/avatar_or_hash.dart";
|
||||
|
||||
|
|
@ -16,9 +16,7 @@ class MessageAvatar extends ConsumerWidget {
|
|||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) => ref
|
||||
.watch(
|
||||
MemberController.provider(
|
||||
MemberConfig(room: room, userId: message.authorId),
|
||||
),
|
||||
AuthorController.provider(AuthorConfig(room: room, message: message)),
|
||||
)
|
||||
.betterWhen(
|
||||
data: (membership) => AvatarOrHash(
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import "package:flutter/widgets.dart";
|
||||
import "package:flutter_chat_core/flutter_chat_core.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/member_controller.dart";
|
||||
import "package:nexus/controllers/author_controller.dart";
|
||||
import "package:nexus/helpers/extensions/better_when.dart";
|
||||
import "package:nexus/models/configs/member_config.dart";
|
||||
import "package:nexus/models/configs/author_config.dart";
|
||||
import "package:nexus/models/room.dart";
|
||||
|
||||
class MessageDisplayname extends ConsumerWidget {
|
||||
|
|
@ -15,13 +15,11 @@ class MessageDisplayname extends ConsumerWidget {
|
|||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) => ref
|
||||
.watch(
|
||||
MemberController.provider(
|
||||
MemberConfig(room: room, userId: message.authorId),
|
||||
),
|
||||
AuthorController.provider(AuthorConfig(room: room, message: message)),
|
||||
)
|
||||
.betterWhen(
|
||||
data: (membership) => Text(
|
||||
membership.displayName,
|
||||
"${membership.displayName} ${message.metadata?["pmp"] == null ? "" : "(via ${message.authorId})"}",
|
||||
style: style,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class ReplyWidget extends ConsumerWidget {
|
|||
mainAxisSize: MainAxisSize.min,
|
||||
spacing: 8,
|
||||
children: [
|
||||
MessageAvatar(message, room),
|
||||
MessageAvatar(replyMessage, room),
|
||||
Flexible(
|
||||
child: MessageDisplayname(
|
||||
replyMessage,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue