Files
aurcache/frontend/lib/components/dashboard/side_panel.dart
T

68 lines
2.0 KiB
Dart
Raw Normal View History

2023-12-30 00:45:33 +01:00
import 'package:aurcache/components/dashboard/chart_card.dart';
import 'package:flutter/material.dart';
2023-12-30 00:45:33 +01:00
import '../../constants/color_constants.dart';
import 'builds_chart.dart';
2023-12-30 00:45:33 +01:00
class SidePanel extends StatelessWidget {
const SidePanel({
Key? key,
2023-12-30 00:45:33 +01:00
required this.nrbuilds,
required this.nrfailedbuilds,
required this.nrEnqueuedBuilds,
}) : super(key: key);
2023-12-30 00:45:33 +01:00
final int nrbuilds;
final int nrfailedbuilds;
final int nrEnqueuedBuilds;
2023-12-30 00:45:33 +01:00
@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,
children: [
2023-12-30 00:45:33 +01:00
const Text(
"Package build success",
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
2023-12-30 00:45:33 +01:00
const SizedBox(height: defaultPadding),
BuildsChart(
nrbuilds: nrbuilds,
nrfailedbuilds: nrfailedbuilds,
nrActiveBuilds: nrEnqueuedBuilds),
2024-02-16 17:37:26 +01:00
SideCard(
color: const Color(0xff0a7005),
title: "Successful Builds",
2023-12-30 00:45:33 +01:00
textRight:
"${((nrbuilds - nrfailedbuilds) * 100 / nrbuilds).toStringAsFixed(2)}%",
subtitle: (nrbuilds - nrfailedbuilds).toString(),
),
2024-02-16 17:37:26 +01:00
SideCard(
color: const Color(0xff760707),
title: "Failed Builds",
2023-12-30 00:45:33 +01:00
textRight:
"${(nrfailedbuilds * 100 / nrbuilds).toStringAsFixed(2)}%",
subtitle: nrfailedbuilds.toString(),
),
2024-02-16 17:37:26 +01:00
SideCard(
color: const Color(0xFF0044AA),
title: "Enqueued Builds",
textRight:
"${(nrEnqueuedBuilds * 100 / nrbuilds).toStringAsFixed(2)}%",
subtitle: nrEnqueuedBuilds.toString(),
),
],
),
);
}
}