You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/widgets/shared/StarRating.dart

48 lines
1.5 KiB
Dart

import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
class StarRating extends StatelessWidget {
final double totalAverage;
final double size;
final int totalCount;
final bool forceStars;
StarRating(
{Key key,
this.totalAverage: 0.0,
this.size: 16.0,
this.totalCount = 5,
this.forceStars = false})
: super(key: key);
@override
Widget build(BuildContext context) {
return Row(mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[
if (!forceStars && (totalAverage == null || totalAverage == 0))
AppText("New", style: "caption"),
if (forceStars || (totalAverage != null && totalAverage > 0))
...List.generate(
5,
(index) => Padding(
padding: EdgeInsets.only(right: 1.0),
child: Icon(
(index + 1) <= (totalAverage ?? 0)
? EvaIcons.star
: EvaIcons.starOutline,
size: size,
color: (index + 1) <= (totalAverage ?? 0)
? Color.fromRGBO(255, 186, 0, 1.0)
: Theme.of(context).hintColor),
)),
if (totalCount != null) SizedBox(width: 9.0),
if (totalCount != null)
AppText(
"(" + totalCount.toString() + ")",
style: "overline",
color: Colors.grey[400],
)
]);
}
}