frequency-dashboard/frontend/lib/screens/dashboard/components/file_info_card.dart

117 lines
3.2 KiB
Dart

import 'package:admin/models/my_files.dart';
import 'package:flutter/material.dart';
// import 'package:flutter_svg/flutter_svg.dart';
import '../../../constants.dart';
class FileInfoCard extends StatelessWidget {
const FileInfoCard({
Key? key,
required this.info,
}) : super(key: key);
final CloudStorageInfo info;
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(defaultPadding),
decoration: BoxDecoration(
color: secondaryColor,
borderRadius: const BorderRadius.all(Radius.circular(10)),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.all(defaultPadding * 0.75),
height: 40,
width: 40,
decoration: BoxDecoration(
color: info.color!.withOpacity(0.1),
borderRadius: const BorderRadius.all(Radius.circular(10)),
),
// child: SvgPicture.asset(
// info.svgSrc!,
// colorFilter: ColorFilter.mode(
// info.color ?? Colors.black, BlendMode.srcIn),
// ),
),
Icon(Icons.more_vert, color: Colors.white54)
],
),
Text(
info.title!,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
ProgressLine(
color: info.color,
percentage: info.percentage,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"${info.numOfFiles} Alunos",
style: Theme.of(context)
.textTheme
.bodySmall!
.copyWith(color: Colors.white70),
),
Text(
info.totalStorage!,
style: Theme.of(context)
.textTheme
.bodySmall!
.copyWith(color: Colors.white),
),
],
)
],
),
);
}
}
class ProgressLine extends StatelessWidget {
const ProgressLine({
Key? key,
this.color = primaryColor,
required this.percentage,
}) : super(key: key);
final Color? color;
final int? percentage;
@override
Widget build(BuildContext context) {
return Stack(
children: [
Container(
width: double.infinity,
height: 5,
decoration: BoxDecoration(
color: color!.withOpacity(0.1),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
),
LayoutBuilder(
builder: (context, constraints) => Container(
width: constraints.maxWidth * (percentage! / 100),
height: 5,
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
),
),
],
);
}
}