tt: show tests on day picker

This commit is contained in:
2025-09-10 07:44:39 +02:00
parent 93d3125013
commit 0701424b3c
4 changed files with 63 additions and 7 deletions

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0V0C12.4183 0 16 3.58172 16 8V8C16 12.4183 12.4183 16 8 16H2C0.895431 16 0 15.1046 0 14V8Z" fill="#000000"/>
</svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@@ -6,6 +6,7 @@ import 'package:firka/helpers/extensions.dart';
import 'package:firka/helpers/settings/setting.dart';
import 'package:firka/ui/model/style.dart';
import 'package:firka/ui/phone/screens/settings/settings_screen.dart';
import 'package:firka/ui/phone/widgets/bubble_test.dart';
import 'package:firka/ui/widget/delayed_spinner.dart';
import 'package:flutter/material.dart';
import 'package:majesticons_flutter/majesticons_flutter.dart';
@@ -179,13 +180,6 @@ class _HomeTimetableScreen extends FirkaState<HomeTimetableScreen> {
for (var i = 0; i < dates!.length; i++) {
final date = dates![i];
ttWidgets.add(BottomTimeTableNavIconWidget(widget.data.l10n, () {
setState(() {
_controller.jumpToPage(i);
active = i;
});
}, active == i, date));
final lessonsOnDate = lessons!
.where((lesson) =>
lesson.start.isAfter(date) &&
@@ -202,6 +196,31 @@ class _HomeTimetableScreen extends FirkaState<HomeTimetableScreen> {
test.date.isBefore(date.add(Duration(hours: 23, minutes: 59))))
.toList();
if (testsOnDate.isNotEmpty) {
debugPrint(testsOnDate.toString());
ttWidgets.add(Stack(
children: [
BottomTimeTableNavIconWidget(widget.data.l10n, () {
setState(() {
_controller.jumpToPage(i);
active = i;
});
}, active == i, date),
Transform.translate(
offset: Offset(38, -10),
child: BubbleTest(),
),
],
));
} else {
ttWidgets.add(BottomTimeTableNavIconWidget(widget.data.l10n, () {
setState(() {
_controller.jumpToPage(i);
active = i;
});
}, active == i, date));
}
ttDays.add(TimeTableDayWidget(widget.data, date, lessons!,
lessonsOnDate, eventsOnDate, testsOnDate));
}

View File

@@ -0,0 +1,33 @@
import 'package:firka/ui/widget/firka_icon.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_svg/svg.dart';
import 'package:majesticons_flutter/majesticons_flutter.dart';
import '../../model/style.dart';
class BubbleTest extends StatelessWidget {
const BubbleTest({super.key});
@override
Widget build(BuildContext context) {
return Stack(
children: [
SvgPicture.asset(
"assets/images/bubble.svg",
color: appStyle.colors.buttonSecondaryFill,
width: 24,
height: 24,
),
Transform.translate(
offset: Offset(3, 6),
child: FirkaIconWidget(
FirkaIconType.majesticons,
Majesticon.editPen4Line,
color: appStyle.colors.accent,
size: 14,
),
),
],
);
}
}

View File

@@ -96,6 +96,7 @@ flutter:
- assets/images/icons/
- assets/images/background.webp
- assets/images/wear_pair.svg
- assets/images/bubble.svg
- assets/icons/
- assets/majesticons/
- assets/firka.i