refactor: pass theme to leaderboard widgets

pull/51/head
RuiAlonso 4 years ago
parent 60dfa5cd4d
commit 0b0f447793

@ -27,13 +27,15 @@ class LeaderboardPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocProvider( return BlocProvider(
create: (context) => ThemeCubit()..characterSelected(theme), create: (context) => ThemeCubit()..characterSelected(theme),
child: const LeaderboardView(), child: LeaderboardView(theme: theme),
); );
} }
} }
class LeaderboardView extends StatelessWidget { class LeaderboardView extends StatelessWidget {
const LeaderboardView({Key? key}) : super(key: key); const LeaderboardView({Key? key, required this.theme}) : super(key: key);
final CharacterTheme theme;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -51,7 +53,7 @@ class LeaderboardView extends StatelessWidget {
style: Theme.of(context).textTheme.headline3, style: Theme.of(context).textTheme.headline3,
), ),
const SizedBox(height: 80), const SizedBox(height: 80),
const _LeaderboardRanking(), _LeaderboardRanking(theme: theme),
const SizedBox(height: 20), const SizedBox(height: 20),
TextButton( TextButton(
onPressed: () => Navigator.of(context).push<void>( onPressed: () => Navigator.of(context).push<void>(
@ -68,7 +70,9 @@ class LeaderboardView extends StatelessWidget {
} }
class _LeaderboardRanking extends StatelessWidget { class _LeaderboardRanking extends StatelessWidget {
const _LeaderboardRanking({Key? key}) : super(key: key); const _LeaderboardRanking({Key? key, required this.theme}) : super(key: key);
final CharacterTheme theme;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -76,9 +80,9 @@ class _LeaderboardRanking extends StatelessWidget {
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: const [ children: [
_LeaderboardHeaders(), _LeaderboardHeaders(theme: theme),
_LeaderboardList(), const _LeaderboardList(),
], ],
), ),
); );
@ -86,7 +90,9 @@ class _LeaderboardRanking extends StatelessWidget {
} }
class _LeaderboardHeaders extends StatelessWidget { class _LeaderboardHeaders extends StatelessWidget {
const _LeaderboardHeaders({Key? key}) : super(key: key); const _LeaderboardHeaders({Key? key, required this.theme}) : super(key: key);
final CharacterTheme theme;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -95,18 +101,23 @@ class _LeaderboardHeaders extends StatelessWidget {
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
_LeaderboardHeaderItem(title: l10n.rank), _LeaderboardHeaderItem(title: l10n.rank, theme: theme),
_LeaderboardHeaderItem(title: l10n.character), _LeaderboardHeaderItem(title: l10n.character, theme: theme),
_LeaderboardHeaderItem(title: l10n.userName), _LeaderboardHeaderItem(title: l10n.userName, theme: theme),
_LeaderboardHeaderItem(title: l10n.score), _LeaderboardHeaderItem(title: l10n.score, theme: theme),
], ],
); );
} }
} }
class _LeaderboardHeaderItem extends StatelessWidget { class _LeaderboardHeaderItem extends StatelessWidget {
const _LeaderboardHeaderItem({Key? key, required this.title}) const _LeaderboardHeaderItem({
: super(key: key); Key? key,
required this.title,
required this.theme,
}) : super(key: key);
final CharacterTheme theme;
final String title; final String title;
@override @override
@ -114,8 +125,7 @@ class _LeaderboardHeaderItem extends StatelessWidget {
return Expanded( return Expanded(
child: DecoratedBox( child: DecoratedBox(
decoration: BoxDecoration( decoration: BoxDecoration(
color: color: theme.ballColor,
context.read<ThemeCubit>().state.theme.characterTheme.ballColor,
), ),
child: Text( child: Text(
title, title,

Loading…
Cancel
Save