fixed consultation archive filters issues

This commit is contained in:
Username1548
2025-05-30 20:04:47 +07:00
parent d405be1ea4
commit 7f29ade548
3 changed files with 24 additions and 4 deletions

View File

@@ -33,10 +33,28 @@ class ConsultationService {
FiltersComparisonEnum? dateComparison,
}) async {
try {
const inactiveStates = [
'initied',
'in_coordination',
'start_date_has_been_set',
'pending_payment',
'canceled_by_the_initiator',
'charge_was_collected',
];
final response = await dio.get(
'/api/consultations',
queryParameters: {
if (state != null) 'filters[last_state][${stateComparison?.value ?? '\$chosen_plan_status'}]': state,
if (stateComparison == FiltersComparisonEnum.notInArray)
'filters[last_state][\$notIn][]': const [
'initied',
'in_coordination',
'start_date_has_been_set',
'pending_payment',
'canceled_by_the_initiator',
'charge_was_collected',
]
else if (state != null && stateComparison != null)
'filters[last_state][${stateComparison.value}]': state,
if (dateComparison != null && date != null) 'filters[start_date][${dateComparison.value}]': date,
},
);

View File

@@ -29,9 +29,11 @@ class ConsultationsArchiveCubit extends Cubit<ConsultationsArchiveState> {
date: state.periodFilterStatus?.value,
state: state.consultationFilterStatus?.value,
dateComparison: state.periodFilterStatus == PeriodFilterStatus.all ? null : FiltersComparisonEnum.greaterThanOrEqual,
stateComparison: state.consultationFilterStatus != ConsultationFilterStatus.inProgress && state.consultationFilterStatus == ConsultationFilterStatus.all
stateComparison: state.consultationFilterStatus == ConsultationFilterStatus.all
? null
: FiltersComparisonEnum.equal,
: state.consultationFilterStatus == ConsultationFilterStatus.inProgress
? FiltersComparisonEnum.notInArray
: FiltersComparisonEnum.equal,
);
emit(state.copyWith(consultations: consultations, isLoading: false));
} catch (e) {

View File

@@ -156,7 +156,7 @@ class _ConsultationsArchiveScreenState extends State<ConsultationsArchiveScreen>
if (value == null) return;
context.read<ConsultationsArchiveCubit>().setConsultationsStatus(value);
},
value: state.consultationFilterStatus,
value: state.consultationFilterStatus ?? ConsultationFilterStatus.values.first,
),
const SizedBox(height: 12),
if (state.consultations.isNotEmpty)