Files
reverse_nn/lib/widgets/schedule_widget.dart
2024-12-16 00:38:18 +03:00

45 lines
1.5 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:reverse_nn/enums/schedule.dart';
import 'package:reverse_nn/utils/scheduler.dart';
import 'package:reverse_nn/widgets/loader_widget.dart';
import 'package:reverse_nn/widgets/schedule_element_widget.dart';
class ScheduleWidget extends StatefulWidget {
const ScheduleWidget({super.key});
@override
State<ScheduleWidget> createState() => _ScheduleWidgetState();
}
class _ScheduleWidgetState extends State<ScheduleWidget> {
bool _loading = true;
List<ScheduleElement> _schedule = List.empty();
void loadScheduleData() async {
setState(() { _loading = true; });
setState(() { _schedule = Scheduler.getScheduleList(); });
setState(() { _loading = false; });
}
@override
Widget build(BuildContext context) {
loadScheduleData();
Future.delayed(const Duration(seconds: 15), () => loadScheduleData());
return _loading && _schedule.isNotEmpty ? const LoaderWidget() : ListView.separated(
scrollDirection: Axis.vertical,
shrinkWrap: true,
padding: const EdgeInsets.all(10),
separatorBuilder: (BuildContext context, int index) {
return SizedBox(height: index == 0 ? 10 : 4);
},
itemCount: _schedule.length,
itemBuilder: (ctx, i) {
if(i == 0) { return CurrentReversWidget(scheduleElement: _schedule[i]); }
return ScheduledReversWidget(scheduleElement: _schedule[i]);
},
);
}
}