Optimize calendar loading with parallel API calls

- Replace sequential API calls with Future.wait() for parallel execution
- Reduces calendar load time from ~31 sequential requests to 1 parallel batch
This commit is contained in:
m3mo 2026-02-03 18:27:43 +01:00
parent fbccd5b7d9
commit db0c5337ed

View File

@ -36,11 +36,21 @@ class _CalendarPageState extends State<CalendarPage> {
final lastDay = DateTime(_focusedMonth.year, _focusedMonth.month + 1, 0);
for (int day = 1; day <= lastDay.day; day++) {
final date = DateTime(_focusedMonth.year, _focusedMonth.month, day);
final dateStr = DateFormat('yyyy-MM-dd').format(date);
final result = await repository.getTasksByDate(date);
result.when(
// Create all date requests
final dates = List.generate(
lastDay.day,
(index) => DateTime(_focusedMonth.year, _focusedMonth.month, index + 1),
);
// Execute all API calls in parallel
final results = await Future.wait(
dates.map((date) => repository.getTasksByDate(date)),
);
// Process results
for (int i = 0; i < dates.length; i++) {
final dateStr = DateFormat('yyyy-MM-dd').format(dates[i]);
results[i].when(
success: (data) {
if (data.isNotEmpty) {
tasks[dateStr] = data;