From 3c09e16c43dcbadbf0aaff3247d351aaa53f8df4 Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Thu, 17 Mar 2022 09:35:05 +0100 Subject: [PATCH] feat: extension to convert between CharacterTheme and CharacterType --- lib/leaderboard/bloc/leaderboard_state.dart | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/lib/leaderboard/bloc/leaderboard_state.dart b/lib/leaderboard/bloc/leaderboard_state.dart index 8b254496..458a513b 100644 --- a/lib/leaderboard/bloc/leaderboard_state.dart +++ b/lib/leaderboard/bloc/leaderboard_state.dart @@ -34,6 +34,38 @@ class LeaderboardState extends Equatable { enum CharacterType { dash, sparky, android, dino } +extension CharacterTypeX on CharacterType { + CharacterTheme get theme { + switch (this) { + case CharacterType.dash: + return const DashTheme(); + case CharacterType.sparky: + return const SparkyTheme(); + case CharacterType.android: + return const AndroidTheme(); + case CharacterType.dino: + return const DinoTheme(); + } + } +} + +extension CharacterThemeX on CharacterTheme { + CharacterType get toType { + switch (this.runtimeType) { + case DashTheme: + return CharacterType.dash; + case SparkyTheme: + return CharacterType.sparky; + case AndroidTheme: + return CharacterType.android; + case DinoTheme: + return CharacterType.dino; + default: + return CharacterType.dash; + } + } +} + class LeaderboardEntry extends Equatable { const LeaderboardEntry({ required this.playerInitials,