forked from firka/firka
Tantárgy dizájn alapján szerkesztés
This commit is contained in:
@@ -33,6 +33,7 @@ class HomeGradesScreen extends StatefulWidget {
|
||||
|
||||
String activeSubjectUid = "";
|
||||
String subjectName = "";
|
||||
List<Subject> subjectInfo = [];
|
||||
|
||||
class _HomeGradesScreen extends FirkaState<HomeGradesScreen> {
|
||||
ApiResponse<List<Grade>>? grades;
|
||||
@@ -168,6 +169,7 @@ void updateListener() async {
|
||||
onTap: () {
|
||||
activeSubjectUid = subject.uid;
|
||||
subjectName = subject.name;
|
||||
subjectInfo = subjects.where((s) => s.uid == subject.uid).toList();
|
||||
widget.pageController(1);
|
||||
},
|
||||
));
|
||||
@@ -177,6 +179,7 @@ void updateListener() async {
|
||||
onTap: () {
|
||||
activeSubjectUid = subject.uid;
|
||||
subjectName = subject.name;
|
||||
subjectInfo = subjects.where((s) => s.uid == subject.uid).toList();
|
||||
widget.pageController(1);
|
||||
},
|
||||
));
|
||||
|
||||
@@ -4,8 +4,11 @@ import 'package:firka/helpers/ui/common_bottom_sheets.dart';
|
||||
import 'package:firka/helpers/ui/firka_card.dart';
|
||||
import 'package:firka/helpers/ui/grade.dart';
|
||||
import 'package:firka/ui/phone/pages/home/home_grades.dart';
|
||||
import 'package:firka/ui/widget/class_icon.dart';
|
||||
import 'package:firka/ui/widget/firka_icon.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:majesticons_flutter/majesticons_flutter.dart';
|
||||
|
||||
import '../../../../helpers/firka_state.dart';
|
||||
import '../../../../helpers/update_notifier.dart';
|
||||
@@ -16,9 +19,10 @@ class HomeGradesSubjectScreen extends StatefulWidget {
|
||||
final AppInitialization data;
|
||||
final UpdateNotifier updateNotifier;
|
||||
final UpdateNotifier finishNotifier;
|
||||
final void Function(int) pageController;
|
||||
|
||||
const HomeGradesSubjectScreen(
|
||||
this.data, this.updateNotifier, this.finishNotifier,
|
||||
this.data, this.updateNotifier, this.finishNotifier, this.pageController,
|
||||
{super.key});
|
||||
|
||||
@override
|
||||
@@ -139,14 +143,31 @@ class _HomeGradesSubjectScreen extends FirkaState<HomeGradesSubjectScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
widget.data.l10n.subjects,
|
||||
style: appStyle
|
||||
.fonts.H_16px // TODO: Replace this with the proper font
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
)
|
||||
Row(
|
||||
children: [
|
||||
Transform.translate(
|
||||
offset: const Offset(-4, 0),
|
||||
child: GestureDetector(
|
||||
child: FirkaIconWidget(
|
||||
FirkaIconType.majesticons, Majesticon.chevronLeftLine,
|
||||
color: appStyle.colors.textSecondary),
|
||||
onTap: () {
|
||||
widget.pageController(0);
|
||||
},
|
||||
),
|
||||
),
|
||||
Transform.translate(
|
||||
offset: const Offset(-4, 1),
|
||||
child: Text(
|
||||
widget.data.l10n.subjects,
|
||||
style: appStyle.fonts.B_16R
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
@@ -156,34 +177,38 @@ class _HomeGradesSubjectScreen extends FirkaState<HomeGradesSubjectScreen> {
|
||||
230,
|
||||
child: ListView(
|
||||
children: [
|
||||
FirkaCard(
|
||||
left: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 4),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width / 1.45,
|
||||
child: Text(
|
||||
aGrade.subject.name,
|
||||
style: appStyle.fonts.H_H2
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
aGrade.teacher, // For some reason the teacher's
|
||||
// name isn't stored in the subject, so we need
|
||||
// to get *a* grade, and then get the teacher's
|
||||
// name from there :3
|
||||
style: appStyle.fonts.B_16R
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
)
|
||||
],
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Card(
|
||||
shadowColor: const Color.fromRGBO(0, 0, 0, 0),
|
||||
color: appStyle.colors.a15p,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16)),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsGeometry.all(6),
|
||||
child: ClassIconWidget(
|
||||
uid: aGrade.subject.uid,
|
||||
className: aGrade.subject.name,
|
||||
category: aGrade.subject.category.name!,
|
||||
color: appStyle.colors.accent,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
aGrade.subject.name,
|
||||
style: appStyle.fonts.H_H2
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
SizedBox(height: 2),
|
||||
Text(
|
||||
aGrade.teacher,
|
||||
style: appStyle.fonts.B_16R
|
||||
.apply(color: appStyle.colors.textSecondary),
|
||||
),
|
||||
SizedBox(height: 15)
|
||||
]),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 4),
|
||||
child: Column(
|
||||
@@ -207,14 +232,31 @@ class _HomeGradesSubjectScreen extends FirkaState<HomeGradesSubjectScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
widget.data.l10n.subjects,
|
||||
style: appStyle
|
||||
.fonts.H_16px // TODO: Replace this with the proper font
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
)
|
||||
Row(
|
||||
children: [
|
||||
Transform.translate(
|
||||
offset: const Offset(-4, 0),
|
||||
child: GestureDetector(
|
||||
child: FirkaIconWidget(
|
||||
FirkaIconType.majesticons, Majesticon.chevronLeftLine,
|
||||
color: appStyle.colors.textSecondary),
|
||||
onTap: () {
|
||||
widget.pageController(0);
|
||||
},
|
||||
),
|
||||
),
|
||||
Transform.translate(
|
||||
offset: const Offset(-4, 1),
|
||||
child: Text(
|
||||
widget.data.l10n.subjects,
|
||||
style: appStyle.fonts.B_16R
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
@@ -224,26 +266,32 @@ class _HomeGradesSubjectScreen extends FirkaState<HomeGradesSubjectScreen> {
|
||||
230,
|
||||
child: ListView(
|
||||
children: [
|
||||
FirkaCard(
|
||||
left: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 4),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width / 1.45,
|
||||
child: Text(
|
||||
subjectName,
|
||||
style: appStyle.fonts.H_H2
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
),
|
||||
],
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Card(
|
||||
shadowColor: const Color.fromRGBO(0, 0, 0, 0),
|
||||
color: appStyle.colors.a15p,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16)),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsGeometry.all(6),
|
||||
child: ClassIconWidget(
|
||||
uid: subjectInfo.first.uid,
|
||||
className: subjectInfo.first.name,
|
||||
category: subjectInfo.first.category.name!,
|
||||
color: appStyle.colors.accent,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
subjectInfo.first.name,
|
||||
style: appStyle.fonts.H_H2
|
||||
.apply(color: appStyle.colors.textPrimary),
|
||||
),
|
||||
SizedBox(height: 15)
|
||||
]),
|
||||
SizedBox(
|
||||
height: MediaQuery.of(context).size.height - MediaQuery.of(context).padding.top - 320,
|
||||
child: Center(
|
||||
|
||||
@@ -916,8 +916,8 @@ class _HomeSubPage extends State<HomeSubPage> {
|
||||
return PageWithSubPages([
|
||||
(cb) => HomeGradesScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb),
|
||||
(cb) => HomeGradesSubjectScreen(widget.data,
|
||||
widget._updateNotifier, widget._updateFinishNotifier)
|
||||
(cb) => HomeGradesSubjectScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb),
|
||||
], subPageActive, subPageBack, pageIndex: 0);
|
||||
case HomePage.timetable:
|
||||
return PageWithSubPages([
|
||||
@@ -935,10 +935,10 @@ class _HomeSubPage extends State<HomeSubPage> {
|
||||
case HomePage.grades:
|
||||
activeSubjectUid = subPageData!;
|
||||
return PageWithSubPages([
|
||||
(cb) => HomeGradesSubjectScreen(widget.data,
|
||||
widget._updateNotifier, widget._updateFinishNotifier),
|
||||
(cb) => HomeGradesSubjectScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb),
|
||||
(cb) => HomeGradesScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb)
|
||||
widget._updateFinishNotifier, cb),
|
||||
], subPageActive, subPageBack, pageIndex: 0);
|
||||
case HomePage.timetable:
|
||||
return PageWithSubPages([
|
||||
@@ -959,8 +959,8 @@ class _HomeSubPage extends State<HomeSubPage> {
|
||||
return PageWithSubPages([
|
||||
(cb) => HomeGradesScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb),
|
||||
(cb) => HomeGradesSubjectScreen(
|
||||
widget.data, widget._updateNotifier, widget._updateFinishNotifier)
|
||||
(cb) => HomeGradesSubjectScreen(widget.data, widget._updateNotifier,
|
||||
widget._updateFinishNotifier, cb),
|
||||
], subPageActive, subPageBack, pageIndex: 0);
|
||||
case HomePage.timetable:
|
||||
return PageWithSubPages([
|
||||
|
||||
Reference in New Issue
Block a user