import 'package:async_tools/async_tools.dart'; import 'package:fast_immutable_collections/fast_immutable_collections.dart'; import 'package:flutter_chat_core/flutter_chat_core.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'window_state.dart'; part 'chat_component_state.freezed.dart'; @freezed sealed class ChatComponentState with _$ChatComponentState { const factory ChatComponentState( { // Local user required User? localUser, // Active remote users required IMap remoteUsers, // Historical remote users required IMap historicalRemoteUsers, // Unknown users required IMap unknownUsers, // Messages state required AsyncValue> messageWindow, // Title of the chat required String title}) = _ChatComponentState; }