fix: allow guests to view event details by passing pre-loaded data

LearnMoreScreen now accepts an optional initialEvent parameter so it
can render immediately from already-loaded data instead of re-fetching
from the event-details API. This fixes the guest-mode flow where the
unauthenticated API call was failing. Also changed getEventDetails to
requiresAuth: true so logged-in users send their token when the API
path is used.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 19:25:40 +05:30
parent 6503d9bc1b
commit 87cc56dc64
6 changed files with 26 additions and 19 deletions

View File

@@ -395,7 +395,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
onTap: () {
Navigator.of(context).pop();
if (ev.id != null) {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: ev.id)));
Navigator.of(context).push(MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: ev.id, initialEvent: ev)));
}
},
);
@@ -805,7 +805,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
onTap: () {
Navigator.of(context).pop();
if (ev.id != null) {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: ev.id)));
Navigator.of(context).push(MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: ev.id, initialEvent: ev)));
}
},
child: Container(
@@ -1303,7 +1303,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
onTap: () {
if (event.id != null) {
Navigator.push(context,
MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: event.id)));
MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: event.id, initialEvent: event)));
}
},
child: Padding(
@@ -1663,7 +1663,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
return GestureDetector(
onTap: () {
if (event.id != null) {
Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: event.id)));
Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: event.id, initialEvent: event)));
}
},
child: Container(
@@ -1855,7 +1855,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
return GestureDetector(
onTap: () {
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id)));
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id, initialEvent: e)));
},
child: Container(
margin: const EdgeInsets.symmetric(vertical: 0),
@@ -1924,7 +1924,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
return GestureDetector(
onTap: () {
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id)));
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id, initialEvent: e)));
},
child: SizedBox(
width: 220,
@@ -2090,7 +2090,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
return GestureDetector(
onTap: () {
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id)));
if (e.id != null) Navigator.push(context, MaterialPageRoute(builder: (_) => LearnMoreScreen(eventId: e.id, initialEvent: e)));
},
child: Container(
margin: const EdgeInsets.only(bottom: 18),