Compare commits
	
		
			8 Commits
		
	
	
		
			c7f417234e
			...
			3.2.0+132
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c9727e92b8 | |||
| 9b8768061d | |||
| 0949f0da54 | |||
| 215ca705ac | |||
| 03457af04a | |||
| 73c6a1febf | |||
| ba8d30bcde | |||
| 8449658b47 | 
| @@ -1,4 +1,5 @@ | ||||
| import 'package:freezed_annotation/freezed_annotation.dart'; | ||||
| import 'package:island/models/account.dart'; | ||||
| import 'package:island/models/publisher.dart'; | ||||
|  | ||||
| part 'poll.freezed.dart'; | ||||
| @@ -101,6 +102,7 @@ sealed class SnPollAnswer with _$SnPollAnswer { | ||||
|     required DateTime createdAt, | ||||
|     required DateTime updatedAt, | ||||
|     required DateTime? deletedAt, | ||||
|     SnAccount? account, | ||||
|   }) = _SnPollAnswer; | ||||
|  | ||||
|   factory SnPollAnswer.fromJson(Map<String, dynamic> json) => | ||||
|   | ||||
| @@ -1187,7 +1187,7 @@ as int, | ||||
| /// @nodoc | ||||
| mixin _$SnPollAnswer { | ||||
|  | ||||
|  String get id; Map<String, dynamic> get answer; String get accountId; String get pollId; DateTime get createdAt; DateTime get updatedAt; DateTime? get deletedAt; | ||||
|  String get id; Map<String, dynamic> get answer; String get accountId; String get pollId; DateTime get createdAt; DateTime get updatedAt; DateTime? get deletedAt; SnAccount? get account; | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @@ -1200,16 +1200,16 @@ $SnPollAnswerCopyWith<SnPollAnswer> get copyWith => _$SnPollAnswerCopyWithImpl<S | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is SnPollAnswer&&(identical(other.id, id) || other.id == id)&&const DeepCollectionEquality().equals(other.answer, answer)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.pollId, pollId) || other.pollId == pollId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is SnPollAnswer&&(identical(other.id, id) || other.id == id)&&const DeepCollectionEquality().equals(other.answer, answer)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.pollId, pollId) || other.pollId == pollId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)&&(identical(other.account, account) || other.account == account)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,const DeepCollectionEquality().hash(answer),accountId,pollId,createdAt,updatedAt,deletedAt); | ||||
| int get hashCode => Object.hash(runtimeType,id,const DeepCollectionEquality().hash(answer),accountId,pollId,createdAt,updatedAt,deletedAt,account); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnPollAnswer(id: $id, answer: $answer, accountId: $accountId, pollId: $pollId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
|   return 'SnPollAnswer(id: $id, answer: $answer, accountId: $accountId, pollId: $pollId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt, account: $account)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1220,11 +1220,11 @@ abstract mixin class $SnPollAnswerCopyWith<$Res>  { | ||||
|   factory $SnPollAnswerCopyWith(SnPollAnswer value, $Res Function(SnPollAnswer) _then) = _$SnPollAnswerCopyWithImpl; | ||||
| @useResult | ||||
| $Res call({ | ||||
|  String id, Map<String, dynamic> answer, String accountId, String pollId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
|  String id, Map<String, dynamic> answer, String accountId, String pollId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt, SnAccount? account | ||||
| }); | ||||
|  | ||||
|  | ||||
|  | ||||
| $SnAccountCopyWith<$Res>? get account; | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| @@ -1237,7 +1237,7 @@ class _$SnPollAnswerCopyWithImpl<$Res> | ||||
|  | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? answer = null,Object? accountId = null,Object? pollId = null,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
| @pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? answer = null,Object? accountId = null,Object? pollId = null,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,Object? account = freezed,}) { | ||||
|   return _then(_self.copyWith( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,answer: null == answer ? _self.answer : answer // ignore: cast_nullable_to_non_nullable | ||||
| @@ -1246,10 +1246,23 @@ as String,pollId: null == pollId ? _self.pollId : pollId // ignore: cast_nullabl | ||||
| as String,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
| as DateTime?,account: freezed == account ? _self.account : account // ignore: cast_nullable_to_non_nullable | ||||
| as SnAccount?, | ||||
|   )); | ||||
| } | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnAccountCopyWith<$Res>? get account { | ||||
|     if (_self.account == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnAccountCopyWith<$Res>(_self.account!, (value) { | ||||
|     return _then(_self.copyWith(account: value)); | ||||
|   }); | ||||
| } | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1328,10 +1341,10 @@ return $default(_that);case _: | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,{required TResult orElse(),}) {final _that = this; | ||||
| @optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt,  SnAccount? account)?  $default,{required TResult orElse(),}) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPollAnswer() when $default != null: | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt,_that.account);case _: | ||||
|   return orElse(); | ||||
|  | ||||
| } | ||||
| @@ -1349,10 +1362,10 @@ return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.created | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)  $default,) {final _that = this; | ||||
| @optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt,  SnAccount? account)  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPollAnswer(): | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt);} | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt,_that.account);} | ||||
| } | ||||
| /// A variant of `when` that fallback to returning `null` | ||||
| /// | ||||
| @@ -1366,10 +1379,10 @@ return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.created | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,) {final _that = this; | ||||
| @optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String id,  Map<String, dynamic> answer,  String accountId,  String pollId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt,  SnAccount? account)?  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPollAnswer() when $default != null: | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
| return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.createdAt,_that.updatedAt,_that.deletedAt,_that.account);case _: | ||||
|   return null; | ||||
|  | ||||
| } | ||||
| @@ -1381,7 +1394,7 @@ return $default(_that.id,_that.answer,_that.accountId,_that.pollId,_that.created | ||||
| @JsonSerializable() | ||||
|  | ||||
| class _SnPollAnswer implements SnPollAnswer { | ||||
|   const _SnPollAnswer({required this.id, required final  Map<String, dynamic> answer, required this.accountId, required this.pollId, required this.createdAt, required this.updatedAt, required this.deletedAt}): _answer = answer; | ||||
|   const _SnPollAnswer({required this.id, required final  Map<String, dynamic> answer, required this.accountId, required this.pollId, required this.createdAt, required this.updatedAt, required this.deletedAt, this.account}): _answer = answer; | ||||
|   factory _SnPollAnswer.fromJson(Map<String, dynamic> json) => _$SnPollAnswerFromJson(json); | ||||
|  | ||||
| @override final  String id; | ||||
| @@ -1397,6 +1410,7 @@ class _SnPollAnswer implements SnPollAnswer { | ||||
| @override final  DateTime createdAt; | ||||
| @override final  DateTime updatedAt; | ||||
| @override final  DateTime? deletedAt; | ||||
| @override final  SnAccount? account; | ||||
|  | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @@ -1411,16 +1425,16 @@ Map<String, dynamic> toJson() { | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is _SnPollAnswer&&(identical(other.id, id) || other.id == id)&&const DeepCollectionEquality().equals(other._answer, _answer)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.pollId, pollId) || other.pollId == pollId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is _SnPollAnswer&&(identical(other.id, id) || other.id == id)&&const DeepCollectionEquality().equals(other._answer, _answer)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.pollId, pollId) || other.pollId == pollId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)&&(identical(other.account, account) || other.account == account)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,const DeepCollectionEquality().hash(_answer),accountId,pollId,createdAt,updatedAt,deletedAt); | ||||
| int get hashCode => Object.hash(runtimeType,id,const DeepCollectionEquality().hash(_answer),accountId,pollId,createdAt,updatedAt,deletedAt,account); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnPollAnswer(id: $id, answer: $answer, accountId: $accountId, pollId: $pollId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
|   return 'SnPollAnswer(id: $id, answer: $answer, accountId: $accountId, pollId: $pollId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt, account: $account)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1431,11 +1445,11 @@ abstract mixin class _$SnPollAnswerCopyWith<$Res> implements $SnPollAnswerCopyWi | ||||
|   factory _$SnPollAnswerCopyWith(_SnPollAnswer value, $Res Function(_SnPollAnswer) _then) = __$SnPollAnswerCopyWithImpl; | ||||
| @override @useResult | ||||
| $Res call({ | ||||
|  String id, Map<String, dynamic> answer, String accountId, String pollId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
|  String id, Map<String, dynamic> answer, String accountId, String pollId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt, SnAccount? account | ||||
| }); | ||||
|  | ||||
|  | ||||
|  | ||||
| @override $SnAccountCopyWith<$Res>? get account; | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| @@ -1448,7 +1462,7 @@ class __$SnPollAnswerCopyWithImpl<$Res> | ||||
|  | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? answer = null,Object? accountId = null,Object? pollId = null,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
| @override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? answer = null,Object? accountId = null,Object? pollId = null,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,Object? account = freezed,}) { | ||||
|   return _then(_SnPollAnswer( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,answer: null == answer ? _self._answer : answer // ignore: cast_nullable_to_non_nullable | ||||
| @@ -1457,11 +1471,24 @@ as String,pollId: null == pollId ? _self.pollId : pollId // ignore: cast_nullabl | ||||
| as String,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
| as DateTime?,account: freezed == account ? _self.account : account // ignore: cast_nullable_to_non_nullable | ||||
| as SnAccount?, | ||||
|   )); | ||||
| } | ||||
|  | ||||
| /// Create a copy of SnPollAnswer | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnAccountCopyWith<$Res>? get account { | ||||
|     if (_self.account == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnAccountCopyWith<$Res>(_self.account!, (value) { | ||||
|     return _then(_self.copyWith(account: value)); | ||||
|   }); | ||||
| } | ||||
| } | ||||
|  | ||||
| // dart format on | ||||
|   | ||||
| @@ -144,6 +144,10 @@ _SnPollAnswer _$SnPollAnswerFromJson(Map<String, dynamic> json) => | ||||
|           json['deleted_at'] == null | ||||
|               ? null | ||||
|               : DateTime.parse(json['deleted_at'] as String), | ||||
|       account: | ||||
|           json['account'] == null | ||||
|               ? null | ||||
|               : SnAccount.fromJson(json['account'] as Map<String, dynamic>), | ||||
|     ); | ||||
|  | ||||
| Map<String, dynamic> _$SnPollAnswerToJson(_SnPollAnswer instance) => | ||||
| @@ -155,4 +159,5 @@ Map<String, dynamic> _$SnPollAnswerToJson(_SnPollAnswer instance) => | ||||
|       'created_at': instance.createdAt.toIso8601String(), | ||||
|       'updated_at': instance.updatedAt.toIso8601String(), | ||||
|       'deleted_at': instance.deletedAt?.toIso8601String(), | ||||
|       'account': instance.account?.toJson(), | ||||
|     }; | ||||
|   | ||||
| @@ -124,3 +124,21 @@ sealed class SnPostEmbedView with _$SnPostEmbedView { | ||||
|   factory SnPostEmbedView.fromJson(Map<String, dynamic> json) => | ||||
|       _$SnPostEmbedViewFromJson(json); | ||||
| } | ||||
|  | ||||
| @freezed | ||||
| sealed class SnPostAward with _$SnPostAward { | ||||
|   const factory SnPostAward({ | ||||
|     required String id, | ||||
|     required double amount, | ||||
|     required int attitude, | ||||
|     String? message, | ||||
|     required String postId, | ||||
|     required String accountId, | ||||
|     @Default(null) DateTime? createdAt, | ||||
|     @Default(null) DateTime? updatedAt, | ||||
|     DateTime? deletedAt, | ||||
|   }) = _SnPostAward; | ||||
|  | ||||
|   factory SnPostAward.fromJson(Map<String, dynamic> json) => | ||||
|       _$SnPostAwardFromJson(json); | ||||
| } | ||||
|   | ||||
| @@ -1617,6 +1617,287 @@ as PostEmbedViewRenderer, | ||||
| } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| /// @nodoc | ||||
| mixin _$SnPostAward { | ||||
|  | ||||
|  String get id; double get amount; int get attitude; String? get message; String get postId; String get accountId; DateTime? get createdAt; DateTime? get updatedAt; DateTime? get deletedAt; | ||||
| /// Create a copy of SnPostAward | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnPostAwardCopyWith<SnPostAward> get copyWith => _$SnPostAwardCopyWithImpl<SnPostAward>(this as SnPostAward, _$identity); | ||||
|  | ||||
|   /// Serializes this SnPostAward to a JSON map. | ||||
|   Map<String, dynamic> toJson(); | ||||
|  | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is SnPostAward&&(identical(other.id, id) || other.id == id)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.attitude, attitude) || other.attitude == attitude)&&(identical(other.message, message) || other.message == message)&&(identical(other.postId, postId) || other.postId == postId)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,amount,attitude,message,postId,accountId,createdAt,updatedAt,deletedAt); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnPostAward(id: $id, amount: $amount, attitude: $attitude, message: $message, postId: $postId, accountId: $accountId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
| /// @nodoc | ||||
| abstract mixin class $SnPostAwardCopyWith<$Res>  { | ||||
|   factory $SnPostAwardCopyWith(SnPostAward value, $Res Function(SnPostAward) _then) = _$SnPostAwardCopyWithImpl; | ||||
| @useResult | ||||
| $Res call({ | ||||
|  String id, double amount, int attitude, String? message, String postId, String accountId, DateTime? createdAt, DateTime? updatedAt, DateTime? deletedAt | ||||
| }); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| class _$SnPostAwardCopyWithImpl<$Res> | ||||
|     implements $SnPostAwardCopyWith<$Res> { | ||||
|   _$SnPostAwardCopyWithImpl(this._self, this._then); | ||||
|  | ||||
|   final SnPostAward _self; | ||||
|   final $Res Function(SnPostAward) _then; | ||||
|  | ||||
| /// Create a copy of SnPostAward | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? amount = null,Object? attitude = null,Object? message = freezed,Object? postId = null,Object? accountId = null,Object? createdAt = freezed,Object? updatedAt = freezed,Object? deletedAt = freezed,}) { | ||||
|   return _then(_self.copyWith( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,amount: null == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable | ||||
| as double,attitude: null == attitude ? _self.attitude : attitude // ignore: cast_nullable_to_non_nullable | ||||
| as int,message: freezed == message ? _self.message : message // ignore: cast_nullable_to_non_nullable | ||||
| as String?,postId: null == postId ? _self.postId : postId // ignore: cast_nullable_to_non_nullable | ||||
| as String,accountId: null == accountId ? _self.accountId : accountId // ignore: cast_nullable_to_non_nullable | ||||
| as String,createdAt: freezed == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?,updatedAt: freezed == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
|   )); | ||||
| } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| /// Adds pattern-matching-related methods to [SnPostAward]. | ||||
| extension SnPostAwardPatterns on SnPostAward { | ||||
| /// 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 extends Object?>(TResult Function( _SnPostAward value)?  $default,{required TResult orElse(),}){ | ||||
| final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward() 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 extends Object?>(TResult Function( _SnPostAward value)  $default,){ | ||||
| final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward(): | ||||
| return $default(_that);} | ||||
| } | ||||
| /// 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 extends Object?>(TResult? Function( _SnPostAward value)?  $default,){ | ||||
| final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward() 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 extends Object?>(TResult Function( String id,  double amount,  int attitude,  String? message,  String postId,  String accountId,  DateTime? createdAt,  DateTime? updatedAt,  DateTime? deletedAt)?  $default,{required TResult orElse(),}) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward() when $default != null: | ||||
| return $default(_that.id,_that.amount,_that.attitude,_that.message,_that.postId,_that.accountId,_that.createdAt,_that.updatedAt,_that.deletedAt);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 extends Object?>(TResult Function( String id,  double amount,  int attitude,  String? message,  String postId,  String accountId,  DateTime? createdAt,  DateTime? updatedAt,  DateTime? deletedAt)  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward(): | ||||
| return $default(_that.id,_that.amount,_that.attitude,_that.message,_that.postId,_that.accountId,_that.createdAt,_that.updatedAt,_that.deletedAt);} | ||||
| } | ||||
| /// 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 extends Object?>(TResult? Function( String id,  double amount,  int attitude,  String? message,  String postId,  String accountId,  DateTime? createdAt,  DateTime? updatedAt,  DateTime? deletedAt)?  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnPostAward() when $default != null: | ||||
| return $default(_that.id,_that.amount,_that.attitude,_that.message,_that.postId,_that.accountId,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
|   return null; | ||||
|  | ||||
| } | ||||
| } | ||||
|  | ||||
| } | ||||
|  | ||||
| /// @nodoc | ||||
| @JsonSerializable() | ||||
|  | ||||
| class _SnPostAward implements SnPostAward { | ||||
|   const _SnPostAward({required this.id, required this.amount, required this.attitude, this.message, required this.postId, required this.accountId, this.createdAt = null, this.updatedAt = null, this.deletedAt}); | ||||
|   factory _SnPostAward.fromJson(Map<String, dynamic> json) => _$SnPostAwardFromJson(json); | ||||
|  | ||||
| @override final  String id; | ||||
| @override final  double amount; | ||||
| @override final  int attitude; | ||||
| @override final  String? message; | ||||
| @override final  String postId; | ||||
| @override final  String accountId; | ||||
| @override@JsonKey() final  DateTime? createdAt; | ||||
| @override@JsonKey() final  DateTime? updatedAt; | ||||
| @override final  DateTime? deletedAt; | ||||
|  | ||||
| /// Create a copy of SnPostAward | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @pragma('vm:prefer-inline') | ||||
| _$SnPostAwardCopyWith<_SnPostAward> get copyWith => __$SnPostAwardCopyWithImpl<_SnPostAward>(this, _$identity); | ||||
|  | ||||
| @override | ||||
| Map<String, dynamic> toJson() { | ||||
|   return _$SnPostAwardToJson(this, ); | ||||
| } | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is _SnPostAward&&(identical(other.id, id) || other.id == id)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.attitude, attitude) || other.attitude == attitude)&&(identical(other.message, message) || other.message == message)&&(identical(other.postId, postId) || other.postId == postId)&&(identical(other.accountId, accountId) || other.accountId == accountId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,amount,attitude,message,postId,accountId,createdAt,updatedAt,deletedAt); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnPostAward(id: $id, amount: $amount, attitude: $attitude, message: $message, postId: $postId, accountId: $accountId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
| /// @nodoc | ||||
| abstract mixin class _$SnPostAwardCopyWith<$Res> implements $SnPostAwardCopyWith<$Res> { | ||||
|   factory _$SnPostAwardCopyWith(_SnPostAward value, $Res Function(_SnPostAward) _then) = __$SnPostAwardCopyWithImpl; | ||||
| @override @useResult | ||||
| $Res call({ | ||||
|  String id, double amount, int attitude, String? message, String postId, String accountId, DateTime? createdAt, DateTime? updatedAt, DateTime? deletedAt | ||||
| }); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| class __$SnPostAwardCopyWithImpl<$Res> | ||||
|     implements _$SnPostAwardCopyWith<$Res> { | ||||
|   __$SnPostAwardCopyWithImpl(this._self, this._then); | ||||
|  | ||||
|   final _SnPostAward _self; | ||||
|   final $Res Function(_SnPostAward) _then; | ||||
|  | ||||
| /// Create a copy of SnPostAward | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? amount = null,Object? attitude = null,Object? message = freezed,Object? postId = null,Object? accountId = null,Object? createdAt = freezed,Object? updatedAt = freezed,Object? deletedAt = freezed,}) { | ||||
|   return _then(_SnPostAward( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,amount: null == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable | ||||
| as double,attitude: null == attitude ? _self.attitude : attitude // ignore: cast_nullable_to_non_nullable | ||||
| as int,message: freezed == message ? _self.message : message // ignore: cast_nullable_to_non_nullable | ||||
| as String?,postId: null == postId ? _self.postId : postId // ignore: cast_nullable_to_non_nullable | ||||
| as String,accountId: null == accountId ? _self.accountId : accountId // ignore: cast_nullable_to_non_nullable | ||||
| as String,createdAt: freezed == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?,updatedAt: freezed == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
|   )); | ||||
| } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
| // dart format on | ||||
|   | ||||
| @@ -196,3 +196,37 @@ Map<String, dynamic> _$SnPostEmbedViewToJson(_SnPostEmbedView instance) => | ||||
|     }; | ||||
|  | ||||
| const _$PostEmbedViewRendererEnumMap = {PostEmbedViewRenderer.webView: 0}; | ||||
|  | ||||
| _SnPostAward _$SnPostAwardFromJson(Map<String, dynamic> json) => _SnPostAward( | ||||
|   id: json['id'] as String, | ||||
|   amount: (json['amount'] as num).toDouble(), | ||||
|   attitude: (json['attitude'] as num).toInt(), | ||||
|   message: json['message'] as String?, | ||||
|   postId: json['post_id'] as String, | ||||
|   accountId: json['account_id'] as String, | ||||
|   createdAt: | ||||
|       json['created_at'] == null | ||||
|           ? null | ||||
|           : DateTime.parse(json['created_at'] as String), | ||||
|   updatedAt: | ||||
|       json['updated_at'] == null | ||||
|           ? null | ||||
|           : DateTime.parse(json['updated_at'] as String), | ||||
|   deletedAt: | ||||
|       json['deleted_at'] == null | ||||
|           ? null | ||||
|           : DateTime.parse(json['deleted_at'] as String), | ||||
| ); | ||||
|  | ||||
| Map<String, dynamic> _$SnPostAwardToJson(_SnPostAward instance) => | ||||
|     <String, dynamic>{ | ||||
|       'id': instance.id, | ||||
|       'amount': instance.amount, | ||||
|       'attitude': instance.attitude, | ||||
|       'message': instance.message, | ||||
|       'post_id': instance.postId, | ||||
|       'account_id': instance.accountId, | ||||
|       'created_at': instance.createdAt?.toIso8601String(), | ||||
|       'updated_at': instance.updatedAt?.toIso8601String(), | ||||
|       'deleted_at': instance.deletedAt?.toIso8601String(), | ||||
|     }; | ||||
|   | ||||
| @@ -108,17 +108,14 @@ sealed class SnWalletOrder with _$SnWalletOrder { | ||||
|     required String id, | ||||
|     required int status, | ||||
|     required String currency, | ||||
|     required dynamic remarks, | ||||
|     required String? remarks, | ||||
|     required String appIdentifier, | ||||
|     @Default({}) Map<String, dynamic> meta, | ||||
|     required int amount, | ||||
|     required DateTime expiredAt, | ||||
|     required String? payeeWalletId, | ||||
|     required SnWallet? payeeWallet, | ||||
|     required String? transactionId, | ||||
|     required SnTransaction? transaction, | ||||
|     required String? issuerAppId, | ||||
|     required dynamic issuerApp, | ||||
|     required DateTime createdAt, | ||||
|     required DateTime updatedAt, | ||||
|     required DateTime? deletedAt, | ||||
|   | ||||
| @@ -1554,7 +1554,7 @@ as String, | ||||
| /// @nodoc | ||||
| mixin _$SnWalletOrder { | ||||
|  | ||||
|  String get id; int get status; String get currency; dynamic get remarks; String get appIdentifier; Map<String, dynamic> get meta; int get amount; DateTime get expiredAt; String? get payeeWalletId; SnWallet? get payeeWallet; String? get transactionId; SnTransaction? get transaction; String? get issuerAppId; dynamic get issuerApp; DateTime get createdAt; DateTime get updatedAt; DateTime? get deletedAt; | ||||
|  String get id; int get status; String get currency; String? get remarks; String get appIdentifier; Map<String, dynamic> get meta; int get amount; DateTime get expiredAt; String? get payeeWalletId; String? get transactionId; String? get issuerAppId; DateTime get createdAt; DateTime get updatedAt; DateTime? get deletedAt; | ||||
| /// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @@ -1567,16 +1567,16 @@ $SnWalletOrderCopyWith<SnWalletOrder> get copyWith => _$SnWalletOrderCopyWithImp | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is SnWalletOrder&&(identical(other.id, id) || other.id == id)&&(identical(other.status, status) || other.status == status)&&(identical(other.currency, currency) || other.currency == currency)&&const DeepCollectionEquality().equals(other.remarks, remarks)&&(identical(other.appIdentifier, appIdentifier) || other.appIdentifier == appIdentifier)&&const DeepCollectionEquality().equals(other.meta, meta)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.expiredAt, expiredAt) || other.expiredAt == expiredAt)&&(identical(other.payeeWalletId, payeeWalletId) || other.payeeWalletId == payeeWalletId)&&(identical(other.payeeWallet, payeeWallet) || other.payeeWallet == payeeWallet)&&(identical(other.transactionId, transactionId) || other.transactionId == transactionId)&&(identical(other.transaction, transaction) || other.transaction == transaction)&&(identical(other.issuerAppId, issuerAppId) || other.issuerAppId == issuerAppId)&&const DeepCollectionEquality().equals(other.issuerApp, issuerApp)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is SnWalletOrder&&(identical(other.id, id) || other.id == id)&&(identical(other.status, status) || other.status == status)&&(identical(other.currency, currency) || other.currency == currency)&&(identical(other.remarks, remarks) || other.remarks == remarks)&&(identical(other.appIdentifier, appIdentifier) || other.appIdentifier == appIdentifier)&&const DeepCollectionEquality().equals(other.meta, meta)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.expiredAt, expiredAt) || other.expiredAt == expiredAt)&&(identical(other.payeeWalletId, payeeWalletId) || other.payeeWalletId == payeeWalletId)&&(identical(other.transactionId, transactionId) || other.transactionId == transactionId)&&(identical(other.issuerAppId, issuerAppId) || other.issuerAppId == issuerAppId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,status,currency,const DeepCollectionEquality().hash(remarks),appIdentifier,const DeepCollectionEquality().hash(meta),amount,expiredAt,payeeWalletId,payeeWallet,transactionId,transaction,issuerAppId,const DeepCollectionEquality().hash(issuerApp),createdAt,updatedAt,deletedAt); | ||||
| int get hashCode => Object.hash(runtimeType,id,status,currency,remarks,appIdentifier,const DeepCollectionEquality().hash(meta),amount,expiredAt,payeeWalletId,transactionId,issuerAppId,createdAt,updatedAt,deletedAt); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnWalletOrder(id: $id, status: $status, currency: $currency, remarks: $remarks, appIdentifier: $appIdentifier, meta: $meta, amount: $amount, expiredAt: $expiredAt, payeeWalletId: $payeeWalletId, payeeWallet: $payeeWallet, transactionId: $transactionId, transaction: $transaction, issuerAppId: $issuerAppId, issuerApp: $issuerApp, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
|   return 'SnWalletOrder(id: $id, status: $status, currency: $currency, remarks: $remarks, appIdentifier: $appIdentifier, meta: $meta, amount: $amount, expiredAt: $expiredAt, payeeWalletId: $payeeWalletId, transactionId: $transactionId, issuerAppId: $issuerAppId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1587,11 +1587,11 @@ abstract mixin class $SnWalletOrderCopyWith<$Res>  { | ||||
|   factory $SnWalletOrderCopyWith(SnWalletOrder value, $Res Function(SnWalletOrder) _then) = _$SnWalletOrderCopyWithImpl; | ||||
| @useResult | ||||
| $Res call({ | ||||
|  String id, int status, String currency, dynamic remarks, String appIdentifier, Map<String, dynamic> meta, int amount, DateTime expiredAt, String? payeeWalletId, SnWallet? payeeWallet, String? transactionId, SnTransaction? transaction, String? issuerAppId, dynamic issuerApp, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
|  String id, int status, String currency, String? remarks, String appIdentifier, Map<String, dynamic> meta, int amount, DateTime expiredAt, String? payeeWalletId, String? transactionId, String? issuerAppId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
| }); | ||||
|  | ||||
|  | ||||
| $SnWalletCopyWith<$Res>? get payeeWallet;$SnTransactionCopyWith<$Res>? get transaction; | ||||
|  | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| @@ -1604,53 +1604,26 @@ class _$SnWalletOrderCopyWithImpl<$Res> | ||||
|  | ||||
| /// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? status = null,Object? currency = null,Object? remarks = freezed,Object? appIdentifier = null,Object? meta = null,Object? amount = null,Object? expiredAt = null,Object? payeeWalletId = freezed,Object? payeeWallet = freezed,Object? transactionId = freezed,Object? transaction = freezed,Object? issuerAppId = freezed,Object? issuerApp = freezed,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
| @pragma('vm:prefer-inline') @override $Res call({Object? id = null,Object? status = null,Object? currency = null,Object? remarks = freezed,Object? appIdentifier = null,Object? meta = null,Object? amount = null,Object? expiredAt = null,Object? payeeWalletId = freezed,Object? transactionId = freezed,Object? issuerAppId = freezed,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
|   return _then(_self.copyWith( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,status: null == status ? _self.status : status // ignore: cast_nullable_to_non_nullable | ||||
| as int,currency: null == currency ? _self.currency : currency // ignore: cast_nullable_to_non_nullable | ||||
| as String,remarks: freezed == remarks ? _self.remarks : remarks // ignore: cast_nullable_to_non_nullable | ||||
| as dynamic,appIdentifier: null == appIdentifier ? _self.appIdentifier : appIdentifier // ignore: cast_nullable_to_non_nullable | ||||
| as String?,appIdentifier: null == appIdentifier ? _self.appIdentifier : appIdentifier // ignore: cast_nullable_to_non_nullable | ||||
| as String,meta: null == meta ? _self.meta : meta // ignore: cast_nullable_to_non_nullable | ||||
| as Map<String, dynamic>,amount: null == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable | ||||
| as int,expiredAt: null == expiredAt ? _self.expiredAt : expiredAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,payeeWalletId: freezed == payeeWalletId ? _self.payeeWalletId : payeeWalletId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,payeeWallet: freezed == payeeWallet ? _self.payeeWallet : payeeWallet // ignore: cast_nullable_to_non_nullable | ||||
| as SnWallet?,transactionId: freezed == transactionId ? _self.transactionId : transactionId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,transaction: freezed == transaction ? _self.transaction : transaction // ignore: cast_nullable_to_non_nullable | ||||
| as SnTransaction?,issuerAppId: freezed == issuerAppId ? _self.issuerAppId : issuerAppId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,issuerApp: freezed == issuerApp ? _self.issuerApp : issuerApp // ignore: cast_nullable_to_non_nullable | ||||
| as dynamic,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as String?,transactionId: freezed == transactionId ? _self.transactionId : transactionId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,issuerAppId: freezed == issuerAppId ? _self.issuerAppId : issuerAppId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
|   )); | ||||
| } | ||||
| /// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnWalletCopyWith<$Res>? get payeeWallet { | ||||
|     if (_self.payeeWallet == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnWalletCopyWith<$Res>(_self.payeeWallet!, (value) { | ||||
|     return _then(_self.copyWith(payeeWallet: value)); | ||||
|   }); | ||||
| }/// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnTransactionCopyWith<$Res>? get transaction { | ||||
|     if (_self.transaction == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnTransactionCopyWith<$Res>(_self.transaction!, (value) { | ||||
|     return _then(_self.copyWith(transaction: value)); | ||||
|   }); | ||||
| } | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1729,10 +1702,10 @@ return $default(_that);case _: | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id,  int status,  String currency,  dynamic remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  SnWallet? payeeWallet,  String? transactionId,  SnTransaction? transaction,  String? issuerAppId,  dynamic issuerApp,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,{required TResult orElse(),}) {final _that = this; | ||||
| @optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id,  int status,  String currency,  String? remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  String? transactionId,  String? issuerAppId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,{required TResult orElse(),}) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnWalletOrder() when $default != null: | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.payeeWallet,_that.transactionId,_that.transaction,_that.issuerAppId,_that.issuerApp,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.transactionId,_that.issuerAppId,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
|   return orElse(); | ||||
|  | ||||
| } | ||||
| @@ -1750,10 +1723,10 @@ return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIden | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String id,  int status,  String currency,  dynamic remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  SnWallet? payeeWallet,  String? transactionId,  SnTransaction? transaction,  String? issuerAppId,  dynamic issuerApp,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)  $default,) {final _that = this; | ||||
| @optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String id,  int status,  String currency,  String? remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  String? transactionId,  String? issuerAppId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnWalletOrder(): | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.payeeWallet,_that.transactionId,_that.transaction,_that.issuerAppId,_that.issuerApp,_that.createdAt,_that.updatedAt,_that.deletedAt);} | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.transactionId,_that.issuerAppId,_that.createdAt,_that.updatedAt,_that.deletedAt);} | ||||
| } | ||||
| /// A variant of `when` that fallback to returning `null` | ||||
| /// | ||||
| @@ -1767,10 +1740,10 @@ return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIden | ||||
| /// } | ||||
| /// ``` | ||||
|  | ||||
| @optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String id,  int status,  String currency,  dynamic remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  SnWallet? payeeWallet,  String? transactionId,  SnTransaction? transaction,  String? issuerAppId,  dynamic issuerApp,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,) {final _that = this; | ||||
| @optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String id,  int status,  String currency,  String? remarks,  String appIdentifier,  Map<String, dynamic> meta,  int amount,  DateTime expiredAt,  String? payeeWalletId,  String? transactionId,  String? issuerAppId,  DateTime createdAt,  DateTime updatedAt,  DateTime? deletedAt)?  $default,) {final _that = this; | ||||
| switch (_that) { | ||||
| case _SnWalletOrder() when $default != null: | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.payeeWallet,_that.transactionId,_that.transaction,_that.issuerAppId,_that.issuerApp,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
| return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIdentifier,_that.meta,_that.amount,_that.expiredAt,_that.payeeWalletId,_that.transactionId,_that.issuerAppId,_that.createdAt,_that.updatedAt,_that.deletedAt);case _: | ||||
|   return null; | ||||
|  | ||||
| } | ||||
| @@ -1782,13 +1755,13 @@ return $default(_that.id,_that.status,_that.currency,_that.remarks,_that.appIden | ||||
| @JsonSerializable() | ||||
|  | ||||
| class _SnWalletOrder implements SnWalletOrder { | ||||
|   const _SnWalletOrder({required this.id, required this.status, required this.currency, required this.remarks, required this.appIdentifier, final  Map<String, dynamic> meta = const {}, required this.amount, required this.expiredAt, required this.payeeWalletId, required this.payeeWallet, required this.transactionId, required this.transaction, required this.issuerAppId, required this.issuerApp, required this.createdAt, required this.updatedAt, required this.deletedAt}): _meta = meta; | ||||
|   const _SnWalletOrder({required this.id, required this.status, required this.currency, required this.remarks, required this.appIdentifier, final  Map<String, dynamic> meta = const {}, required this.amount, required this.expiredAt, required this.payeeWalletId, required this.transactionId, required this.issuerAppId, required this.createdAt, required this.updatedAt, required this.deletedAt}): _meta = meta; | ||||
|   factory _SnWalletOrder.fromJson(Map<String, dynamic> json) => _$SnWalletOrderFromJson(json); | ||||
|  | ||||
| @override final  String id; | ||||
| @override final  int status; | ||||
| @override final  String currency; | ||||
| @override final  dynamic remarks; | ||||
| @override final  String? remarks; | ||||
| @override final  String appIdentifier; | ||||
|  final  Map<String, dynamic> _meta; | ||||
| @override@JsonKey() Map<String, dynamic> get meta { | ||||
| @@ -1800,11 +1773,8 @@ class _SnWalletOrder implements SnWalletOrder { | ||||
| @override final  int amount; | ||||
| @override final  DateTime expiredAt; | ||||
| @override final  String? payeeWalletId; | ||||
| @override final  SnWallet? payeeWallet; | ||||
| @override final  String? transactionId; | ||||
| @override final  SnTransaction? transaction; | ||||
| @override final  String? issuerAppId; | ||||
| @override final  dynamic issuerApp; | ||||
| @override final  DateTime createdAt; | ||||
| @override final  DateTime updatedAt; | ||||
| @override final  DateTime? deletedAt; | ||||
| @@ -1822,16 +1792,16 @@ Map<String, dynamic> toJson() { | ||||
|  | ||||
| @override | ||||
| bool operator ==(Object other) { | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is _SnWalletOrder&&(identical(other.id, id) || other.id == id)&&(identical(other.status, status) || other.status == status)&&(identical(other.currency, currency) || other.currency == currency)&&const DeepCollectionEquality().equals(other.remarks, remarks)&&(identical(other.appIdentifier, appIdentifier) || other.appIdentifier == appIdentifier)&&const DeepCollectionEquality().equals(other._meta, _meta)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.expiredAt, expiredAt) || other.expiredAt == expiredAt)&&(identical(other.payeeWalletId, payeeWalletId) || other.payeeWalletId == payeeWalletId)&&(identical(other.payeeWallet, payeeWallet) || other.payeeWallet == payeeWallet)&&(identical(other.transactionId, transactionId) || other.transactionId == transactionId)&&(identical(other.transaction, transaction) || other.transaction == transaction)&&(identical(other.issuerAppId, issuerAppId) || other.issuerAppId == issuerAppId)&&const DeepCollectionEquality().equals(other.issuerApp, issuerApp)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
|   return identical(this, other) || (other.runtimeType == runtimeType&&other is _SnWalletOrder&&(identical(other.id, id) || other.id == id)&&(identical(other.status, status) || other.status == status)&&(identical(other.currency, currency) || other.currency == currency)&&(identical(other.remarks, remarks) || other.remarks == remarks)&&(identical(other.appIdentifier, appIdentifier) || other.appIdentifier == appIdentifier)&&const DeepCollectionEquality().equals(other._meta, _meta)&&(identical(other.amount, amount) || other.amount == amount)&&(identical(other.expiredAt, expiredAt) || other.expiredAt == expiredAt)&&(identical(other.payeeWalletId, payeeWalletId) || other.payeeWalletId == payeeWalletId)&&(identical(other.transactionId, transactionId) || other.transactionId == transactionId)&&(identical(other.issuerAppId, issuerAppId) || other.issuerAppId == issuerAppId)&&(identical(other.createdAt, createdAt) || other.createdAt == createdAt)&&(identical(other.updatedAt, updatedAt) || other.updatedAt == updatedAt)&&(identical(other.deletedAt, deletedAt) || other.deletedAt == deletedAt)); | ||||
| } | ||||
|  | ||||
| @JsonKey(includeFromJson: false, includeToJson: false) | ||||
| @override | ||||
| int get hashCode => Object.hash(runtimeType,id,status,currency,const DeepCollectionEquality().hash(remarks),appIdentifier,const DeepCollectionEquality().hash(_meta),amount,expiredAt,payeeWalletId,payeeWallet,transactionId,transaction,issuerAppId,const DeepCollectionEquality().hash(issuerApp),createdAt,updatedAt,deletedAt); | ||||
| int get hashCode => Object.hash(runtimeType,id,status,currency,remarks,appIdentifier,const DeepCollectionEquality().hash(_meta),amount,expiredAt,payeeWalletId,transactionId,issuerAppId,createdAt,updatedAt,deletedAt); | ||||
|  | ||||
| @override | ||||
| String toString() { | ||||
|   return 'SnWalletOrder(id: $id, status: $status, currency: $currency, remarks: $remarks, appIdentifier: $appIdentifier, meta: $meta, amount: $amount, expiredAt: $expiredAt, payeeWalletId: $payeeWalletId, payeeWallet: $payeeWallet, transactionId: $transactionId, transaction: $transaction, issuerAppId: $issuerAppId, issuerApp: $issuerApp, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
|   return 'SnWalletOrder(id: $id, status: $status, currency: $currency, remarks: $remarks, appIdentifier: $appIdentifier, meta: $meta, amount: $amount, expiredAt: $expiredAt, payeeWalletId: $payeeWalletId, transactionId: $transactionId, issuerAppId: $issuerAppId, createdAt: $createdAt, updatedAt: $updatedAt, deletedAt: $deletedAt)'; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1842,11 +1812,11 @@ abstract mixin class _$SnWalletOrderCopyWith<$Res> implements $SnWalletOrderCopy | ||||
|   factory _$SnWalletOrderCopyWith(_SnWalletOrder value, $Res Function(_SnWalletOrder) _then) = __$SnWalletOrderCopyWithImpl; | ||||
| @override @useResult | ||||
| $Res call({ | ||||
|  String id, int status, String currency, dynamic remarks, String appIdentifier, Map<String, dynamic> meta, int amount, DateTime expiredAt, String? payeeWalletId, SnWallet? payeeWallet, String? transactionId, SnTransaction? transaction, String? issuerAppId, dynamic issuerApp, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
|  String id, int status, String currency, String? remarks, String appIdentifier, Map<String, dynamic> meta, int amount, DateTime expiredAt, String? payeeWalletId, String? transactionId, String? issuerAppId, DateTime createdAt, DateTime updatedAt, DateTime? deletedAt | ||||
| }); | ||||
|  | ||||
|  | ||||
| @override $SnWalletCopyWith<$Res>? get payeeWallet;@override $SnTransactionCopyWith<$Res>? get transaction; | ||||
|  | ||||
|  | ||||
| } | ||||
| /// @nodoc | ||||
| @@ -1859,54 +1829,27 @@ class __$SnWalletOrderCopyWithImpl<$Res> | ||||
|  | ||||
| /// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? status = null,Object? currency = null,Object? remarks = freezed,Object? appIdentifier = null,Object? meta = null,Object? amount = null,Object? expiredAt = null,Object? payeeWalletId = freezed,Object? payeeWallet = freezed,Object? transactionId = freezed,Object? transaction = freezed,Object? issuerAppId = freezed,Object? issuerApp = freezed,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
| @override @pragma('vm:prefer-inline') $Res call({Object? id = null,Object? status = null,Object? currency = null,Object? remarks = freezed,Object? appIdentifier = null,Object? meta = null,Object? amount = null,Object? expiredAt = null,Object? payeeWalletId = freezed,Object? transactionId = freezed,Object? issuerAppId = freezed,Object? createdAt = null,Object? updatedAt = null,Object? deletedAt = freezed,}) { | ||||
|   return _then(_SnWalletOrder( | ||||
| id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable | ||||
| as String,status: null == status ? _self.status : status // ignore: cast_nullable_to_non_nullable | ||||
| as int,currency: null == currency ? _self.currency : currency // ignore: cast_nullable_to_non_nullable | ||||
| as String,remarks: freezed == remarks ? _self.remarks : remarks // ignore: cast_nullable_to_non_nullable | ||||
| as dynamic,appIdentifier: null == appIdentifier ? _self.appIdentifier : appIdentifier // ignore: cast_nullable_to_non_nullable | ||||
| as String?,appIdentifier: null == appIdentifier ? _self.appIdentifier : appIdentifier // ignore: cast_nullable_to_non_nullable | ||||
| as String,meta: null == meta ? _self._meta : meta // ignore: cast_nullable_to_non_nullable | ||||
| as Map<String, dynamic>,amount: null == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable | ||||
| as int,expiredAt: null == expiredAt ? _self.expiredAt : expiredAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,payeeWalletId: freezed == payeeWalletId ? _self.payeeWalletId : payeeWalletId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,payeeWallet: freezed == payeeWallet ? _self.payeeWallet : payeeWallet // ignore: cast_nullable_to_non_nullable | ||||
| as SnWallet?,transactionId: freezed == transactionId ? _self.transactionId : transactionId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,transaction: freezed == transaction ? _self.transaction : transaction // ignore: cast_nullable_to_non_nullable | ||||
| as SnTransaction?,issuerAppId: freezed == issuerAppId ? _self.issuerAppId : issuerAppId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,issuerApp: freezed == issuerApp ? _self.issuerApp : issuerApp // ignore: cast_nullable_to_non_nullable | ||||
| as dynamic,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as String?,transactionId: freezed == transactionId ? _self.transactionId : transactionId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,issuerAppId: freezed == issuerAppId ? _self.issuerAppId : issuerAppId // ignore: cast_nullable_to_non_nullable | ||||
| as String?,createdAt: null == createdAt ? _self.createdAt : createdAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,updatedAt: null == updatedAt ? _self.updatedAt : updatedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime,deletedAt: freezed == deletedAt ? _self.deletedAt : deletedAt // ignore: cast_nullable_to_non_nullable | ||||
| as DateTime?, | ||||
|   )); | ||||
| } | ||||
|  | ||||
| /// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnWalletCopyWith<$Res>? get payeeWallet { | ||||
|     if (_self.payeeWallet == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnWalletCopyWith<$Res>(_self.payeeWallet!, (value) { | ||||
|     return _then(_self.copyWith(payeeWallet: value)); | ||||
|   }); | ||||
| }/// Create a copy of SnWalletOrder | ||||
| /// with the given fields replaced by the non-null parameter values. | ||||
| @override | ||||
| @pragma('vm:prefer-inline') | ||||
| $SnTransactionCopyWith<$Res>? get transaction { | ||||
|     if (_self.transaction == null) { | ||||
|     return null; | ||||
|   } | ||||
|  | ||||
|   return $SnTransactionCopyWith<$Res>(_self.transaction!, (value) { | ||||
|     return _then(_self.copyWith(transaction: value)); | ||||
|   }); | ||||
| } | ||||
| } | ||||
|  | ||||
| // dart format on | ||||
|   | ||||
| @@ -195,25 +195,14 @@ _SnWalletOrder _$SnWalletOrderFromJson(Map<String, dynamic> json) => | ||||
|       id: json['id'] as String, | ||||
|       status: (json['status'] as num).toInt(), | ||||
|       currency: json['currency'] as String, | ||||
|       remarks: json['remarks'], | ||||
|       remarks: json['remarks'] as String?, | ||||
|       appIdentifier: json['app_identifier'] as String, | ||||
|       meta: json['meta'] as Map<String, dynamic>? ?? const {}, | ||||
|       amount: (json['amount'] as num).toInt(), | ||||
|       expiredAt: DateTime.parse(json['expired_at'] as String), | ||||
|       payeeWalletId: json['payee_wallet_id'] as String?, | ||||
|       payeeWallet: | ||||
|           json['payee_wallet'] == null | ||||
|               ? null | ||||
|               : SnWallet.fromJson(json['payee_wallet'] as Map<String, dynamic>), | ||||
|       transactionId: json['transaction_id'] as String?, | ||||
|       transaction: | ||||
|           json['transaction'] == null | ||||
|               ? null | ||||
|               : SnTransaction.fromJson( | ||||
|                 json['transaction'] as Map<String, dynamic>, | ||||
|               ), | ||||
|       issuerAppId: json['issuer_app_id'] as String?, | ||||
|       issuerApp: json['issuer_app'], | ||||
|       createdAt: DateTime.parse(json['created_at'] as String), | ||||
|       updatedAt: DateTime.parse(json['updated_at'] as String), | ||||
|       deletedAt: | ||||
| @@ -233,11 +222,8 @@ Map<String, dynamic> _$SnWalletOrderToJson(_SnWalletOrder instance) => | ||||
|       'amount': instance.amount, | ||||
|       'expired_at': instance.expiredAt.toIso8601String(), | ||||
|       'payee_wallet_id': instance.payeeWalletId, | ||||
|       'payee_wallet': instance.payeeWallet?.toJson(), | ||||
|       'transaction_id': instance.transactionId, | ||||
|       'transaction': instance.transaction?.toJson(), | ||||
|       'issuer_app_id': instance.issuerAppId, | ||||
|       'issuer_app': instance.issuerApp, | ||||
|       'created_at': instance.createdAt.toIso8601String(), | ||||
|       'updated_at': instance.updatedAt.toIso8601String(), | ||||
|       'deleted_at': instance.deletedAt?.toIso8601String(), | ||||
|   | ||||
| @@ -2,8 +2,9 @@ import 'dart:async'; | ||||
| import 'dart:convert'; | ||||
| import 'dart:developer' as developer; | ||||
| import 'dart:io'; | ||||
| import 'dart:typed_data'; | ||||
| import 'package:flutter/foundation.dart'; | ||||
| import 'package:hooks_riverpod/hooks_riverpod.dart'; | ||||
| import 'package:island/pods/network.dart'; | ||||
| import 'package:shelf/shelf.dart'; | ||||
| import 'package:shelf/shelf_io.dart' as shelf_io; | ||||
| import 'package:shelf_web_socket/shelf_web_socket.dart'; | ||||
| @@ -161,7 +162,7 @@ class ActivityRpcServer { | ||||
|         shelf_io.serveRequests(_httpServer!, (Request request) async { | ||||
|           developer.log('new request', name: kRpcLogPrefix); | ||||
|           if (request.headers['upgrade']?.toLowerCase() == 'websocket') { | ||||
|             final handler = webSocketHandler((WebSocketChannel channel) { | ||||
|             final handler = webSocketHandler((WebSocketChannel channel, _) { | ||||
|               _wsSockets.add(channel); | ||||
|               _onWsConnection(channel, request); | ||||
|             }); | ||||
| @@ -521,11 +522,16 @@ class ServerStateNotifier extends StateNotifier<ServerState> { | ||||
|     : super(ServerState(status: 'Server not started')); | ||||
|  | ||||
|   Future<void> start() async { | ||||
|     try { | ||||
|       await server.start(); | ||||
|       state = state.copyWith(status: 'Server running'); | ||||
|     } catch (e) { | ||||
|       state = state.copyWith(status: 'Server failed: $e'); | ||||
|     // Only start server on desktop platforms | ||||
|     if (!Platform.isAndroid && !Platform.isIOS && !kIsWeb) { | ||||
|       try { | ||||
|         await server.start(); | ||||
|         state = state.copyWith(status: 'Server running'); | ||||
|       } catch (e) { | ||||
|         state = state.copyWith(status: 'Server failed: $e'); | ||||
|       } | ||||
|     } else { | ||||
|       state = state.copyWith(status: 'Server disabled on mobile/web'); | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -572,11 +578,22 @@ final rpcServerStateProvider = | ||||
|             'nonce': '12345', // Should be dynamic | ||||
|           }); | ||||
|         }, | ||||
|         'message': (socket, dynamic data) { | ||||
|         'message': (socket, dynamic data) async { | ||||
|           if (data['cmd'] == 'SET_ACTIVITY') { | ||||
|             notifier.addActivity( | ||||
|               'Activity: ${data['args']['activity']['details'] ?? 'Unknown'}', | ||||
|             ); | ||||
|             // Call setRemoteActivityStatus | ||||
|             final label = data['args']['activity']['details'] ?? 'Unknown'; | ||||
|             final appId = socket.clientId; | ||||
|             try { | ||||
|               await setRemoteActivityStatus(ref, label, appId); | ||||
|             } catch (e) { | ||||
|               developer.log( | ||||
|                 'Failed to set remote activity status: $e', | ||||
|                 name: kRpcLogPrefix, | ||||
|               ); | ||||
|             } | ||||
|             // Echo back success | ||||
|             socket.send({ | ||||
|               'cmd': 'SET_ACTIVITY', | ||||
| @@ -586,8 +603,17 @@ final rpcServerStateProvider = | ||||
|             }); | ||||
|           } | ||||
|         }, | ||||
|         'close': (socket) { | ||||
|         'close': (socket) async { | ||||
|           notifier.updateStatus('Client disconnected'); | ||||
|           final appId = socket.clientId; | ||||
|           try { | ||||
|             await unsetRemoteActivityStatus(ref, appId); | ||||
|           } catch (e) { | ||||
|             developer.log( | ||||
|               'Failed to unset remote activity status: $e', | ||||
|               name: kRpcLogPrefix, | ||||
|             ); | ||||
|           } | ||||
|         }, | ||||
|       }); | ||||
|       return notifier; | ||||
| @@ -597,3 +623,29 @@ final rpcServerProvider = Provider<ActivityRpcServer>((ref) { | ||||
|   final notifier = ref.watch(rpcServerStateProvider.notifier); | ||||
|   return notifier.server; | ||||
| }); | ||||
|  | ||||
| Future<void> setRemoteActivityStatus( | ||||
|   Ref ref, | ||||
|   String label, | ||||
|   String appId, | ||||
| ) async { | ||||
|   final apiClient = ref.read(apiClientProvider); | ||||
|   await apiClient.post( | ||||
|     '/id/accounts/me/statuses', | ||||
|     data: { | ||||
|       'is_invisible': false, | ||||
|       'is_not_disturb': false, | ||||
|       'is_automated': true, | ||||
|       'label': label, | ||||
|       'app_identifier': appId, | ||||
|     }, | ||||
|   ); | ||||
| } | ||||
|  | ||||
| Future<void> unsetRemoteActivityStatus(Ref ref, String appId) async { | ||||
|   final apiClient = ref.read(apiClientProvider); | ||||
|   await apiClient.delete( | ||||
|     '/id/accounts/me/statuses', | ||||
|     queryParameters: {'app': appId}, | ||||
|   ); | ||||
| } | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:gap/gap.dart'; | ||||
| import 'package:go_router/go_router.dart'; | ||||
| @@ -10,6 +11,7 @@ import 'package:material_symbols_icons/symbols.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| import 'package:riverpod_paging_utils/riverpod_paging_utils.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
| import 'package:styled_widget/styled_widget.dart'; | ||||
|  | ||||
| part 'poll_list.g.dart'; | ||||
|  | ||||
| @@ -117,14 +119,14 @@ class CreatorPollListScreen extends HookConsumerWidget { | ||||
|   } | ||||
| } | ||||
|  | ||||
| class _CreatorPollItem extends StatelessWidget { | ||||
| class _CreatorPollItem extends HookConsumerWidget { | ||||
|   final String pubName; | ||||
|   const _CreatorPollItem({required this.pollWithStats, required this.pubName}); | ||||
|  | ||||
|   final SnPollWithStats pollWithStats; | ||||
|  | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|   Widget build(BuildContext context, WidgetRef ref) { | ||||
|     final theme = Theme.of(context); | ||||
|     final ended = pollWithStats.endedAt; | ||||
|     final endedText = | ||||
| @@ -167,7 +169,7 @@ class _CreatorPollItem extends StatelessWidget { | ||||
|                     children: [ | ||||
|                       const Icon(Symbols.edit), | ||||
|                       const Gap(16), | ||||
|                       Text('Edit'), | ||||
|                       Text('edit').tr(), | ||||
|                     ], | ||||
|                   ), | ||||
|                   onTap: () { | ||||
| @@ -177,6 +179,61 @@ class _CreatorPollItem extends StatelessWidget { | ||||
|                     ); | ||||
|                   }, | ||||
|                 ), | ||||
|                 PopupMenuItem( | ||||
|                   child: Row( | ||||
|                     children: [ | ||||
|                       const Icon(Symbols.delete, color: Colors.red), | ||||
|                       const Gap(16), | ||||
|                       Text('delete').tr().textColor(Colors.red), | ||||
|                     ], | ||||
|                   ), | ||||
|                   onTap: () async { | ||||
|                     final confirmed = await showDialog<bool>( | ||||
|                       context: context, | ||||
|                       builder: | ||||
|                           (context) => AlertDialog( | ||||
|                             title: Text('Delete Poll'), | ||||
|                             content: Text( | ||||
|                               'Are you sure you want to delete this poll?', | ||||
|                             ), | ||||
|                             actions: [ | ||||
|                               TextButton( | ||||
|                                 onPressed: | ||||
|                                     () => Navigator.of(context).pop(false), | ||||
|                                 child: Text('Cancel'), | ||||
|                               ), | ||||
|                               TextButton( | ||||
|                                 onPressed: | ||||
|                                     () => Navigator.of(context).pop(true), | ||||
|                                 child: Text('Delete'), | ||||
|                               ), | ||||
|                             ], | ||||
|                           ), | ||||
|                     ); | ||||
|                     if (confirmed == true) { | ||||
|                       try { | ||||
|                         final client = ref.read(apiClientProvider); | ||||
|                         await client.delete( | ||||
|                           '/sphere/polls/${pollWithStats.id}', | ||||
|                         ); | ||||
|                         ref.invalidate(pollListNotifierProvider(pubName)); | ||||
|                         if (context.mounted) { | ||||
|                           ScaffoldMessenger.of(context).showSnackBar( | ||||
|                             SnackBar( | ||||
|                               content: Text('Poll deleted successfully'), | ||||
|                             ), | ||||
|                           ); | ||||
|                         } | ||||
|                       } catch (e) { | ||||
|                         if (context.mounted) { | ||||
|                           ScaffoldMessenger.of(context).showSnackBar( | ||||
|                             SnackBar(content: Text('Failed to delete poll')), | ||||
|                           ); | ||||
|                         } | ||||
|                       } | ||||
|                     } | ||||
|                   }, | ||||
|                 ), | ||||
|               ], | ||||
|         ), | ||||
|         onTap: () { | ||||
|   | ||||
| @@ -10,6 +10,7 @@ import 'package:island/pods/network.dart'; | ||||
| import 'package:island/widgets/alert.dart'; | ||||
| import 'package:island/models/poll.dart'; | ||||
| import 'package:island/widgets/app_scaffold.dart'; | ||||
| import 'package:styled_widget/styled_widget.dart'; | ||||
| import 'package:uuid/uuid.dart'; | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
|  | ||||
| @@ -516,8 +517,7 @@ class PollEditorScreen extends ConsumerWidget { | ||||
|                   if (model.questions.isEmpty) | ||||
|                     _EmptyState( | ||||
|                       title: 'pollNoQuestionsYet'.tr(), | ||||
|                       subtitle: | ||||
|                           'pollNoQuestionsHint'.tr(), | ||||
|                       subtitle: 'pollNoQuestionsHint'.tr(), | ||||
|                     ) | ||||
|                   else | ||||
|                     ReorderableListView.builder( | ||||
| @@ -579,24 +579,32 @@ class PollEditorScreen extends ConsumerWidget { | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           Row( | ||||
|             children: [ | ||||
|               OutlinedButton.icon( | ||||
|                 onPressed: () { | ||||
|                   Navigator.of(context).maybePop(); | ||||
|                 }, | ||||
|                 icon: const Icon(Icons.close), | ||||
|                 label: Text('cancel'.tr()), | ||||
|               ), | ||||
|               const Spacer(), | ||||
|               FilledButton.icon( | ||||
|                 onPressed: () { | ||||
|                   _submitPoll(context, ref); | ||||
|                 }, | ||||
|                 icon: const Icon(Icons.cloud_upload_outlined), | ||||
|                 label: Text(model.id == null ? 'create'.tr() : 'update'.tr()), | ||||
|               ), | ||||
|             ], | ||||
|           Material( | ||||
|             elevation: 2, | ||||
|             color: Theme.of(context).colorScheme.surfaceContainer, | ||||
|             child: Row( | ||||
|               children: [ | ||||
|                 OutlinedButton.icon( | ||||
|                   onPressed: () { | ||||
|                     Navigator.of(context).maybePop(); | ||||
|                   }, | ||||
|                   icon: const Icon(Icons.close), | ||||
|                   label: Text('cancel'.tr()), | ||||
|                 ), | ||||
|                 const Spacer(), | ||||
|                 FilledButton.icon( | ||||
|                   onPressed: () { | ||||
|                     _submitPoll(context, ref); | ||||
|                   }, | ||||
|                   icon: const Icon(Icons.cloud_upload_outlined), | ||||
|                   label: Text(model.id == null ? 'create'.tr() : 'update'.tr()), | ||||
|                 ), | ||||
|               ], | ||||
|             ).padding( | ||||
|               horizontal: 24, | ||||
|               top: 16, | ||||
|               bottom: MediaQuery.of(context).padding.bottom + 16, | ||||
|             ), | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
| @@ -1049,7 +1057,9 @@ class _TextAnswerPreview extends StatelessWidget { | ||||
|       maxLines: long ? 4 : 1, | ||||
|       decoration: InputDecoration( | ||||
|         labelText: | ||||
|             long ? 'pollLongTextAnswerPreview'.tr() : 'pollShortTextAnswerPreview'.tr(), | ||||
|             long | ||||
|                 ? 'pollLongTextAnswerPreview'.tr() | ||||
|                 : 'pollShortTextAnswerPreview'.tr(), | ||||
|         border: const OutlineInputBorder( | ||||
|           borderRadius: BorderRadius.all(Radius.circular(16)), | ||||
|         ), | ||||
| @@ -1083,9 +1093,15 @@ class _EmptyState extends StatelessWidget { | ||||
|             child: Column( | ||||
|               crossAxisAlignment: CrossAxisAlignment.start, | ||||
|               children: [ | ||||
|                 Text('pollNoQuestionsYet'.tr(), style: Theme.of(context).textTheme.titleMedium), | ||||
|                 Text( | ||||
|                   'pollNoQuestionsYet'.tr(), | ||||
|                   style: Theme.of(context).textTheme.titleMedium, | ||||
|                 ), | ||||
|                 const Gap(4), | ||||
|                 Text('pollNoQuestionsHint'.tr(), style: Theme.of(context).textTheme.bodyMedium), | ||||
|                 Text( | ||||
|                   'pollNoQuestionsHint'.tr(), | ||||
|                   style: Theme.of(context).textTheme.bodyMedium, | ||||
|                 ), | ||||
|               ], | ||||
|             ), | ||||
|           ), | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import 'package:island/widgets/alert.dart'; | ||||
| import 'package:island/widgets/app_scaffold.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
| import 'package:island/widgets/post/post_item.dart'; | ||||
| import 'package:island/widgets/post/post_award_history_sheet.dart'; | ||||
| import 'package:island/widgets/post/post_pin_sheet.dart'; | ||||
| import 'package:island/widgets/post/post_quick_reply.dart'; | ||||
| import 'package:island/widgets/post/post_replies.dart'; | ||||
| @@ -273,6 +274,13 @@ class PostActionButtons extends HookConsumerWidget { | ||||
|     actions.add( | ||||
|       FilledButton.tonalIcon( | ||||
|         onPressed: () {}, | ||||
|         onLongPress: () { | ||||
|           showModalBottomSheet( | ||||
|             context: context, | ||||
|             isScrollControlled: true, | ||||
|             builder: (context) => PostAwardHistorySheet(postId: post.id), | ||||
|           ); | ||||
|         }, | ||||
|         icon: const Icon(Symbols.star), | ||||
|         label: | ||||
|             post.awardedScore > 0 | ||||
|   | ||||
| @@ -6,6 +6,8 @@ import 'package:island/models/poll.dart'; | ||||
| import 'package:island/pods/network.dart'; | ||||
| import 'package:island/screens/creators/poll/poll_list.dart'; | ||||
| import 'package:island/services/time.dart'; | ||||
| import 'package:island/widgets/account/account_pfc.dart'; | ||||
| import 'package:island/widgets/content/cloud_files.dart'; | ||||
| import 'package:island/widgets/content/sheet.dart'; | ||||
| import 'package:island/widgets/poll/poll_stats_widget.dart'; | ||||
| import 'package:island/widgets/response.dart'; | ||||
| @@ -134,19 +136,27 @@ class _PollHeader extends StatelessWidget { | ||||
|                   ), | ||||
|                 ), | ||||
|             ], | ||||
|           ), | ||||
|         Text('pollQuestions').tr().fontSize(17).bold(), | ||||
|         for (final q in poll.questions) | ||||
|           Column( | ||||
|             crossAxisAlignment: CrossAxisAlignment.start, | ||||
|             children: [ | ||||
|               if (q.title.isNotEmpty) Text(q.title).bold(), | ||||
|               if (q.description?.isNotEmpty ?? false) Text(q.description!), | ||||
|               PollStatsWidget(question: q, stats: poll.stats), | ||||
|             ], | ||||
|           ), | ||||
|           ).padding(horizontal: 20, top: 16), | ||||
|         ExpansionTile( | ||||
|           title: Text('pollQuestions').tr().fontSize(17).bold(), | ||||
|           tilePadding: EdgeInsets.symmetric(horizontal: 20), | ||||
|           children: | ||||
|               poll.questions | ||||
|                   .map( | ||||
|                     (q) => Column( | ||||
|                       crossAxisAlignment: CrossAxisAlignment.stretch, | ||||
|                       children: [ | ||||
|                         if (q.title.isNotEmpty) Text(q.title).bold(), | ||||
|                         if (q.description?.isNotEmpty ?? false) | ||||
|                           Text(q.description!), | ||||
|                         PollStatsWidget(question: q, stats: poll.stats), | ||||
|                       ], | ||||
|                     ).padding(horizontal: 20, top: 8, bottom: 16), | ||||
|                   ) | ||||
|                   .toList(), | ||||
|         ), | ||||
|       ], | ||||
|     ).padding(horizontal: 20, vertical: 16); | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -207,7 +217,10 @@ class _PollAnswerTile extends StatelessWidget { | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     // Submit date/time (title) | ||||
|     final submitText = answer.createdAt.formatSystem(); | ||||
|     final submitText = | ||||
|         answer.account == null | ||||
|             ? answer.createdAt.formatSystem() | ||||
|             : '${answer.account!.nick} · ${answer.createdAt.formatSystem()}'; | ||||
|  | ||||
|     // Compose content from poll questions if provided, otherwise fallback to joined key-values | ||||
|     String content; | ||||
| @@ -244,10 +257,18 @@ class _PollAnswerTile extends StatelessWidget { | ||||
|     return ListTile( | ||||
|       contentPadding: const EdgeInsets.symmetric(horizontal: 20), | ||||
|       isThreeLine: true, | ||||
|       leading: const CircleAvatar( | ||||
|         radius: 16, | ||||
|         child: Icon(Icons.how_to_vote, size: 16), | ||||
|       ), | ||||
|       leading: | ||||
|           answer.account == null | ||||
|               ? const CircleAvatar( | ||||
|                 radius: 16, | ||||
|                 child: Icon(Icons.how_to_vote, size: 16), | ||||
|               ) | ||||
|               : AccountPfcGestureDetector( | ||||
|                 uname: answer.account!.name, | ||||
|                 child: ProfilePictureWidget( | ||||
|                   file: answer.account!.profile.picture, | ||||
|                 ), | ||||
|               ), | ||||
|       title: Text(submitText), | ||||
|       subtitle: Text(content), | ||||
|       trailing: null, | ||||
|   | ||||
							
								
								
									
										164
									
								
								lib/widgets/post/post_award_history_sheet.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								lib/widgets/post/post_award_history_sheet.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:hooks_riverpod/hooks_riverpod.dart'; | ||||
| import 'package:island/models/post.dart'; | ||||
| import 'package:island/pods/network.dart'; | ||||
| import 'package:island/widgets/content/sheet.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| import 'package:riverpod_paging_utils/riverpod_paging_utils.dart'; | ||||
|  | ||||
| part 'post_award_history_sheet.g.dart'; | ||||
|  | ||||
| @riverpod | ||||
| class PostAwardListNotifier extends _$PostAwardListNotifier | ||||
|     with CursorPagingNotifierMixin<SnPostAward> { | ||||
|   static const int _pageSize = 20; | ||||
|  | ||||
|   @override | ||||
|   Future<CursorPagingData<SnPostAward>> build({required String postId}) { | ||||
|     return fetch(cursor: null); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Future<CursorPagingData<SnPostAward>> fetch({required String? cursor}) async { | ||||
|     final client = ref.read(apiClientProvider); | ||||
|     final offset = cursor == null ? 0 : int.parse(cursor); | ||||
|  | ||||
|     final queryParams = {'offset': offset, 'take': _pageSize}; | ||||
|  | ||||
|     final response = await client.get( | ||||
|       '/sphere/posts/$postId/awards', | ||||
|       queryParameters: queryParams, | ||||
|     ); | ||||
|     final total = int.parse(response.headers.value('X-Total') ?? '0'); | ||||
|     final List<dynamic> data = response.data; | ||||
|     final awards = data.map((json) => SnPostAward.fromJson(json)).toList(); | ||||
|  | ||||
|     final hasMore = offset + awards.length < total; | ||||
|     final nextCursor = hasMore ? (offset + awards.length).toString() : null; | ||||
|  | ||||
|     return CursorPagingData( | ||||
|       items: awards, | ||||
|       hasMore: hasMore, | ||||
|       nextCursor: nextCursor, | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class PostAwardHistorySheet extends HookConsumerWidget { | ||||
|   final String postId; | ||||
|  | ||||
|   const PostAwardHistorySheet({super.key, required this.postId}); | ||||
|  | ||||
|   @override | ||||
|   Widget build(BuildContext context, WidgetRef ref) { | ||||
|     final provider = postAwardListNotifierProvider(postId: postId); | ||||
|  | ||||
|     return SheetScaffold( | ||||
|       titleText: 'Award History', | ||||
|       child: PagingHelperView( | ||||
|         provider: provider, | ||||
|         futureRefreshable: provider.future, | ||||
|         notifierRefreshable: provider.notifier, | ||||
|         contentBuilder: | ||||
|             (data, widgetCount, endItemView) => ListView.builder( | ||||
|               itemCount: widgetCount, | ||||
|               itemBuilder: (context, index) { | ||||
|                 if (index == widgetCount - 1) { | ||||
|                   return endItemView; | ||||
|                 } | ||||
|  | ||||
|                 final award = data.items[index]; | ||||
|                 return Column( | ||||
|                   children: [ | ||||
|                     PostAwardItem(award: award), | ||||
|                     const Divider(height: 1), | ||||
|                   ], | ||||
|                 ); | ||||
|               }, | ||||
|             ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class PostAwardItem extends StatelessWidget { | ||||
|   final SnPostAward award; | ||||
|  | ||||
|   const PostAwardItem({super.key, required this.award}); | ||||
|  | ||||
|   String _getAttitudeText(int attitude) { | ||||
|     switch (attitude) { | ||||
|       case 0: | ||||
|         return 'Positive'; | ||||
|       case 2: | ||||
|         return 'Negative'; | ||||
|       default: | ||||
|         return 'Neutral'; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   Color _getAttitudeColor(int attitude, BuildContext context) { | ||||
|     switch (attitude) { | ||||
|       case 0: | ||||
|         return Colors.green; | ||||
|       case 2: | ||||
|         return Colors.red; | ||||
|       default: | ||||
|         return Theme.of(context).colorScheme.onSurfaceVariant; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return ListTile( | ||||
|       leading: CircleAvatar( | ||||
|         backgroundColor: _getAttitudeColor( | ||||
|           award.attitude, | ||||
|           context, | ||||
|         ).withOpacity(0.1), | ||||
|         child: Icon( | ||||
|           award.attitude == 0 | ||||
|               ? Icons.thumb_up | ||||
|               : award.attitude == 2 | ||||
|               ? Icons.thumb_down | ||||
|               : Icons.thumbs_up_down, | ||||
|           color: _getAttitudeColor(award.attitude, context), | ||||
|         ), | ||||
|       ), | ||||
|       title: Text( | ||||
|         '${award.amount} pts', | ||||
|         style: Theme.of( | ||||
|           context, | ||||
|         ).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w600), | ||||
|       ), | ||||
|       subtitle: Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: [ | ||||
|           Text( | ||||
|             _getAttitudeText(award.attitude), | ||||
|             style: TextStyle( | ||||
|               color: _getAttitudeColor(award.attitude, context), | ||||
|               fontWeight: FontWeight.w500, | ||||
|             ), | ||||
|           ), | ||||
|           if (award.message != null && award.message!.isNotEmpty) ...[ | ||||
|             const SizedBox(height: 4), | ||||
|             Text(award.message!, style: Theme.of(context).textTheme.bodyMedium), | ||||
|           ], | ||||
|           const SizedBox(height: 2), | ||||
|           if (award.createdAt != null) ...[ | ||||
|             const SizedBox(height: 2), | ||||
|             Text( | ||||
|               award.createdAt!.toLocal().toString().split('.')[0], | ||||
|               style: Theme.of(context).textTheme.bodySmall?.copyWith( | ||||
|                 color: Theme.of(context).colorScheme.onSurfaceVariant, | ||||
|               ), | ||||
|             ), | ||||
|           ], | ||||
|         ], | ||||
|       ), | ||||
|       isThreeLine: award.message != null && award.message!.isNotEmpty, | ||||
|       contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										180
									
								
								lib/widgets/post/post_award_history_sheet.g.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								lib/widgets/post/post_award_history_sheet.g.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,180 @@ | ||||
| // GENERATED CODE - DO NOT MODIFY BY HAND | ||||
|  | ||||
| part of 'post_award_history_sheet.dart'; | ||||
|  | ||||
| // ************************************************************************** | ||||
| // RiverpodGenerator | ||||
| // ************************************************************************** | ||||
|  | ||||
| String _$postAwardListNotifierHash() => | ||||
|     r'492ae59a5dbbfb5c98f863f036023193b6e08668'; | ||||
|  | ||||
| /// Copied from Dart SDK | ||||
| class _SystemHash { | ||||
|   _SystemHash._(); | ||||
|  | ||||
|   static int combine(int hash, int value) { | ||||
|     // ignore: parameter_assignments | ||||
|     hash = 0x1fffffff & (hash + value); | ||||
|     // ignore: parameter_assignments | ||||
|     hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); | ||||
|     return hash ^ (hash >> 6); | ||||
|   } | ||||
|  | ||||
|   static int finish(int hash) { | ||||
|     // ignore: parameter_assignments | ||||
|     hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); | ||||
|     // ignore: parameter_assignments | ||||
|     hash = hash ^ (hash >> 11); | ||||
|     return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); | ||||
|   } | ||||
| } | ||||
|  | ||||
| abstract class _$PostAwardListNotifier | ||||
|     extends BuildlessAutoDisposeAsyncNotifier<CursorPagingData<SnPostAward>> { | ||||
|   late final String postId; | ||||
|  | ||||
|   FutureOr<CursorPagingData<SnPostAward>> build({required String postId}); | ||||
| } | ||||
|  | ||||
| /// See also [PostAwardListNotifier]. | ||||
| @ProviderFor(PostAwardListNotifier) | ||||
| const postAwardListNotifierProvider = PostAwardListNotifierFamily(); | ||||
|  | ||||
| /// See also [PostAwardListNotifier]. | ||||
| class PostAwardListNotifierFamily | ||||
|     extends Family<AsyncValue<CursorPagingData<SnPostAward>>> { | ||||
|   /// See also [PostAwardListNotifier]. | ||||
|   const PostAwardListNotifierFamily(); | ||||
|  | ||||
|   /// See also [PostAwardListNotifier]. | ||||
|   PostAwardListNotifierProvider call({required String postId}) { | ||||
|     return PostAwardListNotifierProvider(postId: postId); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   PostAwardListNotifierProvider getProviderOverride( | ||||
|     covariant PostAwardListNotifierProvider provider, | ||||
|   ) { | ||||
|     return call(postId: provider.postId); | ||||
|   } | ||||
|  | ||||
|   static const Iterable<ProviderOrFamily>? _dependencies = null; | ||||
|  | ||||
|   @override | ||||
|   Iterable<ProviderOrFamily>? get dependencies => _dependencies; | ||||
|  | ||||
|   static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null; | ||||
|  | ||||
|   @override | ||||
|   Iterable<ProviderOrFamily>? get allTransitiveDependencies => | ||||
|       _allTransitiveDependencies; | ||||
|  | ||||
|   @override | ||||
|   String? get name => r'postAwardListNotifierProvider'; | ||||
| } | ||||
|  | ||||
| /// See also [PostAwardListNotifier]. | ||||
| class PostAwardListNotifierProvider | ||||
|     extends | ||||
|         AutoDisposeAsyncNotifierProviderImpl< | ||||
|           PostAwardListNotifier, | ||||
|           CursorPagingData<SnPostAward> | ||||
|         > { | ||||
|   /// See also [PostAwardListNotifier]. | ||||
|   PostAwardListNotifierProvider({required String postId}) | ||||
|     : this._internal( | ||||
|         () => PostAwardListNotifier()..postId = postId, | ||||
|         from: postAwardListNotifierProvider, | ||||
|         name: r'postAwardListNotifierProvider', | ||||
|         debugGetCreateSourceHash: | ||||
|             const bool.fromEnvironment('dart.vm.product') | ||||
|                 ? null | ||||
|                 : _$postAwardListNotifierHash, | ||||
|         dependencies: PostAwardListNotifierFamily._dependencies, | ||||
|         allTransitiveDependencies: | ||||
|             PostAwardListNotifierFamily._allTransitiveDependencies, | ||||
|         postId: postId, | ||||
|       ); | ||||
|  | ||||
|   PostAwardListNotifierProvider._internal( | ||||
|     super._createNotifier, { | ||||
|     required super.name, | ||||
|     required super.dependencies, | ||||
|     required super.allTransitiveDependencies, | ||||
|     required super.debugGetCreateSourceHash, | ||||
|     required super.from, | ||||
|     required this.postId, | ||||
|   }) : super.internal(); | ||||
|  | ||||
|   final String postId; | ||||
|  | ||||
|   @override | ||||
|   FutureOr<CursorPagingData<SnPostAward>> runNotifierBuild( | ||||
|     covariant PostAwardListNotifier notifier, | ||||
|   ) { | ||||
|     return notifier.build(postId: postId); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Override overrideWith(PostAwardListNotifier Function() create) { | ||||
|     return ProviderOverride( | ||||
|       origin: this, | ||||
|       override: PostAwardListNotifierProvider._internal( | ||||
|         () => create()..postId = postId, | ||||
|         from: from, | ||||
|         name: null, | ||||
|         dependencies: null, | ||||
|         allTransitiveDependencies: null, | ||||
|         debugGetCreateSourceHash: null, | ||||
|         postId: postId, | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   AutoDisposeAsyncNotifierProviderElement< | ||||
|     PostAwardListNotifier, | ||||
|     CursorPagingData<SnPostAward> | ||||
|   > | ||||
|   createElement() { | ||||
|     return _PostAwardListNotifierProviderElement(this); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   bool operator ==(Object other) { | ||||
|     return other is PostAwardListNotifierProvider && other.postId == postId; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   int get hashCode { | ||||
|     var hash = _SystemHash.combine(0, runtimeType.hashCode); | ||||
|     hash = _SystemHash.combine(hash, postId.hashCode); | ||||
|  | ||||
|     return _SystemHash.finish(hash); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @Deprecated('Will be removed in 3.0. Use Ref instead') | ||||
| // ignore: unused_element | ||||
| mixin PostAwardListNotifierRef | ||||
|     on AutoDisposeAsyncNotifierProviderRef<CursorPagingData<SnPostAward>> { | ||||
|   /// The parameter `postId` of this provider. | ||||
|   String get postId; | ||||
| } | ||||
|  | ||||
| class _PostAwardListNotifierProviderElement | ||||
|     extends | ||||
|         AutoDisposeAsyncNotifierProviderElement< | ||||
|           PostAwardListNotifier, | ||||
|           CursorPagingData<SnPostAward> | ||||
|         > | ||||
|     with PostAwardListNotifierRef { | ||||
|   _PostAwardListNotifierProviderElement(super.provider); | ||||
|  | ||||
|   @override | ||||
|   String get postId => (origin as PostAwardListNotifierProvider).postId; | ||||
| } | ||||
|  | ||||
| // ignore_for_file: type=lint | ||||
| // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package | ||||
							
								
								
									
										12
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								pubspec.lock
									
									
									
									
									
								
							| @@ -485,10 +485,10 @@ packages: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: drift_flutter | ||||
|       sha256: ccfb42bc942e59f81500b16228df59cf8eb40d2fbd96637ff677df923350af7b | ||||
|       sha256: b52bd710f809db11e25259d429d799d034ba1c5224ce6a73fe8419feb980d44c | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "0.2.5" | ||||
|     version: "0.2.6" | ||||
|   dropdown_button2: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
| @@ -2217,10 +2217,10 @@ packages: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: shelf_web_socket | ||||
|       sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 | ||||
|       sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "2.0.1" | ||||
|     version: "3.0.0" | ||||
|   shortid: | ||||
|     dependency: transitive | ||||
|     description: | ||||
| @@ -2760,10 +2760,10 @@ packages: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|       name: webrtc_interface | ||||
|       sha256: "86fe3afc81a08481dfb25cf14a5a94e27062ecef25544783f352c914e0bbc1ca" | ||||
|       sha256: "2e604a31703ad26781782fb14fa8a4ee621154ee2c513d2b9938e486fa695233" | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "1.2.2+hotfix.2" | ||||
|     version: "1.3.0" | ||||
|   win32: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|   | ||||
| @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev | ||||
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | ||||
| # In Windows, build-name is used as the major, minor, and patch parts | ||||
| # of the product and file versions while build-number is used as the build suffix. | ||||
| version: 3.2.0+131 | ||||
| version: 3.2.0+132 | ||||
|  | ||||
| environment: | ||||
|   sdk: ^3.7.2 | ||||
| @@ -85,7 +85,7 @@ dependencies: | ||||
|   web_socket_channel: ^3.0.3 | ||||
|   material_symbols_icons: ^4.2872.0 | ||||
|   drift: ^2.28.1 | ||||
|   drift_flutter: ^0.2.5 | ||||
|   drift_flutter: ^0.2.6 | ||||
|   path: ^1.9.1 | ||||
|   collection: ^1.19.1 | ||||
|   markdown_editor_plus: ^0.2.15 | ||||
| @@ -133,7 +133,7 @@ dependencies: | ||||
|   waveform_flutter: ^1.2.0 | ||||
|   flutter_app_update: ^3.2.2 | ||||
|   archive: ^4.0.7 | ||||
|   process_run: ^1.2.0 | ||||
|   process_run: ^1.2.4 | ||||
|   firebase_crashlytics: ^5.0.1 | ||||
|   firebase_analytics: ^12.0.1 | ||||
|   material_color_utilities: ^0.11.1 | ||||
| @@ -146,7 +146,7 @@ dependencies: | ||||
|   wakelock_plus: ^1.3.2 | ||||
|   slide_countdown: ^2.0.2 | ||||
|   shelf: ^1.4.2 | ||||
|   shelf_web_socket: ^2.0.0 | ||||
|   shelf_web_socket: ^3.0.0 | ||||
|  | ||||
| dev_dependencies: | ||||
|   flutter_test: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user