Initial commit
This commit is contained in:
45
lib/widgets/schedule_widget.dart
Normal file
45
lib/widgets/schedule_widget.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
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]);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user