1
0
forked from firka/firka
Files
firka/firka_common/lib/ui/shared/delayed_spinner.dart
Armand 32936c2aa5 firka: extract firka_common package with shared widgets (Isar kept separate)
- Create firka_common package with core helpers (debug, json, icon), theme,
  and shared widgets (FirkaCard, FirkaShadow, GradeWidget, GradeSmallCard,
  ClassIconWidget, FirkaIconWidget, DelayedSpinnerWidget, CounterDigitWidget)
- Keep Isar models (GenericCacheModel, TimetableCacheModel, HomeworkCacheModel,
  DatedCacheEntry, util) in firka and firka_wear - not moved to firka_common
- Update firka and firka_wear to depend on firka_common for shared UI only
- Add configurable roundGrade thresholds for firka settings
- Add package param to FirkaIconWidget for app asset paths
2026-03-03 15:33:11 +01:00

49 lines
930 B
Dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:firka_common/ui/theme/style.dart';
class DelayedSpinnerWidget extends StatefulWidget {
final Color? color;
const DelayedSpinnerWidget({super.key, this.color});
@override
State<DelayedSpinnerWidget> createState() => _DelayedSpinner();
}
class _DelayedSpinner extends State<DelayedSpinnerWidget> {
Timer? timer;
bool showSpinner = false;
@override
void initState() {
super.initState();
timer = Timer(const Duration(milliseconds: 50), () {
setState(() {
showSpinner = true;
});
});
}
@override
Widget build(BuildContext context) {
if (showSpinner) {
return CircularProgressIndicator(
color: widget.color ?? appStyle.colors.accent,
);
} else {
return const SizedBox();
}
}
@override
void dispose() {
super.dispose();
timer?.cancel();
}
}