Fix blank consent screen: drop nested MaterialApp

The consent gate wrapped ConsentDialog in a second MaterialApp with no
localizationsDelegates. That started a fresh Localizations scope without
the AppLocalizations delegate, so context.l10n inside the dialog resolved
to nothing and the consent screen rendered with no text.

Render the consent screen as a plain Scaffold inside the app's existing
MaterialApp, which already supplies both the theme and the localization
delegates. Text now renders in all languages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Brenno de Winter 2026-06-11 14:27:24 +02:00
parent 56932a2dda
commit 47b2555dc5

View file

@ -62,23 +62,18 @@ class _ConsentGate extends ConsumerWidget {
final consent = ref.watch(consentProvider);
if (consent.isLoading) {
return Scaffold(
body: Center(
child: const CircularProgressIndicator(),
),
return const Scaffold(
body: Center(child: CircularProgressIndicator()),
);
}
if (!consent.hasAccepted) {
return MaterialApp(
title: 'OciDeck',
theme: ThemeData.light(),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: ConsentDialog(),
),
),
// Plain Scaffold inside the app's existing MaterialApp — that one already
// supplies the theme and the AppLocalizations delegate, so context.l10n
// resolves here. A nested MaterialApp would start a fresh Localizations
// scope without our delegate and the consent text would render blank.
return const Scaffold(
body: Center(child: ConsentDialog()),
);
}