diff --git a/lib/features/events/services/events_service.dart b/lib/features/events/services/events_service.dart index 4efc18d..4a3f7bc 100644 --- a/lib/features/events/services/events_service.dart +++ b/lib/features/events/services/events_service.dart @@ -77,9 +77,9 @@ class EventsService { return list; } - /// Event details + /// Event details — requiresAuth: false so guests can fetch full details Future getEventDetails(int eventId) async { - final res = await _api.post(ApiEndpoints.eventDetails, body: {'event_id': eventId}, requiresAuth: true); + final res = await _api.post(ApiEndpoints.eventDetails, body: {'event_id': eventId}, requiresAuth: false); return EventModel.fromJson(Map.from(res)); } diff --git a/lib/screens/learn_more_screen.dart b/lib/screens/learn_more_screen.dart index d14830c..7f8c87d 100644 --- a/lib/screens/learn_more_screen.dart +++ b/lib/screens/learn_more_screen.dart @@ -75,19 +75,24 @@ class _LearnMoreScreenState extends State { // Data loading // --------------------------------------------------------------------------- - /// Silently fetch full event details to fill in fields missing from the list - /// endpoint (important_information, images, etc.) without showing a loader. + /// Fetch full event details to fill in fields missing from the list + /// endpoint (important_information, images, etc.). Future _loadFullDetails() async { - try { - final ev = await _service.getEventDetails(widget.eventId); - if (!mounted) return; - setState(() { - _event = ev; - }); - _startAutoScroll(); - } catch (e) { - // Log for debugging, but don't show error — the pre-loaded data is displayed - debugPrint('_loadFullDetails failed for event ${widget.eventId}: $e'); + for (int attempt = 0; attempt < 2; attempt++) { + try { + final ev = await _service.getEventDetails(widget.eventId); + if (!mounted) return; + setState(() { + _event = ev; + }); + _startAutoScroll(); + return; // success + } catch (e) { + debugPrint('_loadFullDetails attempt ${attempt + 1} failed for event ${widget.eventId}: $e'); + if (attempt == 0) { + await Future.delayed(const Duration(seconds: 1)); // wait before retry + } + } } }