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 createState() => _ScheduleWidgetState(); } class _ScheduleWidgetState extends State { bool _loading = true; List _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]); }, ); } }