👽 Support new attachment reference system
This commit is contained in:
@ -166,7 +166,8 @@ class CallScreen extends HookConsumerWidget {
|
||||
.profile
|
||||
?.account
|
||||
.profile
|
||||
.pictureId,
|
||||
.picture
|
||||
?.id,
|
||||
size: 72,
|
||||
),
|
||||
),
|
||||
|
@ -109,7 +109,7 @@ class ChatRoomListTile extends HookConsumerWidget {
|
||||
},
|
||||
loading: () => const SizedBox.shrink(),
|
||||
error:
|
||||
(_, __) =>
|
||||
(_, _) =>
|
||||
isDirect && room.description == null
|
||||
? Text(
|
||||
room.members!.map((e) => '@${e.account.name}').join(', '),
|
||||
@ -127,19 +127,19 @@ class ChatRoomListTile extends HookConsumerWidget {
|
||||
isLabelVisible: summary.when(
|
||||
data: (data) => (data?.unreadCount ?? 0) > 0,
|
||||
loading: () => false,
|
||||
error: (_, __) => false,
|
||||
error: (_, _) => false,
|
||||
),
|
||||
child:
|
||||
(isDirect && room.pictureId == null)
|
||||
(isDirect && room.picture?.id == null)
|
||||
? SplitAvatarWidget(
|
||||
filesId:
|
||||
room.members!
|
||||
.map((e) => e.account.profile.pictureId)
|
||||
.map((e) => e.account.profile.picture?.id)
|
||||
.toList(),
|
||||
)
|
||||
: room.pictureId == null
|
||||
: room.picture?.id == null
|
||||
? CircleAvatar(child: Text(room.name![0].toUpperCase()))
|
||||
: ProfilePictureWidget(fileId: room.pictureId),
|
||||
: ProfilePictureWidget(fileId: room.picture?.id),
|
||||
),
|
||||
title: Text(
|
||||
(isDirect && room.name == null)
|
||||
@ -147,7 +147,7 @@ class ChatRoomListTile extends HookConsumerWidget {
|
||||
: room.name ?? '',
|
||||
),
|
||||
subtitle: buildSubtitle(),
|
||||
trailing: trailing, // Add this line
|
||||
trailing: trailing, // Add this line
|
||||
onTap: () async {
|
||||
// Clear unread count if there are unread messages
|
||||
ref.read(chatSummaryProvider.future).then((summary) {
|
||||
@ -280,13 +280,13 @@ class ChatListScreen extends HookConsumerWidget {
|
||||
label: Text(
|
||||
chatInvites.when(
|
||||
data: (invites) => invites.length.toString(),
|
||||
error: (_, __) => '0',
|
||||
error: (_, _) => '0',
|
||||
loading: () => '0',
|
||||
),
|
||||
),
|
||||
isLabelVisible: chatInvites.when(
|
||||
data: (invites) => invites.isNotEmpty,
|
||||
error: (_, __) => false,
|
||||
error: (_, _) => false,
|
||||
loading: () => false,
|
||||
),
|
||||
child: const Icon(Symbols.email),
|
||||
@ -589,7 +589,7 @@ class EditChatScreen extends HookConsumerWidget {
|
||||
realms: joinedRealms.when(
|
||||
data: (realms) => realms,
|
||||
loading: () => [],
|
||||
error: (_, __) => [],
|
||||
error: (_, _) => [],
|
||||
),
|
||||
onChanged: (SnRealm? value) {
|
||||
currentRealm.value = value;
|
||||
|
@ -433,19 +433,23 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
height: 26,
|
||||
width: 26,
|
||||
child:
|
||||
(room!.type == 1 && room.pictureId == null)
|
||||
(room!.type == 1 && room.picture?.id == null)
|
||||
? SplitAvatarWidget(
|
||||
filesId:
|
||||
room.members!
|
||||
.map(
|
||||
(e) =>
|
||||
e.account.profile.pictureId,
|
||||
e
|
||||
.account
|
||||
.profile
|
||||
.picture
|
||||
?.id,
|
||||
)
|
||||
.toList(),
|
||||
)
|
||||
: room.pictureId != null
|
||||
: room.picture?.id != null
|
||||
? ProfilePictureWidget(
|
||||
fileId: room.pictureId,
|
||||
fileId: room.picture?.id,
|
||||
fallbackIcon: Symbols.chat,
|
||||
)
|
||||
: CircleAvatar(
|
||||
@ -473,19 +477,23 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
height: 26,
|
||||
width: 26,
|
||||
child:
|
||||
(room!.type == 1 && room.pictureId == null)
|
||||
(room!.type == 1 && room.picture?.id == null)
|
||||
? SplitAvatarWidget(
|
||||
filesId:
|
||||
room.members!
|
||||
.map(
|
||||
(e) =>
|
||||
e.account.profile.pictureId,
|
||||
e
|
||||
.account
|
||||
.profile
|
||||
.picture
|
||||
?.id,
|
||||
)
|
||||
.toList(),
|
||||
)
|
||||
: room.pictureId != null
|
||||
: room.picture?.id != null
|
||||
? ProfilePictureWidget(
|
||||
fileId: room.pictureId,
|
||||
fileId: room.picture?.id,
|
||||
fallbackIcon: Symbols.chat,
|
||||
)
|
||||
: CircleAvatar(
|
||||
|
@ -48,9 +48,9 @@ class ChatDetailScreen extends HookConsumerWidget {
|
||||
flexibleSpace: FlexibleSpaceBar(
|
||||
background:
|
||||
(currentRoom!.type == 1 &&
|
||||
currentRoom.backgroundId != null)
|
||||
currentRoom.background?.id != null)
|
||||
? CloudImageWidget(
|
||||
fileId: currentRoom.backgroundId!,
|
||||
fileId: currentRoom.background!.id,
|
||||
)
|
||||
: (currentRoom.type == 1 &&
|
||||
currentRoom.members!.length == 1 &&
|
||||
@ -59,7 +59,8 @@ class ChatDetailScreen extends HookConsumerWidget {
|
||||
.first
|
||||
.account
|
||||
.profile
|
||||
.backgroundId !=
|
||||
.background
|
||||
?.id !=
|
||||
null)
|
||||
? CloudImageWidget(
|
||||
fileId:
|
||||
@ -68,11 +69,12 @@ class ChatDetailScreen extends HookConsumerWidget {
|
||||
.first
|
||||
.account
|
||||
.profile
|
||||
.backgroundId!,
|
||||
.background!
|
||||
.id,
|
||||
)
|
||||
: currentRoom.backgroundId != null
|
||||
: currentRoom.background?.id != null
|
||||
? CloudImageWidget(
|
||||
fileId: currentRoom.backgroundId!,
|
||||
fileId: currentRoom.background!.id,
|
||||
fit: BoxFit.cover,
|
||||
)
|
||||
: Container(
|
||||
@ -390,7 +392,7 @@ class _ChatMemberListSheet extends HookConsumerWidget {
|
||||
return ListTile(
|
||||
contentPadding: EdgeInsets.only(left: 16, right: 12),
|
||||
leading: ProfilePictureWidget(
|
||||
fileId: member.account.profile.pictureId,
|
||||
fileId: member.account.profile.picture?.id,
|
||||
),
|
||||
title: Row(
|
||||
spacing: 6,
|
||||
|
Reference in New Issue
Block a user