From 3283494cb1d84cf87aaac1f326a866692335315d Mon Sep 17 00:00:00 2001 From: aitorarana Date: Tue, 10 Feb 2026 17:25:23 +0100 Subject: [PATCH] fix contacts endpoint and entity --- .../domain/entities/contact_entity.dart | 17 + .../entities/contact_entity.freezed.dart | 292 +++++++++++++++++ .../domain/entities/contact_list_entity.dart | 19 -- .../entities/contact_list_entity.freezed.dart | 301 ------------------ .../domain/entities/list_contact_entity.dart | 11 - .../entities/list_contact_entity.freezed.dart | 274 ---------------- .../presentation/contacts_screen.dart | 18 +- .../presentation/edit_contact_screen.dart | 4 +- .../state/contacts_view_model.dart | 21 +- .../state/contacts_view_state.dart | 4 +- .../state/contacts_view_state.freezed.dart | 80 ++--- 11 files changed, 367 insertions(+), 674 deletions(-) create mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.dart create mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.freezed.dart delete mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.dart delete mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.freezed.dart delete mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.dart delete mode 100644 modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.freezed.dart diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.dart new file mode 100644 index 00000000..8b64a666 --- /dev/null +++ b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.dart @@ -0,0 +1,17 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'contact_entity.freezed.dart'; + +@freezed +abstract class ContactEntity with _$ContactEntity { + const factory ContactEntity({ + required String id, + required String name, + required String phone, + required String? delegationId, + required String? groupId, + required String? userId, + required int createdAt, + required int? updatedAt, + }) = _ContactEntity; +} diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.freezed.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.freezed.dart new file mode 100644 index 00000000..07643816 --- /dev/null +++ b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_entity.freezed.dart @@ -0,0 +1,292 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'contact_entity.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +// dart format off +T _$identity(T value) => value; +/// @nodoc +mixin _$ContactEntity { + + String get id; String get name; String get phone; String? get delegationId; String? get groupId; String? get userId; int get createdAt; int? get updatedAt; +/// Create a copy of ContactEntity +/// with the given fields replaced by the non-null parameter values. +@JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +$ContactEntityCopyWith get copyWith => _$ContactEntityCopyWithImpl(this as ContactEntity, _$identity); + + + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is ContactEntity&&(identical(other.id, id) || other.id == id)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.delegationId, delegationId) || other.delegationId == delegationId)&&(identical(other.groupId, groupId) || other.groupId == groupId)&&(identical(other.userId, userId) || other.userId == userId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)); +} + + +@override +int get hashCode => Object.hash(runtimeType,id,name,phone,delegationId,groupId,userId,createdAt,updatedAt); + +@override +String toString() { + return 'ContactEntity(id: $id, name: $name, phone: $phone, delegationId: $delegationId, groupId: $groupId, userId: $userId, createdAt: $createdAt, updatedAt: $updatedAt)'; +} + + +} + +/// @nodoc +abstract mixin class $ContactEntityCopyWith<$Res> { + factory $ContactEntityCopyWith(ContactEntity value, $Res Function(ContactEntity) _then) = _$ContactEntityCopyWithImpl; +@useResult +$Res call({ + String id, String name, String phone, String? delegationId, String? groupId, String? userId, int createdAt, int? updatedAt +}); + + + + +} +/// @nodoc +class _$ContactEntityCopyWithImpl<$Res> + implements $ContactEntityCopyWith<$Res> { + _$ContactEntityCopyWithImpl(this._self, this._then); + + final ContactEntity _self; + final $Res Function(ContactEntity) _then; + +/// Create a copy of ContactEntity +/// with the given fields replaced by the non-null parameter values. +@pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? name = null,Object? phone = null,Object? delegationId = freezed,Object? groupId = freezed,Object? userId = freezed,Object? createdAt = null,Object? updatedAt = freezed,}) { + return _then(_self.copyWith( +id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable +as String,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable +as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable +as String,delegationId: freezed == delegationId ? _self.delegationId : delegationId // ignore: cast_nullable_to_non_nullable +as String?,groupId: freezed == groupId ? _self.groupId : groupId // ignore: cast_nullable_to_non_nullable +as String?,userId: freezed == userId ? _self.userId : userId // ignore: cast_nullable_to_non_nullable +as String?,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable +as int,updatedAt: freezed == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable +as int?, + )); +} + +} + + +/// Adds pattern-matching-related methods to [ContactEntity]. +extension ContactEntityPatterns on ContactEntity { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _ContactEntity value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _ContactEntity() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _ContactEntity value) $default,){ +final _that = this; +switch (_that) { +case _ContactEntity(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _ContactEntity value)? $default,){ +final _that = this; +switch (_that) { +case _ContactEntity() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String id, String name, String phone, String? delegationId, String? groupId, String? userId, int createdAt, int? updatedAt)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _ContactEntity() when $default != null: +return $default(_that.id,_that.name,_that.phone,_that.delegationId,_that.groupId,_that.userId,_that.createdAt,_that.updatedAt);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String id, String name, String phone, String? delegationId, String? groupId, String? userId, int createdAt, int? updatedAt) $default,) {final _that = this; +switch (_that) { +case _ContactEntity(): +return $default(_that.id,_that.name,_that.phone,_that.delegationId,_that.groupId,_that.userId,_that.createdAt,_that.updatedAt);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String id, String name, String phone, String? delegationId, String? groupId, String? userId, int createdAt, int? updatedAt)? $default,) {final _that = this; +switch (_that) { +case _ContactEntity() when $default != null: +return $default(_that.id,_that.name,_that.phone,_that.delegationId,_that.groupId,_that.userId,_that.createdAt,_that.updatedAt);case _: + return null; + +} +} + +} + +/// @nodoc + + +class _ContactEntity implements ContactEntity { + const _ContactEntity({required this.id, required this.name, required this.phone, required this.delegationId, required this.groupId, required this.userId, required this.createdAt, required this.updatedAt}); + + +@override final String id; +@override final String name; +@override final String phone; +@override final String? delegationId; +@override final String? groupId; +@override final String? userId; +@override final int createdAt; +@override final int? updatedAt; + +/// Create a copy of ContactEntity +/// with the given fields replaced by the non-null parameter values. +@override @JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +_$ContactEntityCopyWith<_ContactEntity> get copyWith => __$ContactEntityCopyWithImpl<_ContactEntity>(this, _$identity); + + + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _ContactEntity&&(identical(other.id, id) || other.id == id)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.delegationId, delegationId) || other.delegationId == delegationId)&&(identical(other.groupId, groupId) || other.groupId == groupId)&&(identical(other.userId, userId) || other.userId == userId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)); +} + + +@override +int get hashCode => Object.hash(runtimeType,id,name,phone,delegationId,groupId,userId,createdAt,updatedAt); + +@override +String toString() { + return 'ContactEntity(id: $id, name: $name, phone: $phone, delegationId: $delegationId, groupId: $groupId, userId: $userId, createdAt: $createdAt, updatedAt: $updatedAt)'; +} + + +} + +/// @nodoc +abstract mixin class _$ContactEntityCopyWith<$Res> implements $ContactEntityCopyWith<$Res> { + factory _$ContactEntityCopyWith(_ContactEntity value, $Res Function(_ContactEntity) _then) = __$ContactEntityCopyWithImpl; +@override @useResult +$Res call({ + String id, String name, String phone, String? delegationId, String? groupId, String? userId, int createdAt, int? updatedAt +}); + + + + +} +/// @nodoc +class __$ContactEntityCopyWithImpl<$Res> + implements _$ContactEntityCopyWith<$Res> { + __$ContactEntityCopyWithImpl(this._self, this._then); + + final _ContactEntity _self; + final $Res Function(_ContactEntity) _then; + +/// Create a copy of ContactEntity +/// with the given fields replaced by the non-null parameter values. +@override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? name = null,Object? phone = null,Object? delegationId = freezed,Object? groupId = freezed,Object? userId = freezed,Object? createdAt = null,Object? updatedAt = freezed,}) { + return _then(_ContactEntity( +id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable +as String,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable +as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable +as String,delegationId: freezed == delegationId ? _self.delegationId : delegationId // ignore: cast_nullable_to_non_nullable +as String?,groupId: freezed == groupId ? _self.groupId : groupId // ignore: cast_nullable_to_non_nullable +as String?,userId: freezed == userId ? _self.userId : userId // ignore: cast_nullable_to_non_nullable +as String?,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable +as int,updatedAt: freezed == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable +as int?, + )); +} + + +} + +// dart format on diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.dart deleted file mode 100644 index ba87d9eb..00000000 --- a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:functions/src/features/contacts/domain/entities/list_contact_entity.dart'; - -part 'contact_list_entity.freezed.dart'; - -@freezed -abstract class ContactListEntity with _$ContactListEntity { - const factory ContactListEntity({ - required String id, - required String delegationId, - required String userId, - required String groupId, - required String deviceId, - required String type, - required List contacts, - required String createdAt, - required String updatedAt - }) = _ContactListEntity; -} diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.freezed.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.freezed.dart deleted file mode 100644 index a32a2dea..00000000 --- a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/contact_list_entity.freezed.dart +++ /dev/null @@ -1,301 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -// coverage:ignore-file -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'contact_list_entity.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; -/// @nodoc -mixin _$ContactListEntity { - - String get id; String get delegationId; String get userId; String get groupId; String get deviceId; String get type; List get contacts; String get createdAt; String get updatedAt; -/// Create a copy of ContactListEntity -/// with the given fields replaced by the non-null parameter values. -@JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -$ContactListEntityCopyWith get copyWith => _$ContactListEntityCopyWithImpl(this as ContactListEntity, _$identity); - - - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is ContactListEntity&&(identical(other.id, id) || other.id == id)&&(identical(other.delegationId, delegationId) || other.delegationId == delegationId)&&(identical(other.userId, userId) || other.userId == userId)&&(identical(other.groupId, groupId) || other.groupId == groupId)&&(identical(other.deviceId, deviceId) || other.deviceId == deviceId)&&(identical(other.type, type) || other.type == type)&&const DeepCollectionEquality().equals(other.contacts, contacts)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)); -} - - -@override -int get hashCode => Object.hash(runtimeType,id,delegationId,userId,groupId,deviceId,type,const DeepCollectionEquality().hash(contacts),createdAt,updatedAt); - -@override -String toString() { - return 'ContactListEntity(id: $id, delegationId: $delegationId, userId: $userId, groupId: $groupId, deviceId: $deviceId, type: $type, contacts: $contacts, createdAt: $createdAt, updatedAt: $updatedAt)'; -} - - -} - -/// @nodoc -abstract mixin class $ContactListEntityCopyWith<$Res> { - factory $ContactListEntityCopyWith(ContactListEntity value, $Res Function(ContactListEntity) _then) = _$ContactListEntityCopyWithImpl; -@useResult -$Res call({ - String id, String delegationId, String userId, String groupId, String deviceId, String type, List contacts, String createdAt, String updatedAt -}); - - - - -} -/// @nodoc -class _$ContactListEntityCopyWithImpl<$Res> - implements $ContactListEntityCopyWith<$Res> { - _$ContactListEntityCopyWithImpl(this._self, this._then); - - final ContactListEntity _self; - final $Res Function(ContactListEntity) _then; - -/// Create a copy of ContactListEntity -/// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? delegationId = null,Object? userId = null,Object? groupId = null,Object? deviceId = null,Object? type = null,Object? contacts = null,Object? createdAt = null,Object? updatedAt = null,}) { - return _then(_self.copyWith( -id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable -as String,delegationId: null == delegationId ? _self.delegationId : delegationId // ignore: cast_nullable_to_non_nullable -as String,userId: null == userId ? _self.userId : userId // ignore: cast_nullable_to_non_nullable -as String,groupId: null == groupId ? _self.groupId : groupId // ignore: cast_nullable_to_non_nullable -as String,deviceId: null == deviceId ? _self.deviceId : deviceId // ignore: cast_nullable_to_non_nullable -as String,type: null == type ? _self.type : type // ignore: cast_nullable_to_non_nullable -as String,contacts: null == contacts ? _self.contacts : contacts // ignore: cast_nullable_to_non_nullable -as List,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable -as String,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable -as String, - )); -} - -} - - -/// Adds pattern-matching-related methods to [ContactListEntity]. -extension ContactListEntityPatterns on ContactListEntity { -/// A variant of `map` that fallback to returning `orElse`. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case _: -/// return orElse(); -/// } -/// ``` - -@optionalTypeArgs TResult maybeMap(TResult Function( _ContactListEntity value)? $default,{required TResult orElse(),}){ -final _that = this; -switch (_that) { -case _ContactListEntity() when $default != null: -return $default(_that);case _: - return orElse(); - -} -} -/// A `switch`-like method, using callbacks. -/// -/// Callbacks receives the raw object, upcasted. -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case final Subclass2 value: -/// return ...; -/// } -/// ``` - -@optionalTypeArgs TResult map(TResult Function( _ContactListEntity value) $default,){ -final _that = this; -switch (_that) { -case _ContactListEntity(): -return $default(_that);case _: - throw StateError('Unexpected subclass'); - -} -} -/// A variant of `map` that fallback to returning `null`. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case _: -/// return null; -/// } -/// ``` - -@optionalTypeArgs TResult? mapOrNull(TResult? Function( _ContactListEntity value)? $default,){ -final _that = this; -switch (_that) { -case _ContactListEntity() when $default != null: -return $default(_that);case _: - return null; - -} -} -/// A variant of `when` that fallback to an `orElse` callback. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case _: -/// return orElse(); -/// } -/// ``` - -@optionalTypeArgs TResult maybeWhen(TResult Function( String id, String delegationId, String userId, String groupId, String deviceId, String type, List contacts, String createdAt, String updatedAt)? $default,{required TResult orElse(),}) {final _that = this; -switch (_that) { -case _ContactListEntity() when $default != null: -return $default(_that.id,_that.delegationId,_that.userId,_that.groupId,_that.deviceId,_that.type,_that.contacts,_that.createdAt,_that.updatedAt);case _: - return orElse(); - -} -} -/// A `switch`-like method, using callbacks. -/// -/// As opposed to `map`, this offers destructuring. -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case Subclass2(:final field2): -/// return ...; -/// } -/// ``` - -@optionalTypeArgs TResult when(TResult Function( String id, String delegationId, String userId, String groupId, String deviceId, String type, List contacts, String createdAt, String updatedAt) $default,) {final _that = this; -switch (_that) { -case _ContactListEntity(): -return $default(_that.id,_that.delegationId,_that.userId,_that.groupId,_that.deviceId,_that.type,_that.contacts,_that.createdAt,_that.updatedAt);case _: - throw StateError('Unexpected subclass'); - -} -} -/// A variant of `when` that fallback to returning `null` -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case _: -/// return null; -/// } -/// ``` - -@optionalTypeArgs TResult? whenOrNull(TResult? Function( String id, String delegationId, String userId, String groupId, String deviceId, String type, List contacts, String createdAt, String updatedAt)? $default,) {final _that = this; -switch (_that) { -case _ContactListEntity() when $default != null: -return $default(_that.id,_that.delegationId,_that.userId,_that.groupId,_that.deviceId,_that.type,_that.contacts,_that.createdAt,_that.updatedAt);case _: - return null; - -} -} - -} - -/// @nodoc - - -class _ContactListEntity implements ContactListEntity { - const _ContactListEntity({required this.id, required this.delegationId, required this.userId, required this.groupId, required this.deviceId, required this.type, required final List contacts, required this.createdAt, required this.updatedAt}): _contacts = contacts; - - -@override final String id; -@override final String delegationId; -@override final String userId; -@override final String groupId; -@override final String deviceId; -@override final String type; - final List _contacts; -@override List get contacts { - if (_contacts is EqualUnmodifiableListView) return _contacts; - // ignore: implicit_dynamic_type - return EqualUnmodifiableListView(_contacts); -} - -@override final String createdAt; -@override final String updatedAt; - -/// Create a copy of ContactListEntity -/// with the given fields replaced by the non-null parameter values. -@override @JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -_$ContactListEntityCopyWith<_ContactListEntity> get copyWith => __$ContactListEntityCopyWithImpl<_ContactListEntity>(this, _$identity); - - - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _ContactListEntity&&(identical(other.id, id) || other.id == id)&&(identical(other.delegationId, delegationId) || other.delegationId == delegationId)&&(identical(other.userId, userId) || other.userId == userId)&&(identical(other.groupId, groupId) || other.groupId == groupId)&&(identical(other.deviceId, deviceId) || other.deviceId == deviceId)&&(identical(other.type, type) || other.type == type)&&const DeepCollectionEquality().equals(other._contacts, _contacts)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)); -} - - -@override -int get hashCode => Object.hash(runtimeType,id,delegationId,userId,groupId,deviceId,type,const DeepCollectionEquality().hash(_contacts),createdAt,updatedAt); - -@override -String toString() { - return 'ContactListEntity(id: $id, delegationId: $delegationId, userId: $userId, groupId: $groupId, deviceId: $deviceId, type: $type, contacts: $contacts, createdAt: $createdAt, updatedAt: $updatedAt)'; -} - - -} - -/// @nodoc -abstract mixin class _$ContactListEntityCopyWith<$Res> implements $ContactListEntityCopyWith<$Res> { - factory _$ContactListEntityCopyWith(_ContactListEntity value, $Res Function(_ContactListEntity) _then) = __$ContactListEntityCopyWithImpl; -@override @useResult -$Res call({ - String id, String delegationId, String userId, String groupId, String deviceId, String type, List contacts, String createdAt, String updatedAt -}); - - - - -} -/// @nodoc -class __$ContactListEntityCopyWithImpl<$Res> - implements _$ContactListEntityCopyWith<$Res> { - __$ContactListEntityCopyWithImpl(this._self, this._then); - - final _ContactListEntity _self; - final $Res Function(_ContactListEntity) _then; - -/// Create a copy of ContactListEntity -/// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? delegationId = null,Object? userId = null,Object? groupId = null,Object? deviceId = null,Object? type = null,Object? contacts = null,Object? createdAt = null,Object? updatedAt = null,}) { - return _then(_ContactListEntity( -id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable -as String,delegationId: null == delegationId ? _self.delegationId : delegationId // ignore: cast_nullable_to_non_nullable -as String,userId: null == userId ? _self.userId : userId // ignore: cast_nullable_to_non_nullable -as String,groupId: null == groupId ? _self.groupId : groupId // ignore: cast_nullable_to_non_nullable -as String,deviceId: null == deviceId ? _self.deviceId : deviceId // ignore: cast_nullable_to_non_nullable -as String,type: null == type ? _self.type : type // ignore: cast_nullable_to_non_nullable -as String,contacts: null == contacts ? _self._contacts : contacts // ignore: cast_nullable_to_non_nullable -as List,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable -as String,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable -as String, - )); -} - - -} - -// dart format on diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.dart deleted file mode 100644 index 32bcab66..00000000 --- a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; - -part 'list_contact_entity.freezed.dart'; - -@freezed -abstract class ListContactEntity with _$ListContactEntity { - const factory ListContactEntity({ - required String name, - required String phone, - }) = _ListContactEntity; -} diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.freezed.dart b/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.freezed.dart deleted file mode 100644 index efd95bd7..00000000 --- a/modules/legacy/modules/functions/lib/src/features/contacts/domain/entities/list_contact_entity.freezed.dart +++ /dev/null @@ -1,274 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -// coverage:ignore-file -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'list_contact_entity.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; -/// @nodoc -mixin _$ListContactEntity { - - String get name; String get phone; -/// Create a copy of ListContactEntity -/// with the given fields replaced by the non-null parameter values. -@JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -$ListContactEntityCopyWith get copyWith => _$ListContactEntityCopyWithImpl(this as ListContactEntity, _$identity); - - - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is ListContactEntity&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)); -} - - -@override -int get hashCode => Object.hash(runtimeType,name,phone); - -@override -String toString() { - return 'ListContactEntity(name: $name, phone: $phone)'; -} - - -} - -/// @nodoc -abstract mixin class $ListContactEntityCopyWith<$Res> { - factory $ListContactEntityCopyWith(ListContactEntity value, $Res Function(ListContactEntity) _then) = _$ListContactEntityCopyWithImpl; -@useResult -$Res call({ - String name, String phone -}); - - - - -} -/// @nodoc -class _$ListContactEntityCopyWithImpl<$Res> - implements $ListContactEntityCopyWith<$Res> { - _$ListContactEntityCopyWithImpl(this._self, this._then); - - final ListContactEntity _self; - final $Res Function(ListContactEntity) _then; - -/// Create a copy of ListContactEntity -/// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? name = null,Object? phone = null,}) { - return _then(_self.copyWith( -name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable -as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable -as String, - )); -} - -} - - -/// Adds pattern-matching-related methods to [ListContactEntity]. -extension ListContactEntityPatterns on ListContactEntity { -/// A variant of `map` that fallback to returning `orElse`. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case _: -/// return orElse(); -/// } -/// ``` - -@optionalTypeArgs TResult maybeMap(TResult Function( _ListContactEntity value)? $default,{required TResult orElse(),}){ -final _that = this; -switch (_that) { -case _ListContactEntity() when $default != null: -return $default(_that);case _: - return orElse(); - -} -} -/// A `switch`-like method, using callbacks. -/// -/// Callbacks receives the raw object, upcasted. -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case final Subclass2 value: -/// return ...; -/// } -/// ``` - -@optionalTypeArgs TResult map(TResult Function( _ListContactEntity value) $default,){ -final _that = this; -switch (_that) { -case _ListContactEntity(): -return $default(_that);case _: - throw StateError('Unexpected subclass'); - -} -} -/// A variant of `map` that fallback to returning `null`. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case final Subclass value: -/// return ...; -/// case _: -/// return null; -/// } -/// ``` - -@optionalTypeArgs TResult? mapOrNull(TResult? Function( _ListContactEntity value)? $default,){ -final _that = this; -switch (_that) { -case _ListContactEntity() when $default != null: -return $default(_that);case _: - return null; - -} -} -/// A variant of `when` that fallback to an `orElse` callback. -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case _: -/// return orElse(); -/// } -/// ``` - -@optionalTypeArgs TResult maybeWhen(TResult Function( String name, String phone)? $default,{required TResult orElse(),}) {final _that = this; -switch (_that) { -case _ListContactEntity() when $default != null: -return $default(_that.name,_that.phone);case _: - return orElse(); - -} -} -/// A `switch`-like method, using callbacks. -/// -/// As opposed to `map`, this offers destructuring. -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case Subclass2(:final field2): -/// return ...; -/// } -/// ``` - -@optionalTypeArgs TResult when(TResult Function( String name, String phone) $default,) {final _that = this; -switch (_that) { -case _ListContactEntity(): -return $default(_that.name,_that.phone);case _: - throw StateError('Unexpected subclass'); - -} -} -/// A variant of `when` that fallback to returning `null` -/// -/// It is equivalent to doing: -/// ```dart -/// switch (sealedClass) { -/// case Subclass(:final field): -/// return ...; -/// case _: -/// return null; -/// } -/// ``` - -@optionalTypeArgs TResult? whenOrNull(TResult? Function( String name, String phone)? $default,) {final _that = this; -switch (_that) { -case _ListContactEntity() when $default != null: -return $default(_that.name,_that.phone);case _: - return null; - -} -} - -} - -/// @nodoc - - -class _ListContactEntity implements ListContactEntity { - const _ListContactEntity({required this.name, required this.phone}); - - -@override final String name; -@override final String phone; - -/// Create a copy of ListContactEntity -/// with the given fields replaced by the non-null parameter values. -@override @JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -_$ListContactEntityCopyWith<_ListContactEntity> get copyWith => __$ListContactEntityCopyWithImpl<_ListContactEntity>(this, _$identity); - - - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _ListContactEntity&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)); -} - - -@override -int get hashCode => Object.hash(runtimeType,name,phone); - -@override -String toString() { - return 'ListContactEntity(name: $name, phone: $phone)'; -} - - -} - -/// @nodoc -abstract mixin class _$ListContactEntityCopyWith<$Res> implements $ListContactEntityCopyWith<$Res> { - factory _$ListContactEntityCopyWith(_ListContactEntity value, $Res Function(_ListContactEntity) _then) = __$ListContactEntityCopyWithImpl; -@override @useResult -$Res call({ - String name, String phone -}); - - - - -} -/// @nodoc -class __$ListContactEntityCopyWithImpl<$Res> - implements _$ListContactEntityCopyWith<$Res> { - __$ListContactEntityCopyWithImpl(this._self, this._then); - - final _ListContactEntity _self; - final $Res Function(_ListContactEntity) _then; - -/// Create a copy of ListContactEntity -/// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? name = null,Object? phone = null,}) { - return _then(_ListContactEntity( -name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable -as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable -as String, - )); -} - - -} - -// dart format on diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/contacts_screen.dart b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/contacts_screen.dart index a90a0b13..4b5f2f24 100644 --- a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/contacts_screen.dart +++ b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/contacts_screen.dart @@ -1,7 +1,7 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:functions/src/features/contacts/domain/entities/list_contact_entity.dart'; +import 'package:functions/src/features/contacts/domain/entities/contact_entity.dart'; import 'package:functions/src/features/contacts/presentation/edit_contact_screen.dart'; import 'package:functions/src/features/contacts/presentation/state/contacts_view_model.dart'; import 'package:navigation/navigation.dart'; @@ -66,25 +66,25 @@ class ContactsScreen extends ConsumerWidget { SizedBox(height: SizeUtils.getByScreen(small: 20, big: 18)), Expanded( child: Container( padding: SizeUtils.getByScreen( - small: EdgeInsets.symmetric(horizontal: 22, vertical: 10), - big: EdgeInsets.symmetric(horizontal: 21, vertical: 8) + small: EdgeInsets.symmetric(horizontal: 22, vertical: 10), + big: EdgeInsets.symmetric(horizontal: 21, vertical: 8) ), child: ListView.separated( itemBuilder: (BuildContext context, int index)=>ContactCard( - contact: state.contactList!.contacts[index], + contact: state.contacts[index], isEditing: state.isEditing, ), separatorBuilder: (BuildContext context, int index)=>SizedBox( - height: SizeUtils.getByScreen(small: 18, big: 17) + height: SizeUtils.getByScreen(small: 18, big: 17) ), - itemCount: state.contactList?.contacts.length ?? 0 + itemCount: state.contacts.length ), )), if (state.isEditing) ...[ Container( padding: SizeUtils.getByScreen( - small: EdgeInsets.symmetric(horizontal: 26, vertical: 14), - big: EdgeInsets.symmetric(horizontal: 24, vertical: 12) + small: EdgeInsets.symmetric(horizontal: 26, vertical: 14), + big: EdgeInsets.symmetric(horizontal: 24, vertical: 12) ), ), ], @@ -110,7 +110,7 @@ class ContactsScreen extends ConsumerWidget { class ContactCard extends ConsumerWidget { - final ListContactEntity contact; + final ContactEntity contact; final bool isEditing; const ContactCard({ diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/edit_contact_screen.dart b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/edit_contact_screen.dart index dbe78eb8..519fdf98 100644 --- a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/edit_contact_screen.dart +++ b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/edit_contact_screen.dart @@ -2,7 +2,7 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:functions/src/features/contacts/domain/entities/list_contact_entity.dart'; +import 'package:functions/src/features/contacts/domain/entities/contact_entity.dart'; import 'package:functions/src/features/contacts/presentation/state/contacts_view_model.dart'; // import 'package:navigation/navigation.dart'; import 'package:sf_localizations/sf_localizations.dart'; @@ -10,7 +10,7 @@ import 'package:utils/utils.dart'; class EditContactScreen extends ConsumerWidget { //final NavigationContract navigationContract; - final ListContactEntity contact; + final ContactEntity contact; const EditContactScreen({super.key, required this.contact // required this.navigationContract diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_model.dart b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_model.dart index b792c2a5..d199d571 100644 --- a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_model.dart +++ b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_model.dart @@ -1,10 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:functions/src/features/contacts/domain/entities/contact_list_entity.dart'; -import 'package:functions/src/features/contacts/domain/entities/list_contact_entity.dart'; +import 'package:functions/src/features/contacts/domain/entities/contact_entity.dart'; import 'package:functions/src/features/contacts/domain/get_contacts_use_case.dart'; -import 'package:functions/src/features/contacts/presentation/providers/get_contacts_provider.dart'; +import 'package:functions/src/features/contacts/presentation/providers/get_contacts_use_case_provider.dart'; import 'package:functions/src/features/contacts/presentation/state/contacts_view_state.dart'; +// import 'package:legacy_shared/src/providers/logged_user_provider.dart'; +// import 'package:legacy_shared/src/data/models/entities/user_entity.dart'; // import 'package:sf_localizations/sf_localizations.dart'; final contactsViewModelProvider = @@ -18,26 +19,30 @@ class ContactsViewModel extends Notifier { late final TextEditingController nameController; late final TextEditingController phoneController; + // late final UserEntity loggedUser; + @override ContactsViewState build() { _getContactsUseCase = ref.read(getContactsUseCaseProvider); + // loggedUser = ref.read(loggedUserProvider); + nameController = TextEditingController(); phoneController = TextEditingController(); nameController.addListener(_onNameChanged); phoneController.addListener(_onPhoneChanged); - _getContactsUseCase.getContacts(deviceId: '').then(setContacts); + _getContactsUseCase.getContacts(userId: '').then(setContacts); ref.onDispose(disposeControllers); return const ContactsViewState(); } - void setContacts(ContactListEntity contactList) { + void setContacts(List contacts) { state = state.copyWith( - contactList: contactList + contacts: contacts ); } @@ -59,7 +64,9 @@ class ContactsViewModel extends Notifier { state = state.copyWith(phone: text, errorMessage: ''); } - void updateContact(ListContactEntity contact) {} + void updateContact(ContactEntity contact) { + + } void disposeControllers() { nameController.removeListener(_onNameChanged); diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.dart b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.dart index 439ee615..b3b17bd5 100644 --- a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.dart +++ b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.dart @@ -1,12 +1,12 @@ import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:functions/src/features/contacts/domain/entities/contact_list_entity.dart'; +import 'package:functions/src/features/contacts/domain/entities/contact_entity.dart'; part 'contacts_view_state.freezed.dart'; @freezed abstract class ContactsViewState with _$ContactsViewState { const factory ContactsViewState({ - @Default(null) ContactListEntity? contactList, + @Default([]) List contacts, @Default(false) bool isLoading, @Default(false) bool isEditing, @Default('') String name, diff --git a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.freezed.dart b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.freezed.dart index 1d74938c..b6647030 100644 --- a/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.freezed.dart +++ b/modules/legacy/modules/functions/lib/src/features/contacts/presentation/state/contacts_view_state.freezed.dart @@ -14,7 +14,7 @@ T _$identity(T value) => value; /// @nodoc mixin _$ContactsViewState { - ContactListEntity? get contactList; bool get isLoading; bool get isEditing; String get name; String get phone; String get errorMessage; + List get contacts; bool get isLoading; bool get isEditing; String get name; String get phone; String get errorMessage; /// Create a copy of ContactsViewState /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -25,16 +25,16 @@ $ContactsViewStateCopyWith get copyWith => _$ContactsViewStat @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is ContactsViewState&&(identical(other.contactList, contactList) || other.contactList == contactList)&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEditing, isEditing) || other.isEditing == isEditing)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is ContactsViewState&&const DeepCollectionEquality().equals(other.contacts, contacts)&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEditing, isEditing) || other.isEditing == isEditing)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); } @override -int get hashCode => Object.hash(runtimeType,contactList,isLoading,isEditing,name,phone,errorMessage); +int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(contacts),isLoading,isEditing,name,phone,errorMessage); @override String toString() { - return 'ContactsViewState(contactList: $contactList, isLoading: $isLoading, isEditing: $isEditing, name: $name, phone: $phone, errorMessage: $errorMessage)'; + return 'ContactsViewState(contacts: $contacts, isLoading: $isLoading, isEditing: $isEditing, name: $name, phone: $phone, errorMessage: $errorMessage)'; } @@ -45,11 +45,11 @@ abstract mixin class $ContactsViewStateCopyWith<$Res> { factory $ContactsViewStateCopyWith(ContactsViewState value, $Res Function(ContactsViewState) _then) = _$ContactsViewStateCopyWithImpl; @useResult $Res call({ - ContactListEntity? contactList, bool isLoading, bool isEditing, String name, String phone, String errorMessage + List contacts, bool isLoading, bool isEditing, String name, String phone, String errorMessage }); -$ContactListEntityCopyWith<$Res>? get contactList; + } /// @nodoc @@ -62,10 +62,10 @@ class _$ContactsViewStateCopyWithImpl<$Res> /// Create a copy of ContactsViewState /// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? contactList = freezed,Object? isLoading = null,Object? isEditing = null,Object? name = null,Object? phone = null,Object? errorMessage = null,}) { +@pragma('vm:prefer-inline') @override $Res call({Object? contacts = null,Object? isLoading = null,Object? isEditing = null,Object? name = null,Object? phone = null,Object? errorMessage = null,}) { return _then(_self.copyWith( -contactList: freezed == contactList ? _self.contactList : contactList // ignore: cast_nullable_to_non_nullable -as ContactListEntity?,isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable +contacts: null == contacts ? _self.contacts : contacts // ignore: cast_nullable_to_non_nullable +as List,isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable as bool,isEditing: null == isEditing ? _self.isEditing : isEditing // ignore: cast_nullable_to_non_nullable as bool,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable @@ -73,19 +73,7 @@ as String,errorMessage: null == errorMessage ? _self.errorMessage : errorMessage as String, )); } -/// Create a copy of ContactsViewState -/// with the given fields replaced by the non-null parameter values. -@override -@pragma('vm:prefer-inline') -$ContactListEntityCopyWith<$Res>? get contactList { - if (_self.contactList == null) { - return null; - } - return $ContactListEntityCopyWith<$Res>(_self.contactList!, (value) { - return _then(_self.copyWith(contactList: value)); - }); -} } @@ -167,10 +155,10 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen(TResult Function( ContactListEntity? contactList, bool isLoading, bool isEditing, String name, String phone, String errorMessage)? $default,{required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen(TResult Function( List contacts, bool isLoading, bool isEditing, String name, String phone, String errorMessage)? $default,{required TResult orElse(),}) {final _that = this; switch (_that) { case _ContactsViewState() when $default != null: -return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: +return $default(_that.contacts,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: return orElse(); } @@ -188,10 +176,10 @@ return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_th /// } /// ``` -@optionalTypeArgs TResult when(TResult Function( ContactListEntity? contactList, bool isLoading, bool isEditing, String name, String phone, String errorMessage) $default,) {final _that = this; +@optionalTypeArgs TResult when(TResult Function( List contacts, bool isLoading, bool isEditing, String name, String phone, String errorMessage) $default,) {final _that = this; switch (_that) { case _ContactsViewState(): -return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: +return $default(_that.contacts,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: throw StateError('Unexpected subclass'); } @@ -208,10 +196,10 @@ return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_th /// } /// ``` -@optionalTypeArgs TResult? whenOrNull(TResult? Function( ContactListEntity? contactList, bool isLoading, bool isEditing, String name, String phone, String errorMessage)? $default,) {final _that = this; +@optionalTypeArgs TResult? whenOrNull(TResult? Function( List contacts, bool isLoading, bool isEditing, String name, String phone, String errorMessage)? $default,) {final _that = this; switch (_that) { case _ContactsViewState() when $default != null: -return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: +return $default(_that.contacts,_that.isLoading,_that.isEditing,_that.name,_that.phone,_that.errorMessage);case _: return null; } @@ -223,10 +211,16 @@ return $default(_that.contactList,_that.isLoading,_that.isEditing,_that.name,_th class _ContactsViewState implements ContactsViewState { - const _ContactsViewState({this.contactList = null, this.isLoading = false, this.isEditing = false, this.name = '', this.phone = '', this.errorMessage = ''}); + const _ContactsViewState({final List contacts = const [], this.isLoading = false, this.isEditing = false, this.name = '', this.phone = '', this.errorMessage = ''}): _contacts = contacts; -@override@JsonKey() final ContactListEntity? contactList; + final List _contacts; +@override@JsonKey() List get contacts { + if (_contacts is EqualUnmodifiableListView) return _contacts; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(_contacts); +} + @override@JsonKey() final bool isLoading; @override@JsonKey() final bool isEditing; @override@JsonKey() final String name; @@ -243,16 +237,16 @@ _$ContactsViewStateCopyWith<_ContactsViewState> get copyWith => __$ContactsViewS @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _ContactsViewState&&(identical(other.contactList, contactList) || other.contactList == contactList)&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEditing, isEditing) || other.isEditing == isEditing)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _ContactsViewState&&const DeepCollectionEquality().equals(other._contacts, _contacts)&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEditing, isEditing) || other.isEditing == isEditing)&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.errorMessage, errorMessage) || other.errorMessage == errorMessage)); } @override -int get hashCode => Object.hash(runtimeType,contactList,isLoading,isEditing,name,phone,errorMessage); +int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(_contacts),isLoading,isEditing,name,phone,errorMessage); @override String toString() { - return 'ContactsViewState(contactList: $contactList, isLoading: $isLoading, isEditing: $isEditing, name: $name, phone: $phone, errorMessage: $errorMessage)'; + return 'ContactsViewState(contacts: $contacts, isLoading: $isLoading, isEditing: $isEditing, name: $name, phone: $phone, errorMessage: $errorMessage)'; } @@ -263,11 +257,11 @@ abstract mixin class _$ContactsViewStateCopyWith<$Res> implements $ContactsViewS factory _$ContactsViewStateCopyWith(_ContactsViewState value, $Res Function(_ContactsViewState) _then) = __$ContactsViewStateCopyWithImpl; @override @useResult $Res call({ - ContactListEntity? contactList, bool isLoading, bool isEditing, String name, String phone, String errorMessage + List contacts, bool isLoading, bool isEditing, String name, String phone, String errorMessage }); -@override $ContactListEntityCopyWith<$Res>? get contactList; + } /// @nodoc @@ -280,10 +274,10 @@ class __$ContactsViewStateCopyWithImpl<$Res> /// Create a copy of ContactsViewState /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? contactList = freezed,Object? isLoading = null,Object? isEditing = null,Object? name = null,Object? phone = null,Object? errorMessage = null,}) { +@override @pragma('vm:prefer-inline') $Res call({Object? contacts = null,Object? isLoading = null,Object? isEditing = null,Object? name = null,Object? phone = null,Object? errorMessage = null,}) { return _then(_ContactsViewState( -contactList: freezed == contactList ? _self.contactList : contactList // ignore: cast_nullable_to_non_nullable -as ContactListEntity?,isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable +contacts: null == contacts ? _self._contacts : contacts // ignore: cast_nullable_to_non_nullable +as List,isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable as bool,isEditing: null == isEditing ? _self.isEditing : isEditing // ignore: cast_nullable_to_non_nullable as bool,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable as String,phone: null == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable @@ -292,19 +286,7 @@ as String, )); } -/// Create a copy of ContactsViewState -/// with the given fields replaced by the non-null parameter values. -@override -@pragma('vm:prefer-inline') -$ContactListEntityCopyWith<$Res>? get contactList { - if (_self.contactList == null) { - return null; - } - return $ContactListEntityCopyWith<$Res>(_self.contactList!, (value) { - return _then(_self.copyWith(contactList: value)); - }); -} } // dart format on