Data refreshing on new table creation

This commit is contained in:
Andrew 2023-04-11 02:56:51 +07:00
parent 4a5039cb19
commit 2c1ad486df
2 changed files with 34 additions and 19 deletions

View file

@ -16,6 +16,10 @@ enum PageType {
settings,
}
mixin HomePageStateRef {
void refreshData();
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@ -23,7 +27,7 @@ class HomePage extends StatefulWidget {
State<StatefulWidget> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
class _HomePageState extends State<HomePage> with HomePageStateRef {
final apiClient = Get.find<ApiClient>();
TablesListModel tables = TablesListModel([]);
@ -34,7 +38,7 @@ class _HomePageState extends State<HomePage> {
void initState() {
super.initState();
_refreshData();
refreshData();
}
var currentPage = PageType.none;
@ -56,7 +60,7 @@ class _HomePageState extends State<HomePage> {
),
IconButton(
icon: const Icon(Icons.refresh),
onPressed: _refreshData,
onPressed: refreshData,
),
],
);
@ -136,7 +140,7 @@ class _HomePageState extends State<HomePage> {
child: Builder(builder: (context) {
switch (currentPage) {
case PageType.tables:
return TablesListPanel(tables: tables);
return TablesListPanel(parent: this, tables: tables);
case PageType.users:
return const UsersListPanel();
case PageType.settings:
@ -152,7 +156,8 @@ class _HomePageState extends State<HomePage> {
);
}
void _refreshData() {
@override
void refreshData() {
apiClient.tablesList().then(
(value) => value.unfold(
(tables) {