feat: autorefresh
Build Android APK (split per ABI) / build-apk (push) Waiting to run
Build & Deploy iOS to TestFlight / build-and-deploy (push) Waiting to run

This commit is contained in:
efrilm
2026-10-27 17:51:26 +07:00
parent e7c77051ab
commit a2f3af27b1
6 changed files with 102 additions and 11 deletions
@@ -50,6 +50,9 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
late Animation<Offset> _slideAnimation;
final ScrollController _scrollController = ScrollController();
TabsRouter? _tabsRouter;
bool _isActiveTab = true;
// Filter state
final List<String> filterOptions = ['All', 'Pending', 'Completed'];
@@ -80,8 +83,33 @@ class _OrderPageState extends State<OrderPage> with TickerProviderStateMixin {
_slideController.forward();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
final tabsRouter = AutoTabsRouter.of(context);
if (_tabsRouter != tabsRouter) {
_tabsRouter?.removeListener(_onTabChanged);
_tabsRouter = tabsRouter..addListener(_onTabChanged);
}
}
// Refresh setiap kali tab Order dibuka lagi dari bottom nav
void _onTabChanged() {
final isActiveTab = _tabsRouter?.current.name == OrderRoute.name;
if (isActiveTab && !_isActiveTab) {
context.read<OrderLoaderBloc>()
..add(OrderLoaderEvent.fetched(isRefresh: true))
..add(const OrderLoaderEvent.summaryFetched());
}
_isActiveTab = isActiveTab;
}
@override
void dispose() {
_tabsRouter?.removeListener(_onTabChanged);
_fadeController.dispose();
_slideController.dispose();
super.dispose();