diff --git a/lib/ui/routes/subject_edit_route.dart b/lib/ui/routes/subject_edit_route.dart index cb654504..781960e2 100644 --- a/lib/ui/routes/subject_edit_route.dart +++ b/lib/ui/routes/subject_edit_route.dart @@ -31,18 +31,10 @@ class SubjectEditRoute extends StatefulWidget { State createState() => _SubjectEditRouteState(); } -class _SubjectEditRouteState extends State { - double fabRotation = 0; - +class _SubjectEditRouteState extends SpinningFabPage { @override void initState() { super.initState(); - Future.delayed(const Duration(milliseconds: 500)).then((_) { - if (!mounted) return; - setState(() { - fabRotation += 0.5; - }); - }); if (widget.creationType == CreationType.add && Manager.years.isNotEmpty && getCurrentYear(allowSetup: false).termTemplate.isNotEmpty) { WidgetsBinding.instance.addPostFrameCallback((_) { diff --git a/lib/ui/routes/subject_route.dart b/lib/ui/routes/subject_route.dart index d59e2b99..923bd788 100644 --- a/lib/ui/routes/subject_route.dart +++ b/lib/ui/routes/subject_route.dart @@ -37,21 +37,9 @@ class SubjectRoute extends StatefulWidget { State createState() => _SubjectRouteState(); } -class _SubjectRouteState extends State { - double fabRotation = 0; +class _SubjectRouteState extends SpinningFabPage { final ScrollController scrollController = ScrollController(); - @override - void initState() { - super.initState(); - Future.delayed(const Duration(milliseconds: 500)).then((_) { - if (!mounted) return; - setState(() { - fabRotation += 0.5; - }); - }); - } - void rebuild() { setState(() {}); } diff --git a/lib/ui/routes/year_route.dart b/lib/ui/routes/year_route.dart index ad9899e9..89c66a21 100644 --- a/lib/ui/routes/year_route.dart +++ b/lib/ui/routes/year_route.dart @@ -21,9 +21,8 @@ class YearRoute extends StatefulWidget { State createState() => _YearRouteState(); } -class _YearRouteState extends State { +class _YearRouteState extends SpinningFabPage { final nameController = TextEditingController(); - double fabRotation = 0; @override void initState() { @@ -31,12 +30,6 @@ class _YearRouteState extends State { for (final Year year in Manager.years) { year.calculate(); } - Future.delayed(const Duration(milliseconds: 500)).then((_) { - if (!mounted) return; - setState(() { - fabRotation += 0.5; - }); - }); } @override diff --git a/lib/ui/widgets/misc_widgets.dart b/lib/ui/widgets/misc_widgets.dart index 31dc75e9..76490fa2 100644 --- a/lib/ui/widgets/misc_widgets.dart +++ b/lib/ui/widgets/misc_widgets.dart @@ -244,3 +244,18 @@ class _MeasuredWidgetContent extends HookWidget { return child; } } + +abstract class SpinningFabPage extends State { + double fabRotation = 0; + + @override + void initState() { + super.initState(); + Future.delayed(const Duration(milliseconds: 500)).then((_) { + if (!mounted) return; + setState(() { + fabRotation += 0.5; + }); + }); + } +}