Presearch google activities.

This commit is contained in:
Dayron
2025-11-13 09:27:37 +01:00
parent d17df621f4
commit 236327f6fa
6 changed files with 156 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import '../../blocs/activity/activity_event.dart';
import '../../blocs/activity/activity_state.dart';
import '../../models/trip.dart';
import '../../models/activity.dart';
import '../../services/activity_cache_service.dart';
import '../activities/add_activity_bottom_sheet.dart';
class ActivitiesPage extends StatefulWidget {
@@ -20,6 +21,7 @@ class _ActivitiesPageState extends State<ActivitiesPage>
with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
late TabController _tabController;
final TextEditingController _searchController = TextEditingController();
final ActivityCacheService _cacheService = ActivityCacheService();
String _selectedCategory = 'Toutes les catégories';
String _selectedPrice = 'Prix';
String _selectedRating = 'Note';
@@ -79,7 +81,18 @@ class _ActivitiesPageState extends State<ActivitiesPage>
void _handleTabChange() {
// Si on va sur l'onglet suggestions Google et qu'aucune recherche n'a été faite
if (_tabController.index == 2 && !_googleSearchPerformed) {
_searchGoogleActivities();
// Vérifier si on a des activités en cache
final cachedActivities = _cacheService.getCachedActivities(widget.trip.id!);
if (cachedActivities != null && cachedActivities.isNotEmpty) {
// Restaurer les activités en cache dans le BLoC
context.read<ActivityBloc>().add(
RestoreCachedSearchResults(searchResults: cachedActivities),
);
_googleSearchPerformed = true;
} else {
// Sinon, faire une nouvelle recherche
_searchGoogleActivities();
}
}
}

View File

@@ -29,7 +29,7 @@ class ActivityCard extends StatelessWidget {
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
color: Colors.black.withValues(alpha: 0.05),
blurRadius: 8,
offset: const Offset(0, 2),
),
@@ -74,7 +74,7 @@ class ActivityCard extends StatelessWidget {
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.7),
color: Colors.black.withValues(alpha: 0.7),
borderRadius: BorderRadius.circular(8),
),
child: Text(