fixed separated widgets

This commit is contained in:
Kima 2024-01-25 18:56:01 +01:00
parent c6633be301
commit 4b0726f939
2 changed files with 22 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import 'package:filcnaplo_kreta_api/models/message.dart';
import 'package:filcnaplo_mobile_ui/common/panel/panel.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/absence/absence_viewable.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/absence_group/absence_group_tile.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart';
import 'package:flutter/material.dart';
import 'package:animated_list_plus/animated_list_plus.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/lesson/changed_lesson_tile.dart';
@ -148,6 +149,10 @@ List<Widget> sortDateWidgets(
item.widget,
index,
len: elements.length,
isAfterSeparated: index > 0 &&
(elements[index - 1].widget is CertificationCard),
isBeforeSeparated: (index < elements.length - 1) &&
(elements[index + 1].widget is CertificationCard),
),
items: elements,
),

View File

@ -25,6 +25,7 @@ import 'package:filcnaplo_kreta_api/providers/homework_provider.dart';
import 'package:filcnaplo_kreta_api/providers/message_provider.dart';
import 'package:filcnaplo_kreta_api/providers/note_provider.dart';
import 'package:filcnaplo_kreta_api/providers/timetable_provider.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart';
import 'package:filcnaplo_mobile_ui/common/widgets/note/note_viewable.dart';
import 'package:refilc_plus/providers/premium_provider.dart';
import 'package:refilc_plus/ui/mobile/premium/premium_inline.dart';
@ -189,6 +190,8 @@ Widget filterItemBuilder(
Widget item,
int index, {
int len = 0,
bool isAfterSeparated = false,
bool isBeforeSeparated = false,
}) {
if (item.key == const Key("\$premium")) {
return Provider.of<PremiumProvider>(context, listen: false).hasPremium ||
@ -210,6 +213,8 @@ Widget filterItemBuilder(
child: item,
);
bool separated = item is CertificationCard;
return item is Panel
// Re-add & animate shadow
? AnimatedBuilder(
@ -244,7 +249,10 @@ Widget filterItemBuilder(
})
: (len > 0
? Padding(
padding: EdgeInsets.only(top: index == 0 ? 0.0 : 6.0),
padding: EdgeInsets.only(
top: index == 0
? 0.0
: (separated || isAfterSeparated ? 9.0 : 6.0)),
child: Container(
padding: item is NoteViewable
? const EdgeInsets.symmetric(vertical: 8.0)
@ -252,12 +260,16 @@ Widget filterItemBuilder(
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.background,
borderRadius: BorderRadius.vertical(
top: index == 0
top: separated || isAfterSeparated
? const Radius.circular(16.0)
: const Radius.circular(8.0),
bottom: index + 1 == len
: (index == 0
? const Radius.circular(16.0)
: const Radius.circular(8.0),
: const Radius.circular(8.0)),
bottom: separated || isBeforeSeparated
? const Radius.circular(16.0)
: (index + 1 == len
? const Radius.circular(16.0)
: const Radius.circular(8.0)),
),
),
child: wrappedItem,