From c8b402118c6cca3974b09efd2e9da24a01e132c7 Mon Sep 17 00:00:00 2001
From: checkedear <271323618+checkedear@users.noreply.github.com>
Date: Mon, 15 Jun 2026 12:14:52 +0200
Subject: [PATCH] feat: omission card icon
---
firka/assets/majesticons/check.svg | 3 ++
firka/assets/majesticons/checkSolid.svg | 10 +++++
.../ui/phone/pages/home/home_omissions.dart | 4 +-
firka/lib/ui/phone/widgets/info_card.dart | 39 +++++++++++++++----
4 files changed, 46 insertions(+), 10 deletions(-)
create mode 100644 firka/assets/majesticons/check.svg
create mode 100644 firka/assets/majesticons/checkSolid.svg
diff --git a/firka/assets/majesticons/check.svg b/firka/assets/majesticons/check.svg
new file mode 100644
index 00000000..6d2e5283
--- /dev/null
+++ b/firka/assets/majesticons/check.svg
@@ -0,0 +1,3 @@
+
diff --git a/firka/assets/majesticons/checkSolid.svg b/firka/assets/majesticons/checkSolid.svg
new file mode 100644
index 00000000..7cd766c5
--- /dev/null
+++ b/firka/assets/majesticons/checkSolid.svg
@@ -0,0 +1,10 @@
+
diff --git a/firka/lib/ui/phone/pages/home/home_omissions.dart b/firka/lib/ui/phone/pages/home/home_omissions.dart
index 823ab3e5..b733d2cb 100644
--- a/firka/lib/ui/phone/pages/home/home_omissions.dart
+++ b/firka/lib/ui/phone/pages/home/home_omissions.dart
@@ -112,7 +112,7 @@ class _HomeOmissionsScreen extends FirkaState {
children: [
FirkaIconWidget(
FirkaIconType.majesticonsLocal,
- "check",
+ "checkSolid",
size: 12.0,
color: appStyle.colors.accent,
),
@@ -269,7 +269,7 @@ class _HomeOmissionsScreen extends FirkaState {
children: [
FirkaIconWidget(
FirkaIconType.majesticonsLocal,
- "check",
+ "checkSolid",
size: 12.0,
color: appStyle.colors.accent,
),
diff --git a/firka/lib/ui/phone/widgets/info_card.dart b/firka/lib/ui/phone/widgets/info_card.dart
index 4b5f0d65..bbe84f56 100644
--- a/firka/lib/ui/phone/widgets/info_card.dart
+++ b/firka/lib/ui/phone/widgets/info_card.dart
@@ -107,29 +107,52 @@ class InfoCard extends StatelessWidget {
factory InfoCard.omission(List omissions) {
String title = "-";
+ Color color = appStyle.colors.accent;
+ FirkaIconType iconType = FirkaIconType.majesticons;
+ Object iconData = "check";
for (final state in [
- OmissionState.pending,
- OmissionState.unexcused,
- OmissionState.excused,
+ (
+ OmissionState.pending,
+ appStyle.colors.warningAccent,
+ FirkaIconType.majesticons,
+ Majesticon.timerSolid,
+ ),
+ (
+ OmissionState.unexcused,
+ appStyle.colors.errorAccent,
+ FirkaIconType.majesticons,
+ Majesticon.restrictedLine,
+ ),
+ (
+ OmissionState.excused,
+ appStyle.colors.accent,
+ FirkaIconType.majesticonsLocal,
+ "check",
+ ),
]) {
- final count = omissions.where((o) => o.state == state).length;
+ final count = omissions.where((o) => o.state == state.$1).length;
if (count == 0) {
continue;
}
- title = initData.l10n.omissions_count(state.name, count);
+ title = initData.l10n.omissions_count(state.$1.name, count);
+ color = state.$2;
+ iconType = state.$3;
+ iconData = state.$4;
break;
}
return InfoCard(
icon: FilledCircle(
diameter: 36,
- color: appStyle.colors.a15p,
- child: SizedBox(),
+ color: color.withAlpha(38),
+ child: FirkaIconWidget(iconType, iconData, color: color, size: 24),
),
texts: [
title,
- DateFormat.MMMMd(initData.l10n.localeName).format(omissions.first.date),
+ DateFormat.MMMMd(
+ initData.l10n.localeName,
+ ).format(omissions.first.date).firstUpper(),
],
onTap: (context) =>
showOmissionBottomSheet(context, initData, title, omissions),