forked from firka/firka
- Create firka_common package with core helpers (debug, json, icon), theme, and shared widgets (FirkaCard, FirkaShadow, GradeWidget, GradeSmallCard, ClassIconWidget, FirkaIconWidget, DelayedSpinnerWidget, CounterDigitWidget) - Keep Isar models (GenericCacheModel, TimetableCacheModel, HomeworkCacheModel, DatedCacheEntry, util) in firka and firka_wear - not moved to firka_common - Update firka and firka_wear to depend on firka_common for shared UI only - Add configurable roundGrade thresholds for firka settings - Add package param to FirkaIconWidget for app asset paths
61 lines
1.9 KiB
Dart
61 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:kreta_api/kreta_api.dart';
|
|
|
|
import 'package:firka_common/ui/components/firka_card.dart';
|
|
import 'package:firka_common/ui/components/grade_helpers.dart';
|
|
import 'package:firka_common/ui/shared/class_icon.dart';
|
|
import 'package:firka_common/ui/theme/style.dart';
|
|
|
|
class GradeSmallCard extends FirkaCard {
|
|
final List<Grade> grades;
|
|
final Subject subject;
|
|
|
|
GradeSmallCard(this.grades, this.subject, {super.key})
|
|
: super(
|
|
left: [
|
|
ClassIconWidget(
|
|
uid: subject.uid,
|
|
className: subject.name,
|
|
category: subject.category.name!,
|
|
color: appStyle.colors.accent,
|
|
),
|
|
const SizedBox(width: 4),
|
|
SizedBox(
|
|
width: 200,
|
|
child: Text(
|
|
subject.name,
|
|
style: appStyle.fonts.B_16SB.apply(
|
|
color: appStyle.colors.textPrimary,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
right: [
|
|
grades.getAverageBySubject(subject).isNaN
|
|
? const SizedBox()
|
|
: Card(
|
|
shadowColor: Colors.transparent,
|
|
color: getGradeColor(
|
|
grades.getAverageBySubject(subject),
|
|
).withAlpha(38),
|
|
child: Padding(
|
|
padding: const EdgeInsets.only(
|
|
left: 8,
|
|
right: 8,
|
|
top: 4,
|
|
bottom: 4,
|
|
),
|
|
child: Text(
|
|
grades.getAverageBySubject(subject).toStringAsFixed(2),
|
|
style: appStyle.fonts.B_16SB.apply(
|
|
color: getGradeColor(
|
|
grades.getAverageBySubject(subject),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
);
|
|
}
|