From 97313371c3a5c35246f181a69135236c8b1d0450 Mon Sep 17 00:00:00 2001 From: efrilm Date: Thu, 13 Nov 2025 12:45:09 +0700 Subject: [PATCH] fix table --- .../pages/main/pages/table/table_page.dart | 40 ++++++++++++++++++- lib/presentation/router/app_router.gr.dart | 2 +- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/lib/presentation/pages/main/pages/table/table_page.dart b/lib/presentation/pages/main/pages/table/table_page.dart index 66d1930..6ecae6b 100644 --- a/lib/presentation/pages/main/pages/table/table_page.dart +++ b/lib/presentation/pages/main/pages/table/table_page.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -35,13 +37,47 @@ class TablePage extends StatefulWidget implements AutoRouteWrapper { ); } -class _TablePageState extends State { +class _TablePageState extends State + with AutomaticKeepAliveClientMixin { t.Table? draggingTable; - Offset? tapPosition; + bool _isFirstBuild = true; + + @override + bool get wantKeepAlive => true; + + @override + void initState() { + super.initState(); + log('🔥 TablePage initState'); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + + // Cek apakah tab ini aktif + final route = ModalRoute.of(context); + if (route != null && route.isCurrent) { + if (!_isFirstBuild) { + log('🔥 TablePage visible again, refresh'); + _refreshTable(); + } + _isFirstBuild = false; + } + } + + void _refreshTable() { + if (mounted) { + context.read().add( + const TableLoaderEvent.fetched(isRefresh: true), + ); + } + } @override Widget build(BuildContext context) { + super.build(context); final double mapWidth = context.deviceWidth * 2; final double mapHeight = context.deviceHeight * 1.5; diff --git a/lib/presentation/router/app_router.gr.dart b/lib/presentation/router/app_router.gr.dart index 2ff9b5a..5d08400 100644 --- a/lib/presentation/router/app_router.gr.dart +++ b/lib/presentation/router/app_router.gr.dart @@ -576,7 +576,7 @@ class TableRoute extends _i22.PageRouteInfo { static _i22.PageInfo page = _i22.PageInfo( name, builder: (data) { - return _i22.WrappedRoute(child: const _i19.TablePage()); + return const _i19.TablePage(); }, ); }