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
14
lib/models/configs/author_config.dart
Normal file
14
lib/models/configs/author_config.dart
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import "package:flutter_chat_core/flutter_chat_core.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/models/room.dart";
|
||||
part "author_config.freezed.dart";
|
||||
part "author_config.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class AuthorConfig with _$AuthorConfig {
|
||||
const factory AuthorConfig({required Message message, required Room room}) =
|
||||
_AuthorConfig;
|
||||
|
||||
factory AuthorConfig.fromJson(Map<String, Object?> json) =>
|
||||
_$AuthorConfigFromJson(json);
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/models/room.dart";
|
||||
part "member_config.freezed.dart";
|
||||
part "member_config.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class MemberConfig with _$MemberConfig {
|
||||
const factory MemberConfig({required Room room, required String userId}) =
|
||||
_MemberConfig;
|
||||
|
||||
factory MemberConfig.fromJson(Map<String, Object?> json) =>
|
||||
_$MemberConfigFromJson(json);
|
||||
}
|
||||
|
|
@ -1,15 +1,22 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "membership.freezed.dart";
|
||||
part "membership.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class Membership with _$Membership {
|
||||
const Membership._();
|
||||
const factory Membership({
|
||||
required Uri? avatarUrl,
|
||||
required String displayName,
|
||||
required String userId,
|
||||
}) = _Membership;
|
||||
|
||||
factory Membership.fromJson(Map<String, Object?> json) =>
|
||||
_$MembershipFromJson(json);
|
||||
factory Membership.fromContent(
|
||||
IMap<String, dynamic> content,
|
||||
String userId,
|
||||
) => Membership(
|
||||
avatarUrl: Uri.tryParse(content["avatar_url"] ?? ""),
|
||||
userId: userId,
|
||||
displayName: content["displayname"] ?? userId.substring(1).split(":").first,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ abstract class Room with _$Room {
|
|||
@Default(IMap.empty()) IMap<String, IList<ReadReceipt>> receipts,
|
||||
@Default(false) bool dismissNotifications,
|
||||
@Default(true) bool hasMore,
|
||||
@Default(false) bool hasFetchedMembers,
|
||||
// required IList<Notification> notifications,
|
||||
}) = _Room;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue