Skip to content

Commit

Permalink
refactor: badge type with internal widget
Browse files Browse the repository at this point in the history
  • Loading branch information
brunogabriel committed Dec 21, 2024
1 parent 3b43ccb commit f689ff0
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 41 deletions.
86 changes: 50 additions & 36 deletions pokedex/lib/design/components/badge_type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,48 +27,62 @@ class BadgeType extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (diameter == 0.0) {
return _buildTextBadge(context);
}
return _buildCircular();
}

Container _buildTextBadge(BuildContext context) {
final textTheme = Theme.of(context).textTheme;
final textTheme = Theme.of(context).textTheme;

return Container(
decoration: BoxDecoration(
color: type.pokemonColor.primary,
borderRadius: BorderRadius.circular(PokedexSpacing.kM),
),
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: PokedexSpacing.kS,
vertical: PokedexSpacing.kXS,
return Container(
decoration: BoxDecoration(
color: type.pokemonColor.primary,
borderRadius: BorderRadius.circular(PokedexSpacing.kM),
),
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: PokedexSpacing.kM,
width: PokedexSpacing.kM,
child: SvgPicture.asset('icons/$type.svg'.asset()),
),
const SizedBox(
width: PokedexSpacing.kS,
),
Text(
type.capitalize(),
textAlign: TextAlign.center,
style: textTheme.bodyMedium?.copyWith(color: Colors.white),
),
],
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: PokedexSpacing.kS,
vertical: PokedexSpacing.kXS,
),
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: PokedexSpacing.kM,
width: PokedexSpacing.kM,
child: SvgPicture.asset('icons/$type.svg'.asset()),
),
const SizedBox(
width: PokedexSpacing.kS,
),
Text(
type.capitalize(),
textAlign: TextAlign.center,
style: textTheme.bodyMedium?.copyWith(color: Colors.white),
),
],
),
),
),
);
}

return _CircularBadge(
type: type,
diameter: diameter,
diameterPadding: diameterPadding,
);
}
}

Widget _buildCircular() {
class _CircularBadge extends StatelessWidget {
const _CircularBadge({
required this.type,
required this.diameter,
required this.diameterPadding,
});

final String type;
final double diameter;
final double diameterPadding;

@override
Widget build(BuildContext context) {
return Container(
height: diameter,
width: diameter,
Expand Down
12 changes: 7 additions & 5 deletions pokedex/lib/design/components/stat_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@ class _StatChartState extends State<StatChart> {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
_animated = true;
});
});
WidgetsBinding.instance.addPostFrameCallback(
(_) {
setState(() {
_animated = true;
});
},
);
// _animate();
}

Expand Down

0 comments on commit f689ff0

Please sign in to comment.