proxybuy-flutter/lib/widgets/rate.dart

52 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:lba/gen/assets.gen.dart';
class CustomStarRating extends StatelessWidget {
final double rating;
final int starCount;
final double size;
const CustomStarRating({
super.key,
required this.rating,
this.starCount = 5,
this.size = 20.0,
});
@override
Widget build(BuildContext context) {
List<Widget> stars = [];
double remaining = rating;
for (int i = 0; i < starCount; i++) {
if (remaining >= 1) {
stars.add(_buildStar(Assets.icons.starFill.path));
remaining -= 1;
} else if (remaining >= 0.5) {
stars.add(_buildStar(Assets.icons.starHalf.path));
remaining = 0;
} else {
stars.add(_buildStar(Assets.icons.star.path));
}
}
return Row(
mainAxisSize: MainAxisSize.min,
children: stars,
);
}
Widget _buildStar(String asset) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 2),
child: SvgPicture.asset(
asset,
width: size,
height: size,
),
);
}
}