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),