feat: order range date filter
This commit is contained in:
parent
590bb3329c
commit
5b91b5978f
@ -21,6 +21,9 @@ class OrderLoaderBloc extends Bloc<OrderLoaderEvent, OrderLoaderState> {
|
|||||||
Emitter<OrderLoaderState> emit,
|
Emitter<OrderLoaderState> emit,
|
||||||
) {
|
) {
|
||||||
return event.map(
|
return event.map(
|
||||||
|
rangeDateChanged: (e) async {
|
||||||
|
emit(state.copyWith(dateFrom: e.dateFrom, dateTo: e.dateTo));
|
||||||
|
},
|
||||||
statusChanged: (e) async {
|
statusChanged: (e) async {
|
||||||
emit(state.copyWith(status: e.status));
|
emit(state.copyWith(status: e.status));
|
||||||
},
|
},
|
||||||
@ -63,9 +66,11 @@ class OrderLoaderBloc extends Bloc<OrderLoaderEvent, OrderLoaderState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final failureOrOrder = await _repository.get(
|
final failureOrOrder = await _repository.get(
|
||||||
status: state.status,
|
status: state.status == 'all' ? null : state.status,
|
||||||
page: state.page,
|
page: state.page,
|
||||||
search: state.search,
|
search: state.search,
|
||||||
|
dateFrom: state.dateFrom,
|
||||||
|
dateTo: state.dateTo,
|
||||||
);
|
);
|
||||||
|
|
||||||
state = failureOrOrder.fold(
|
state = failureOrOrder.fold(
|
||||||
|
|||||||
@ -19,18 +19,22 @@ final _privateConstructorUsedError = UnsupportedError(
|
|||||||
mixin _$OrderLoaderEvent {
|
mixin _$OrderLoaderEvent {
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function(DateTime dateFrom, DateTime dateTo)
|
||||||
|
rangeDateChanged,
|
||||||
required TResult Function(String status) statusChanged,
|
required TResult Function(String status) statusChanged,
|
||||||
required TResult Function(String search) searchChanged,
|
required TResult Function(String search) searchChanged,
|
||||||
required TResult Function(bool isRefresh) fetched,
|
required TResult Function(bool isRefresh) fetched,
|
||||||
}) => throw _privateConstructorUsedError;
|
}) => throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult? Function(String status)? statusChanged,
|
TResult? Function(String status)? statusChanged,
|
||||||
TResult? Function(String search)? searchChanged,
|
TResult? Function(String search)? searchChanged,
|
||||||
TResult? Function(bool isRefresh)? fetched,
|
TResult? Function(bool isRefresh)? fetched,
|
||||||
}) => throw _privateConstructorUsedError;
|
}) => throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult Function(String status)? statusChanged,
|
TResult Function(String status)? statusChanged,
|
||||||
TResult Function(String search)? searchChanged,
|
TResult Function(String search)? searchChanged,
|
||||||
TResult Function(bool isRefresh)? fetched,
|
TResult Function(bool isRefresh)? fetched,
|
||||||
@ -38,18 +42,21 @@ mixin _$OrderLoaderEvent {
|
|||||||
}) => throw _privateConstructorUsedError;
|
}) => throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult map<TResult extends Object?>({
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_RangeDateChanged value) rangeDateChanged,
|
||||||
required TResult Function(_StatusChanged value) statusChanged,
|
required TResult Function(_StatusChanged value) statusChanged,
|
||||||
required TResult Function(_SearchChanged value) searchChanged,
|
required TResult Function(_SearchChanged value) searchChanged,
|
||||||
required TResult Function(_Fetched value) fetched,
|
required TResult Function(_Fetched value) fetched,
|
||||||
}) => throw _privateConstructorUsedError;
|
}) => throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult? Function(_StatusChanged value)? statusChanged,
|
TResult? Function(_StatusChanged value)? statusChanged,
|
||||||
TResult? Function(_SearchChanged value)? searchChanged,
|
TResult? Function(_SearchChanged value)? searchChanged,
|
||||||
TResult? Function(_Fetched value)? fetched,
|
TResult? Function(_Fetched value)? fetched,
|
||||||
}) => throw _privateConstructorUsedError;
|
}) => throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeMap<TResult extends Object?>({
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult Function(_StatusChanged value)? statusChanged,
|
TResult Function(_StatusChanged value)? statusChanged,
|
||||||
TResult Function(_SearchChanged value)? searchChanged,
|
TResult Function(_SearchChanged value)? searchChanged,
|
||||||
TResult Function(_Fetched value)? fetched,
|
TResult Function(_Fetched value)? fetched,
|
||||||
@ -79,6 +86,176 @@ class _$OrderLoaderEventCopyWithImpl<$Res, $Val extends OrderLoaderEvent>
|
|||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
abstract class _$$RangeDateChangedImplCopyWith<$Res> {
|
||||||
|
factory _$$RangeDateChangedImplCopyWith(
|
||||||
|
_$RangeDateChangedImpl value,
|
||||||
|
$Res Function(_$RangeDateChangedImpl) then,
|
||||||
|
) = __$$RangeDateChangedImplCopyWithImpl<$Res>;
|
||||||
|
@useResult
|
||||||
|
$Res call({DateTime dateFrom, DateTime dateTo});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
class __$$RangeDateChangedImplCopyWithImpl<$Res>
|
||||||
|
extends _$OrderLoaderEventCopyWithImpl<$Res, _$RangeDateChangedImpl>
|
||||||
|
implements _$$RangeDateChangedImplCopyWith<$Res> {
|
||||||
|
__$$RangeDateChangedImplCopyWithImpl(
|
||||||
|
_$RangeDateChangedImpl _value,
|
||||||
|
$Res Function(_$RangeDateChangedImpl) _then,
|
||||||
|
) : super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of OrderLoaderEvent
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
@override
|
||||||
|
$Res call({Object? dateFrom = null, Object? dateTo = null}) {
|
||||||
|
return _then(
|
||||||
|
_$RangeDateChangedImpl(
|
||||||
|
null == dateFrom
|
||||||
|
? _value.dateFrom
|
||||||
|
: dateFrom // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
|
null == dateTo
|
||||||
|
? _value.dateTo
|
||||||
|
: dateTo // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
|
||||||
|
class _$RangeDateChangedImpl implements _RangeDateChanged {
|
||||||
|
const _$RangeDateChangedImpl(this.dateFrom, this.dateTo);
|
||||||
|
|
||||||
|
@override
|
||||||
|
final DateTime dateFrom;
|
||||||
|
@override
|
||||||
|
final DateTime dateTo;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'OrderLoaderEvent.rangeDateChanged(dateFrom: $dateFrom, dateTo: $dateTo)';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
return identical(this, other) ||
|
||||||
|
(other.runtimeType == runtimeType &&
|
||||||
|
other is _$RangeDateChangedImpl &&
|
||||||
|
(identical(other.dateFrom, dateFrom) ||
|
||||||
|
other.dateFrom == dateFrom) &&
|
||||||
|
(identical(other.dateTo, dateTo) || other.dateTo == dateTo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => Object.hash(runtimeType, dateFrom, dateTo);
|
||||||
|
|
||||||
|
/// Create a copy of OrderLoaderEvent
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
@override
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
_$$RangeDateChangedImplCopyWith<_$RangeDateChangedImpl> get copyWith =>
|
||||||
|
__$$RangeDateChangedImplCopyWithImpl<_$RangeDateChangedImpl>(
|
||||||
|
this,
|
||||||
|
_$identity,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function(DateTime dateFrom, DateTime dateTo)
|
||||||
|
rangeDateChanged,
|
||||||
|
required TResult Function(String status) statusChanged,
|
||||||
|
required TResult Function(String search) searchChanged,
|
||||||
|
required TResult Function(bool isRefresh) fetched,
|
||||||
|
}) {
|
||||||
|
return rangeDateChanged(dateFrom, dateTo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
|
TResult? Function(String status)? statusChanged,
|
||||||
|
TResult? Function(String search)? searchChanged,
|
||||||
|
TResult? Function(bool isRefresh)? fetched,
|
||||||
|
}) {
|
||||||
|
return rangeDateChanged?.call(dateFrom, dateTo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
|
TResult Function(String status)? statusChanged,
|
||||||
|
TResult Function(String search)? searchChanged,
|
||||||
|
TResult Function(bool isRefresh)? fetched,
|
||||||
|
required TResult orElse(),
|
||||||
|
}) {
|
||||||
|
if (rangeDateChanged != null) {
|
||||||
|
return rangeDateChanged(dateFrom, dateTo);
|
||||||
|
}
|
||||||
|
return orElse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_RangeDateChanged value) rangeDateChanged,
|
||||||
|
required TResult Function(_StatusChanged value) statusChanged,
|
||||||
|
required TResult Function(_SearchChanged value) searchChanged,
|
||||||
|
required TResult Function(_Fetched value) fetched,
|
||||||
|
}) {
|
||||||
|
return rangeDateChanged(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
|
TResult? Function(_StatusChanged value)? statusChanged,
|
||||||
|
TResult? Function(_SearchChanged value)? searchChanged,
|
||||||
|
TResult? Function(_Fetched value)? fetched,
|
||||||
|
}) {
|
||||||
|
return rangeDateChanged?.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
|
TResult Function(_StatusChanged value)? statusChanged,
|
||||||
|
TResult Function(_SearchChanged value)? searchChanged,
|
||||||
|
TResult Function(_Fetched value)? fetched,
|
||||||
|
required TResult orElse(),
|
||||||
|
}) {
|
||||||
|
if (rangeDateChanged != null) {
|
||||||
|
return rangeDateChanged(this);
|
||||||
|
}
|
||||||
|
return orElse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class _RangeDateChanged implements OrderLoaderEvent {
|
||||||
|
const factory _RangeDateChanged(
|
||||||
|
final DateTime dateFrom,
|
||||||
|
final DateTime dateTo,
|
||||||
|
) = _$RangeDateChangedImpl;
|
||||||
|
|
||||||
|
DateTime get dateFrom;
|
||||||
|
DateTime get dateTo;
|
||||||
|
|
||||||
|
/// Create a copy of OrderLoaderEvent
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
_$$RangeDateChangedImplCopyWith<_$RangeDateChangedImpl> get copyWith =>
|
||||||
|
throw _privateConstructorUsedError;
|
||||||
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
abstract class _$$StatusChangedImplCopyWith<$Res> {
|
abstract class _$$StatusChangedImplCopyWith<$Res> {
|
||||||
factory _$$StatusChangedImplCopyWith(
|
factory _$$StatusChangedImplCopyWith(
|
||||||
@ -149,6 +326,8 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function(DateTime dateFrom, DateTime dateTo)
|
||||||
|
rangeDateChanged,
|
||||||
required TResult Function(String status) statusChanged,
|
required TResult Function(String status) statusChanged,
|
||||||
required TResult Function(String search) searchChanged,
|
required TResult Function(String search) searchChanged,
|
||||||
required TResult Function(bool isRefresh) fetched,
|
required TResult Function(bool isRefresh) fetched,
|
||||||
@ -159,6 +338,7 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult? Function(String status)? statusChanged,
|
TResult? Function(String status)? statusChanged,
|
||||||
TResult? Function(String search)? searchChanged,
|
TResult? Function(String search)? searchChanged,
|
||||||
TResult? Function(bool isRefresh)? fetched,
|
TResult? Function(bool isRefresh)? fetched,
|
||||||
@ -169,6 +349,7 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult Function(String status)? statusChanged,
|
TResult Function(String status)? statusChanged,
|
||||||
TResult Function(String search)? searchChanged,
|
TResult Function(String search)? searchChanged,
|
||||||
TResult Function(bool isRefresh)? fetched,
|
TResult Function(bool isRefresh)? fetched,
|
||||||
@ -183,6 +364,7 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult map<TResult extends Object?>({
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_RangeDateChanged value) rangeDateChanged,
|
||||||
required TResult Function(_StatusChanged value) statusChanged,
|
required TResult Function(_StatusChanged value) statusChanged,
|
||||||
required TResult Function(_SearchChanged value) searchChanged,
|
required TResult Function(_SearchChanged value) searchChanged,
|
||||||
required TResult Function(_Fetched value) fetched,
|
required TResult Function(_Fetched value) fetched,
|
||||||
@ -193,6 +375,7 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult? Function(_StatusChanged value)? statusChanged,
|
TResult? Function(_StatusChanged value)? statusChanged,
|
||||||
TResult? Function(_SearchChanged value)? searchChanged,
|
TResult? Function(_SearchChanged value)? searchChanged,
|
||||||
TResult? Function(_Fetched value)? fetched,
|
TResult? Function(_Fetched value)? fetched,
|
||||||
@ -203,6 +386,7 @@ class _$StatusChangedImpl implements _StatusChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeMap<TResult extends Object?>({
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult Function(_StatusChanged value)? statusChanged,
|
TResult Function(_StatusChanged value)? statusChanged,
|
||||||
TResult Function(_SearchChanged value)? searchChanged,
|
TResult Function(_SearchChanged value)? searchChanged,
|
||||||
TResult Function(_Fetched value)? fetched,
|
TResult Function(_Fetched value)? fetched,
|
||||||
@ -297,6 +481,8 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function(DateTime dateFrom, DateTime dateTo)
|
||||||
|
rangeDateChanged,
|
||||||
required TResult Function(String status) statusChanged,
|
required TResult Function(String status) statusChanged,
|
||||||
required TResult Function(String search) searchChanged,
|
required TResult Function(String search) searchChanged,
|
||||||
required TResult Function(bool isRefresh) fetched,
|
required TResult Function(bool isRefresh) fetched,
|
||||||
@ -307,6 +493,7 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult? Function(String status)? statusChanged,
|
TResult? Function(String status)? statusChanged,
|
||||||
TResult? Function(String search)? searchChanged,
|
TResult? Function(String search)? searchChanged,
|
||||||
TResult? Function(bool isRefresh)? fetched,
|
TResult? Function(bool isRefresh)? fetched,
|
||||||
@ -317,6 +504,7 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult Function(String status)? statusChanged,
|
TResult Function(String status)? statusChanged,
|
||||||
TResult Function(String search)? searchChanged,
|
TResult Function(String search)? searchChanged,
|
||||||
TResult Function(bool isRefresh)? fetched,
|
TResult Function(bool isRefresh)? fetched,
|
||||||
@ -331,6 +519,7 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult map<TResult extends Object?>({
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_RangeDateChanged value) rangeDateChanged,
|
||||||
required TResult Function(_StatusChanged value) statusChanged,
|
required TResult Function(_StatusChanged value) statusChanged,
|
||||||
required TResult Function(_SearchChanged value) searchChanged,
|
required TResult Function(_SearchChanged value) searchChanged,
|
||||||
required TResult Function(_Fetched value) fetched,
|
required TResult Function(_Fetched value) fetched,
|
||||||
@ -341,6 +530,7 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult? Function(_StatusChanged value)? statusChanged,
|
TResult? Function(_StatusChanged value)? statusChanged,
|
||||||
TResult? Function(_SearchChanged value)? searchChanged,
|
TResult? Function(_SearchChanged value)? searchChanged,
|
||||||
TResult? Function(_Fetched value)? fetched,
|
TResult? Function(_Fetched value)? fetched,
|
||||||
@ -351,6 +541,7 @@ class _$SearchChangedImpl implements _SearchChanged {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeMap<TResult extends Object?>({
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult Function(_StatusChanged value)? statusChanged,
|
TResult Function(_StatusChanged value)? statusChanged,
|
||||||
TResult Function(_SearchChanged value)? searchChanged,
|
TResult Function(_SearchChanged value)? searchChanged,
|
||||||
TResult Function(_Fetched value)? fetched,
|
TResult Function(_Fetched value)? fetched,
|
||||||
@ -447,6 +638,8 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function(DateTime dateFrom, DateTime dateTo)
|
||||||
|
rangeDateChanged,
|
||||||
required TResult Function(String status) statusChanged,
|
required TResult Function(String status) statusChanged,
|
||||||
required TResult Function(String search) searchChanged,
|
required TResult Function(String search) searchChanged,
|
||||||
required TResult Function(bool isRefresh) fetched,
|
required TResult Function(bool isRefresh) fetched,
|
||||||
@ -457,6 +650,7 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult? Function(String status)? statusChanged,
|
TResult? Function(String status)? statusChanged,
|
||||||
TResult? Function(String search)? searchChanged,
|
TResult? Function(String search)? searchChanged,
|
||||||
TResult? Function(bool isRefresh)? fetched,
|
TResult? Function(bool isRefresh)? fetched,
|
||||||
@ -467,6 +661,7 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function(DateTime dateFrom, DateTime dateTo)? rangeDateChanged,
|
||||||
TResult Function(String status)? statusChanged,
|
TResult Function(String status)? statusChanged,
|
||||||
TResult Function(String search)? searchChanged,
|
TResult Function(String search)? searchChanged,
|
||||||
TResult Function(bool isRefresh)? fetched,
|
TResult Function(bool isRefresh)? fetched,
|
||||||
@ -481,6 +676,7 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult map<TResult extends Object?>({
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_RangeDateChanged value) rangeDateChanged,
|
||||||
required TResult Function(_StatusChanged value) statusChanged,
|
required TResult Function(_StatusChanged value) statusChanged,
|
||||||
required TResult Function(_SearchChanged value) searchChanged,
|
required TResult Function(_SearchChanged value) searchChanged,
|
||||||
required TResult Function(_Fetched value) fetched,
|
required TResult Function(_Fetched value) fetched,
|
||||||
@ -491,6 +687,7 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult? Function(_StatusChanged value)? statusChanged,
|
TResult? Function(_StatusChanged value)? statusChanged,
|
||||||
TResult? Function(_SearchChanged value)? searchChanged,
|
TResult? Function(_SearchChanged value)? searchChanged,
|
||||||
TResult? Function(_Fetched value)? fetched,
|
TResult? Function(_Fetched value)? fetched,
|
||||||
@ -501,6 +698,7 @@ class _$FetchedImpl implements _Fetched {
|
|||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeMap<TResult extends Object?>({
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_RangeDateChanged value)? rangeDateChanged,
|
||||||
TResult Function(_StatusChanged value)? statusChanged,
|
TResult Function(_StatusChanged value)? statusChanged,
|
||||||
TResult Function(_SearchChanged value)? searchChanged,
|
TResult Function(_SearchChanged value)? searchChanged,
|
||||||
TResult Function(_Fetched value)? fetched,
|
TResult Function(_Fetched value)? fetched,
|
||||||
@ -530,11 +728,13 @@ mixin _$OrderLoaderState {
|
|||||||
List<Order> get orders => throw _privateConstructorUsedError;
|
List<Order> get orders => throw _privateConstructorUsedError;
|
||||||
Option<OrderFailure> get failureOptionOrder =>
|
Option<OrderFailure> get failureOptionOrder =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
String? get status => throw _privateConstructorUsedError;
|
String get status => throw _privateConstructorUsedError;
|
||||||
String? get search => throw _privateConstructorUsedError;
|
String? get search => throw _privateConstructorUsedError;
|
||||||
bool get isFetching => throw _privateConstructorUsedError;
|
bool get isFetching => throw _privateConstructorUsedError;
|
||||||
bool get hasReachedMax => throw _privateConstructorUsedError;
|
bool get hasReachedMax => throw _privateConstructorUsedError;
|
||||||
int get page => throw _privateConstructorUsedError;
|
int get page => throw _privateConstructorUsedError;
|
||||||
|
DateTime get dateFrom => throw _privateConstructorUsedError;
|
||||||
|
DateTime get dateTo => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
/// Create a copy of OrderLoaderState
|
/// Create a copy of OrderLoaderState
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@ -553,11 +753,13 @@ abstract class $OrderLoaderStateCopyWith<$Res> {
|
|||||||
$Res call({
|
$Res call({
|
||||||
List<Order> orders,
|
List<Order> orders,
|
||||||
Option<OrderFailure> failureOptionOrder,
|
Option<OrderFailure> failureOptionOrder,
|
||||||
String? status,
|
String status,
|
||||||
String? search,
|
String? search,
|
||||||
bool isFetching,
|
bool isFetching,
|
||||||
bool hasReachedMax,
|
bool hasReachedMax,
|
||||||
int page,
|
int page,
|
||||||
|
DateTime dateFrom,
|
||||||
|
DateTime dateTo,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -578,11 +780,13 @@ class _$OrderLoaderStateCopyWithImpl<$Res, $Val extends OrderLoaderState>
|
|||||||
$Res call({
|
$Res call({
|
||||||
Object? orders = null,
|
Object? orders = null,
|
||||||
Object? failureOptionOrder = null,
|
Object? failureOptionOrder = null,
|
||||||
Object? status = freezed,
|
Object? status = null,
|
||||||
Object? search = freezed,
|
Object? search = freezed,
|
||||||
Object? isFetching = null,
|
Object? isFetching = null,
|
||||||
Object? hasReachedMax = null,
|
Object? hasReachedMax = null,
|
||||||
Object? page = null,
|
Object? page = null,
|
||||||
|
Object? dateFrom = null,
|
||||||
|
Object? dateTo = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(
|
return _then(
|
||||||
_value.copyWith(
|
_value.copyWith(
|
||||||
@ -594,10 +798,10 @@ class _$OrderLoaderStateCopyWithImpl<$Res, $Val extends OrderLoaderState>
|
|||||||
? _value.failureOptionOrder
|
? _value.failureOptionOrder
|
||||||
: failureOptionOrder // ignore: cast_nullable_to_non_nullable
|
: failureOptionOrder // ignore: cast_nullable_to_non_nullable
|
||||||
as Option<OrderFailure>,
|
as Option<OrderFailure>,
|
||||||
status: freezed == status
|
status: null == status
|
||||||
? _value.status
|
? _value.status
|
||||||
: status // ignore: cast_nullable_to_non_nullable
|
: status // ignore: cast_nullable_to_non_nullable
|
||||||
as String?,
|
as String,
|
||||||
search: freezed == search
|
search: freezed == search
|
||||||
? _value.search
|
? _value.search
|
||||||
: search // ignore: cast_nullable_to_non_nullable
|
: search // ignore: cast_nullable_to_non_nullable
|
||||||
@ -614,6 +818,14 @@ class _$OrderLoaderStateCopyWithImpl<$Res, $Val extends OrderLoaderState>
|
|||||||
? _value.page
|
? _value.page
|
||||||
: page // ignore: cast_nullable_to_non_nullable
|
: page // ignore: cast_nullable_to_non_nullable
|
||||||
as int,
|
as int,
|
||||||
|
dateFrom: null == dateFrom
|
||||||
|
? _value.dateFrom
|
||||||
|
: dateFrom // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
|
dateTo: null == dateTo
|
||||||
|
? _value.dateTo
|
||||||
|
: dateTo // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
)
|
)
|
||||||
as $Val,
|
as $Val,
|
||||||
);
|
);
|
||||||
@ -632,11 +844,13 @@ abstract class _$$OrderLoaderStateImplCopyWith<$Res>
|
|||||||
$Res call({
|
$Res call({
|
||||||
List<Order> orders,
|
List<Order> orders,
|
||||||
Option<OrderFailure> failureOptionOrder,
|
Option<OrderFailure> failureOptionOrder,
|
||||||
String? status,
|
String status,
|
||||||
String? search,
|
String? search,
|
||||||
bool isFetching,
|
bool isFetching,
|
||||||
bool hasReachedMax,
|
bool hasReachedMax,
|
||||||
int page,
|
int page,
|
||||||
|
DateTime dateFrom,
|
||||||
|
DateTime dateTo,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -656,11 +870,13 @@ class __$$OrderLoaderStateImplCopyWithImpl<$Res>
|
|||||||
$Res call({
|
$Res call({
|
||||||
Object? orders = null,
|
Object? orders = null,
|
||||||
Object? failureOptionOrder = null,
|
Object? failureOptionOrder = null,
|
||||||
Object? status = freezed,
|
Object? status = null,
|
||||||
Object? search = freezed,
|
Object? search = freezed,
|
||||||
Object? isFetching = null,
|
Object? isFetching = null,
|
||||||
Object? hasReachedMax = null,
|
Object? hasReachedMax = null,
|
||||||
Object? page = null,
|
Object? page = null,
|
||||||
|
Object? dateFrom = null,
|
||||||
|
Object? dateTo = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(
|
return _then(
|
||||||
_$OrderLoaderStateImpl(
|
_$OrderLoaderStateImpl(
|
||||||
@ -672,10 +888,10 @@ class __$$OrderLoaderStateImplCopyWithImpl<$Res>
|
|||||||
? _value.failureOptionOrder
|
? _value.failureOptionOrder
|
||||||
: failureOptionOrder // ignore: cast_nullable_to_non_nullable
|
: failureOptionOrder // ignore: cast_nullable_to_non_nullable
|
||||||
as Option<OrderFailure>,
|
as Option<OrderFailure>,
|
||||||
status: freezed == status
|
status: null == status
|
||||||
? _value.status
|
? _value.status
|
||||||
: status // ignore: cast_nullable_to_non_nullable
|
: status // ignore: cast_nullable_to_non_nullable
|
||||||
as String?,
|
as String,
|
||||||
search: freezed == search
|
search: freezed == search
|
||||||
? _value.search
|
? _value.search
|
||||||
: search // ignore: cast_nullable_to_non_nullable
|
: search // ignore: cast_nullable_to_non_nullable
|
||||||
@ -692,6 +908,14 @@ class __$$OrderLoaderStateImplCopyWithImpl<$Res>
|
|||||||
? _value.page
|
? _value.page
|
||||||
: page // ignore: cast_nullable_to_non_nullable
|
: page // ignore: cast_nullable_to_non_nullable
|
||||||
as int,
|
as int,
|
||||||
|
dateFrom: null == dateFrom
|
||||||
|
? _value.dateFrom
|
||||||
|
: dateFrom // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
|
dateTo: null == dateTo
|
||||||
|
? _value.dateTo
|
||||||
|
: dateTo // ignore: cast_nullable_to_non_nullable
|
||||||
|
as DateTime,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -703,11 +927,13 @@ class _$OrderLoaderStateImpl implements _OrderLoaderState {
|
|||||||
const _$OrderLoaderStateImpl({
|
const _$OrderLoaderStateImpl({
|
||||||
required final List<Order> orders,
|
required final List<Order> orders,
|
||||||
required this.failureOptionOrder,
|
required this.failureOptionOrder,
|
||||||
this.status,
|
required this.status,
|
||||||
this.search,
|
this.search,
|
||||||
this.isFetching = false,
|
this.isFetching = false,
|
||||||
this.hasReachedMax = false,
|
this.hasReachedMax = false,
|
||||||
this.page = 1,
|
this.page = 1,
|
||||||
|
required this.dateFrom,
|
||||||
|
required this.dateTo,
|
||||||
}) : _orders = orders;
|
}) : _orders = orders;
|
||||||
|
|
||||||
final List<Order> _orders;
|
final List<Order> _orders;
|
||||||
@ -721,7 +947,7 @@ class _$OrderLoaderStateImpl implements _OrderLoaderState {
|
|||||||
@override
|
@override
|
||||||
final Option<OrderFailure> failureOptionOrder;
|
final Option<OrderFailure> failureOptionOrder;
|
||||||
@override
|
@override
|
||||||
final String? status;
|
final String status;
|
||||||
@override
|
@override
|
||||||
final String? search;
|
final String? search;
|
||||||
@override
|
@override
|
||||||
@ -733,10 +959,14 @@ class _$OrderLoaderStateImpl implements _OrderLoaderState {
|
|||||||
@override
|
@override
|
||||||
@JsonKey()
|
@JsonKey()
|
||||||
final int page;
|
final int page;
|
||||||
|
@override
|
||||||
|
final DateTime dateFrom;
|
||||||
|
@override
|
||||||
|
final DateTime dateTo;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'OrderLoaderState(orders: $orders, failureOptionOrder: $failureOptionOrder, status: $status, search: $search, isFetching: $isFetching, hasReachedMax: $hasReachedMax, page: $page)';
|
return 'OrderLoaderState(orders: $orders, failureOptionOrder: $failureOptionOrder, status: $status, search: $search, isFetching: $isFetching, hasReachedMax: $hasReachedMax, page: $page, dateFrom: $dateFrom, dateTo: $dateTo)';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -753,7 +983,10 @@ class _$OrderLoaderStateImpl implements _OrderLoaderState {
|
|||||||
other.isFetching == isFetching) &&
|
other.isFetching == isFetching) &&
|
||||||
(identical(other.hasReachedMax, hasReachedMax) ||
|
(identical(other.hasReachedMax, hasReachedMax) ||
|
||||||
other.hasReachedMax == hasReachedMax) &&
|
other.hasReachedMax == hasReachedMax) &&
|
||||||
(identical(other.page, page) || other.page == page));
|
(identical(other.page, page) || other.page == page) &&
|
||||||
|
(identical(other.dateFrom, dateFrom) ||
|
||||||
|
other.dateFrom == dateFrom) &&
|
||||||
|
(identical(other.dateTo, dateTo) || other.dateTo == dateTo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -766,6 +999,8 @@ class _$OrderLoaderStateImpl implements _OrderLoaderState {
|
|||||||
isFetching,
|
isFetching,
|
||||||
hasReachedMax,
|
hasReachedMax,
|
||||||
page,
|
page,
|
||||||
|
dateFrom,
|
||||||
|
dateTo,
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Create a copy of OrderLoaderState
|
/// Create a copy of OrderLoaderState
|
||||||
@ -784,11 +1019,13 @@ abstract class _OrderLoaderState implements OrderLoaderState {
|
|||||||
const factory _OrderLoaderState({
|
const factory _OrderLoaderState({
|
||||||
required final List<Order> orders,
|
required final List<Order> orders,
|
||||||
required final Option<OrderFailure> failureOptionOrder,
|
required final Option<OrderFailure> failureOptionOrder,
|
||||||
final String? status,
|
required final String status,
|
||||||
final String? search,
|
final String? search,
|
||||||
final bool isFetching,
|
final bool isFetching,
|
||||||
final bool hasReachedMax,
|
final bool hasReachedMax,
|
||||||
final int page,
|
final int page,
|
||||||
|
required final DateTime dateFrom,
|
||||||
|
required final DateTime dateTo,
|
||||||
}) = _$OrderLoaderStateImpl;
|
}) = _$OrderLoaderStateImpl;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -796,7 +1033,7 @@ abstract class _OrderLoaderState implements OrderLoaderState {
|
|||||||
@override
|
@override
|
||||||
Option<OrderFailure> get failureOptionOrder;
|
Option<OrderFailure> get failureOptionOrder;
|
||||||
@override
|
@override
|
||||||
String? get status;
|
String get status;
|
||||||
@override
|
@override
|
||||||
String? get search;
|
String? get search;
|
||||||
@override
|
@override
|
||||||
@ -805,6 +1042,10 @@ abstract class _OrderLoaderState implements OrderLoaderState {
|
|||||||
bool get hasReachedMax;
|
bool get hasReachedMax;
|
||||||
@override
|
@override
|
||||||
int get page;
|
int get page;
|
||||||
|
@override
|
||||||
|
DateTime get dateFrom;
|
||||||
|
@override
|
||||||
|
DateTime get dateTo;
|
||||||
|
|
||||||
/// Create a copy of OrderLoaderState
|
/// Create a copy of OrderLoaderState
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
|||||||
@ -2,6 +2,10 @@ part of 'order_loader_bloc.dart';
|
|||||||
|
|
||||||
@freezed
|
@freezed
|
||||||
class OrderLoaderEvent with _$OrderLoaderEvent {
|
class OrderLoaderEvent with _$OrderLoaderEvent {
|
||||||
|
const factory OrderLoaderEvent.rangeDateChanged(
|
||||||
|
DateTime dateFrom,
|
||||||
|
DateTime dateTo,
|
||||||
|
) = _RangeDateChanged;
|
||||||
const factory OrderLoaderEvent.statusChanged(String status) = _StatusChanged;
|
const factory OrderLoaderEvent.statusChanged(String status) = _StatusChanged;
|
||||||
const factory OrderLoaderEvent.searchChanged(String search) = _SearchChanged;
|
const factory OrderLoaderEvent.searchChanged(String search) = _SearchChanged;
|
||||||
const factory OrderLoaderEvent.fetched({@Default(false) bool isRefresh}) =
|
const factory OrderLoaderEvent.fetched({@Default(false) bool isRefresh}) =
|
||||||
|
|||||||
@ -5,13 +5,20 @@ class OrderLoaderState with _$OrderLoaderState {
|
|||||||
const factory OrderLoaderState({
|
const factory OrderLoaderState({
|
||||||
required List<Order> orders,
|
required List<Order> orders,
|
||||||
required Option<OrderFailure> failureOptionOrder,
|
required Option<OrderFailure> failureOptionOrder,
|
||||||
String? status,
|
required String status,
|
||||||
String? search,
|
String? search,
|
||||||
@Default(false) bool isFetching,
|
@Default(false) bool isFetching,
|
||||||
@Default(false) bool hasReachedMax,
|
@Default(false) bool hasReachedMax,
|
||||||
@Default(1) int page,
|
@Default(1) int page,
|
||||||
|
required DateTime dateFrom,
|
||||||
|
required DateTime dateTo,
|
||||||
}) = _OrderLoaderState;
|
}) = _OrderLoaderState;
|
||||||
|
|
||||||
factory OrderLoaderState.initial() =>
|
factory OrderLoaderState.initial() => OrderLoaderState(
|
||||||
OrderLoaderState(orders: [], failureOptionOrder: none());
|
orders: [],
|
||||||
|
failureOptionOrder: none(),
|
||||||
|
dateFrom: DateTime.now().subtract(const Duration(days: 30)),
|
||||||
|
dateTo: DateTime.now(),
|
||||||
|
status: 'all',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,5 +6,7 @@ abstract class IOrderRepository {
|
|||||||
int limit = 10,
|
int limit = 10,
|
||||||
String? status,
|
String? status,
|
||||||
String? search,
|
String? search,
|
||||||
|
required DateTime dateFrom,
|
||||||
|
required DateTime dateTo,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import 'package:injectable/injectable.dart';
|
|||||||
|
|
||||||
import '../../../common/api/api_client.dart';
|
import '../../../common/api/api_client.dart';
|
||||||
import '../../../common/api/api_failure.dart';
|
import '../../../common/api/api_failure.dart';
|
||||||
|
import '../../../common/extension/extension.dart';
|
||||||
import '../../../common/function/app_function.dart';
|
import '../../../common/function/app_function.dart';
|
||||||
import '../../../common/url/api_path.dart';
|
import '../../../common/url/api_path.dart';
|
||||||
import '../../../domain/order/order.dart';
|
import '../../../domain/order/order.dart';
|
||||||
@ -22,9 +23,16 @@ class OrderRemoteDataProvider {
|
|||||||
int limit = 10,
|
int limit = 10,
|
||||||
String? status,
|
String? status,
|
||||||
String? search,
|
String? search,
|
||||||
|
required DateTime dateFrom,
|
||||||
|
required DateTime dateTo,
|
||||||
}) async {
|
}) async {
|
||||||
try {
|
try {
|
||||||
Map<String, dynamic> params = {'page': page, 'limit': limit};
|
Map<String, dynamic> params = {
|
||||||
|
'page': page,
|
||||||
|
'limit': limit,
|
||||||
|
'date_from': dateFrom.toServerDate,
|
||||||
|
'date_to': dateTo.toServerDate,
|
||||||
|
};
|
||||||
|
|
||||||
if (status != null && status.isNotEmpty) {
|
if (status != null && status.isNotEmpty) {
|
||||||
params['status'] = status;
|
params['status'] = status;
|
||||||
|
|||||||
@ -19,6 +19,8 @@ class OrderRepository implements IOrderRepository {
|
|||||||
int limit = 20,
|
int limit = 20,
|
||||||
String? status,
|
String? status,
|
||||||
String? search,
|
String? search,
|
||||||
|
required DateTime dateFrom,
|
||||||
|
required DateTime dateTo,
|
||||||
}) async {
|
}) async {
|
||||||
try {
|
try {
|
||||||
final result = await _dataProvider.fetch(
|
final result = await _dataProvider.fetch(
|
||||||
@ -26,6 +28,8 @@ class OrderRepository implements IOrderRepository {
|
|||||||
limit: limit,
|
limit: limit,
|
||||||
status: status,
|
status: status,
|
||||||
search: search,
|
search: search,
|
||||||
|
dateFrom: dateFrom,
|
||||||
|
dateTo: dateTo,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (result.hasError) {
|
if (result.hasError) {
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
@ -11,7 +13,7 @@ import '../../../components/button/button.dart';
|
|||||||
import '../../../components/spacer/spacer.dart';
|
import '../../../components/spacer/spacer.dart';
|
||||||
import '../../../components/widgets/empty_widget.dart';
|
import '../../../components/widgets/empty_widget.dart';
|
||||||
import '../../../router/app_router.gr.dart';
|
import '../../../router/app_router.gr.dart';
|
||||||
import 'widgets/status_tile.dart';
|
import 'widgets/filter_header_delegate.dart';
|
||||||
import 'widgets/order_tile.dart';
|
import 'widgets/order_tile.dart';
|
||||||
|
|
||||||
@RoutePage()
|
@RoutePage()
|
||||||
@ -38,7 +40,6 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
final ScrollController _scrollController = ScrollController();
|
final ScrollController _scrollController = ScrollController();
|
||||||
|
|
||||||
// Filter state
|
// Filter state
|
||||||
String selectedFilter = 'All';
|
|
||||||
final List<String> filterOptions = ['All', 'Completed', 'Pending'];
|
final List<String> filterOptions = ['All', 'Completed', 'Pending'];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -79,13 +80,27 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColor.background,
|
backgroundColor: AppColor.background,
|
||||||
body: BlocListener<OrderLoaderBloc, OrderLoaderState>(
|
body: MultiBlocListener(
|
||||||
|
listeners: [
|
||||||
|
BlocListener<OrderLoaderBloc, OrderLoaderState>(
|
||||||
listenWhen: (p, c) => p.status != c.status,
|
listenWhen: (p, c) => p.status != c.status,
|
||||||
listener: (context, state) {
|
listener: (context, state) {
|
||||||
context.read<OrderLoaderBloc>().add(
|
context.read<OrderLoaderBloc>().add(
|
||||||
OrderLoaderEvent.fetched(isRefresh: true),
|
OrderLoaderEvent.fetched(isRefresh: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
),
|
||||||
|
BlocListener<OrderLoaderBloc, OrderLoaderState>(
|
||||||
|
listenWhen: (previous, current) =>
|
||||||
|
previous.dateFrom != current.dateFrom ||
|
||||||
|
previous.dateTo != current.dateTo,
|
||||||
|
listener: (context, state) {
|
||||||
|
context.read<OrderLoaderBloc>().add(
|
||||||
|
OrderLoaderEvent.fetched(isRefresh: true),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
child: BlocBuilder<OrderLoaderBloc, OrderLoaderState>(
|
child: BlocBuilder<OrderLoaderBloc, OrderLoaderState>(
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
return NotificationListener<ScrollNotification>(
|
return NotificationListener<ScrollNotification>(
|
||||||
@ -120,60 +135,36 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
// Pinned Filter Section
|
// Pinned Filter Section
|
||||||
SliverPersistentHeader(
|
SliverPersistentHeader(
|
||||||
pinned: true,
|
pinned: true,
|
||||||
delegate: _FilterHeaderDelegate(
|
delegate: FilterHeaderDelegate(
|
||||||
child: Container(
|
backgroundColor: AppColor.background,
|
||||||
color: AppColor.background,
|
|
||||||
padding: EdgeInsets.fromLTRB(
|
padding: EdgeInsets.fromLTRB(
|
||||||
AppValue.padding,
|
AppValue.padding,
|
||||||
10,
|
10,
|
||||||
AppValue.padding,
|
AppValue.padding,
|
||||||
10,
|
10,
|
||||||
),
|
),
|
||||||
child: Column(
|
startDate: state.dateFrom,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
endDate: state.dateTo,
|
||||||
children: [
|
filterOptions: filterOptions,
|
||||||
SingleChildScrollView(
|
selectedFilter: state.status,
|
||||||
scrollDirection: Axis.horizontal,
|
onDateChanged: (startDate, endDate) {
|
||||||
child: Row(
|
if (startDate != null && endDate != null) {
|
||||||
children: filterOptions.map((option) {
|
log('Date changed');
|
||||||
final index = filterOptions.indexOf(option);
|
|
||||||
return Padding(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
right: index < filterOptions.length - 1
|
|
||||||
? 8
|
|
||||||
: 0,
|
|
||||||
),
|
|
||||||
child: OrderStatusTile(
|
|
||||||
label: option,
|
|
||||||
isSelected: option == selectedFilter,
|
|
||||||
onSelected: (isSelected) {
|
|
||||||
if (isSelected) {
|
|
||||||
setState(() {
|
|
||||||
selectedFilter = option;
|
|
||||||
});
|
|
||||||
if (option.toLowerCase() == 'all') {
|
|
||||||
context.read<OrderLoaderBloc>().add(
|
context.read<OrderLoaderBloc>().add(
|
||||||
OrderLoaderEvent.statusChanged(
|
OrderLoaderEvent.rangeDateChanged(
|
||||||
'',
|
startDate,
|
||||||
|
endDate,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
context.read<OrderLoaderBloc>().add(
|
|
||||||
OrderLoaderEvent.statusChanged(
|
|
||||||
option.toLowerCase(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
onFilterChanged: (filter) {
|
||||||
|
final status = filter.toLowerCase();
|
||||||
|
|
||||||
|
context.read<OrderLoaderBloc>().add(
|
||||||
|
OrderLoaderEvent.statusChanged(status),
|
||||||
);
|
);
|
||||||
}).toList(),
|
},
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -189,13 +180,13 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
// Show filtered transaction count
|
// Show filtered transaction count
|
||||||
if (selectedFilter != 'All')
|
if (state.status != 'all')
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(bottom: 16),
|
padding: const EdgeInsets.only(bottom: 16),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${state.orders.length} ${selectedFilter.toLowerCase()} order${state.orders.length != 1 ? 's' : ''}',
|
'${state.orders.length} ${state.status.toLowerCase()} order${state.orders.length != 1 ? 's' : ''}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppColor.textSecondary,
|
color: AppColor.textSecondary,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
@ -210,7 +201,7 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
? EmptyWidget(
|
? EmptyWidget(
|
||||||
title: 'Order',
|
title: 'Order',
|
||||||
message:
|
message:
|
||||||
'No ${selectedFilter.toLowerCase()} orders found',
|
'No ${state.status.toLowerCase()} orders found',
|
||||||
)
|
)
|
||||||
: ListView.builder(
|
: ListView.builder(
|
||||||
itemCount: state.orders.length,
|
itemCount: state.orders.length,
|
||||||
@ -247,28 +238,3 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Custom delegate for pinned filter header
|
// Custom delegate for pinned filter header
|
||||||
class _FilterHeaderDelegate extends SliverPersistentHeaderDelegate {
|
|
||||||
final Widget child;
|
|
||||||
|
|
||||||
_FilterHeaderDelegate({required this.child});
|
|
||||||
|
|
||||||
@override
|
|
||||||
double get minExtent => 70; // Minimum height when collapsed
|
|
||||||
|
|
||||||
@override
|
|
||||||
double get maxExtent => 70; // Maximum height when expanded
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(
|
|
||||||
BuildContext context,
|
|
||||||
double shrinkOffset,
|
|
||||||
bool overlapsContent,
|
|
||||||
) {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool shouldRebuild(covariant SliverPersistentHeaderDelegate oldDelegate) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -0,0 +1,99 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../../../components/field/date_range_picker_field.dart';
|
||||||
|
import 'status_tile.dart';
|
||||||
|
|
||||||
|
class FilterHeaderDelegate extends SliverPersistentHeaderDelegate {
|
||||||
|
final Color backgroundColor;
|
||||||
|
final EdgeInsets padding;
|
||||||
|
final DateTime? startDate;
|
||||||
|
final DateTime? endDate;
|
||||||
|
final List<String> filterOptions;
|
||||||
|
final String selectedFilter;
|
||||||
|
final Function(DateTime?, DateTime?) onDateChanged;
|
||||||
|
final Function(String) onFilterChanged;
|
||||||
|
|
||||||
|
FilterHeaderDelegate({
|
||||||
|
required this.backgroundColor,
|
||||||
|
required this.padding,
|
||||||
|
required this.startDate,
|
||||||
|
required this.endDate,
|
||||||
|
required this.filterOptions,
|
||||||
|
required this.selectedFilter,
|
||||||
|
required this.onDateChanged,
|
||||||
|
required this.onFilterChanged,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
double get minExtent => 130;
|
||||||
|
|
||||||
|
@override
|
||||||
|
double get maxExtent => 130;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(
|
||||||
|
BuildContext context,
|
||||||
|
double shrinkOffset,
|
||||||
|
bool overlapsContent,
|
||||||
|
) {
|
||||||
|
print('FilterHeaderDelegate build called'); // Debug log
|
||||||
|
return Container(
|
||||||
|
color: backgroundColor,
|
||||||
|
padding: padding,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(bottom: 8.0),
|
||||||
|
child: DateRangePickerField(
|
||||||
|
maxDate: DateTime.now(),
|
||||||
|
startDate: startDate,
|
||||||
|
endDate: endDate,
|
||||||
|
onChanged: (start, end) {
|
||||||
|
print(
|
||||||
|
'onChanged called in FilterHeaderDelegate: $start - $end',
|
||||||
|
); // Debug log
|
||||||
|
onDateChanged(start, end);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
child: Row(
|
||||||
|
children: filterOptions.asMap().entries.map((entry) {
|
||||||
|
final index = entry.key;
|
||||||
|
final option = entry.value;
|
||||||
|
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
right: index < filterOptions.length - 1 ? 8 : 0,
|
||||||
|
),
|
||||||
|
child: OrderStatusTile(
|
||||||
|
label: option,
|
||||||
|
isSelected: option == selectedFilter,
|
||||||
|
onSelected: (isSelected) {
|
||||||
|
if (isSelected) {
|
||||||
|
onFilterChanged(option);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldRebuild(covariant FilterHeaderDelegate oldDelegate) {
|
||||||
|
return oldDelegate.startDate != startDate ||
|
||||||
|
oldDelegate.endDate != endDate ||
|
||||||
|
oldDelegate.selectedFilter != selectedFilter ||
|
||||||
|
oldDelegate.filterOptions.length != filterOptions.length ||
|
||||||
|
oldDelegate.backgroundColor != backgroundColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user