feat(app): stabilize recommendation flow

This commit is contained in:
JiWoong Sul
2025-12-01 17:22:21 +09:00
parent d05e378569
commit c1aa16c521
12 changed files with 422 additions and 260 deletions

View File

@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:lunchpick/domain/entities/restaurant.dart';
import '../../../core/constants/app_colors.dart';
import '../../../core/constants/app_typography.dart';
import '../../../core/utils/app_logger.dart';
import '../../providers/restaurant_provider.dart';
import '../../widgets/category_selector.dart';
import 'manual_restaurant_input_screen.dart';
@@ -33,11 +34,9 @@ class _RestaurantListScreenState extends ConsumerState<RestaurantListScreen> {
final searchQuery = ref.watch(searchQueryProvider);
final selectedCategory = ref.watch(selectedCategoryProvider);
final isFiltered = searchQuery.isNotEmpty || selectedCategory != null;
final restaurantsAsync = ref.watch(
isFiltered
? filteredRestaurantsProvider
: sortedRestaurantsByDistanceProvider,
);
final restaurantsAsync = isFiltered
? ref.watch(filteredRestaurantsProvider)
: ref.watch(sortedRestaurantsByDistanceProvider);
return Scaffold(
backgroundColor: isDark
@@ -106,6 +105,9 @@ class _RestaurantListScreenState extends ConsumerState<RestaurantListScreen> {
Expanded(
child: restaurantsAsync.when(
data: (restaurantsData) {
AppLogger.debug(
'[restaurant_list_ui] data received, filtered=$isFiltered',
);
final items = isFiltered
? (restaurantsData as List<Restaurant>)
.map(
@@ -132,9 +134,14 @@ class _RestaurantListScreenState extends ConsumerState<RestaurantListScreen> {
},
);
},
loading: () => const Center(
child: CircularProgressIndicator(color: AppColors.lightPrimary),
),
loading: () {
AppLogger.debug('[restaurant_list_ui] loading...');
return const Center(
child: CircularProgressIndicator(
color: AppColors.lightPrimary,
),
);
},
error: (error, stack) => Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,