Data refreshing on new table creation
This commit is contained in:
parent
4a5039cb19
commit
2c1ad486df
2 changed files with 34 additions and 19 deletions
|
|
@ -16,6 +16,10 @@ enum PageType {
|
||||||
settings,
|
settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mixin HomePageStateRef {
|
||||||
|
void refreshData();
|
||||||
|
}
|
||||||
|
|
||||||
class HomePage extends StatefulWidget {
|
class HomePage extends StatefulWidget {
|
||||||
const HomePage({super.key});
|
const HomePage({super.key});
|
||||||
|
|
||||||
|
|
@ -23,7 +27,7 @@ class HomePage extends StatefulWidget {
|
||||||
State<StatefulWidget> createState() => _HomePageState();
|
State<StatefulWidget> createState() => _HomePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _HomePageState extends State<HomePage> {
|
class _HomePageState extends State<HomePage> with HomePageStateRef {
|
||||||
final apiClient = Get.find<ApiClient>();
|
final apiClient = Get.find<ApiClient>();
|
||||||
TablesListModel tables = TablesListModel([]);
|
TablesListModel tables = TablesListModel([]);
|
||||||
|
|
||||||
|
|
@ -34,7 +38,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
_refreshData();
|
refreshData();
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentPage = PageType.none;
|
var currentPage = PageType.none;
|
||||||
|
|
@ -56,7 +60,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
onPressed: _refreshData,
|
onPressed: refreshData,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
@ -136,7 +140,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
child: Builder(builder: (context) {
|
child: Builder(builder: (context) {
|
||||||
switch (currentPage) {
|
switch (currentPage) {
|
||||||
case PageType.tables:
|
case PageType.tables:
|
||||||
return TablesListPanel(tables: tables);
|
return TablesListPanel(parent: this, tables: tables);
|
||||||
case PageType.users:
|
case PageType.users:
|
||||||
return const UsersListPanel();
|
return const UsersListPanel();
|
||||||
case PageType.settings:
|
case PageType.settings:
|
||||||
|
|
@ -152,7 +156,8 @@ class _HomePageState extends State<HomePage> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _refreshData() {
|
@override
|
||||||
|
void refreshData() {
|
||||||
apiClient.tablesList().then(
|
apiClient.tablesList().then(
|
||||||
(value) => value.unfold(
|
(value) => value.unfold(
|
||||||
(tables) {
|
(tables) {
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,17 @@ import 'package:tuuli_app/api/api_client.dart';
|
||||||
import 'package:tuuli_app/api/model/tables_list_model.dart';
|
import 'package:tuuli_app/api/model/tables_list_model.dart';
|
||||||
import 'package:tuuli_app/c.dart';
|
import 'package:tuuli_app/c.dart';
|
||||||
import 'package:tuuli_app/pages/bottomsheers/edit_table_bottomsheet.dart';
|
import 'package:tuuli_app/pages/bottomsheers/edit_table_bottomsheet.dart';
|
||||||
|
import 'package:tuuli_app/pages/home_page.dart';
|
||||||
|
|
||||||
class TablesListPanel extends StatefulWidget {
|
class TablesListPanel extends StatefulWidget {
|
||||||
final TablesListModel tables;
|
final TablesListModel tables;
|
||||||
|
final HomePageStateRef parent;
|
||||||
|
|
||||||
const TablesListPanel({super.key, required this.tables});
|
const TablesListPanel({
|
||||||
|
super.key,
|
||||||
|
required this.tables,
|
||||||
|
required this.parent,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<StatefulWidget> createState() => _TablesListPanelState();
|
State<StatefulWidget> createState() => _TablesListPanelState();
|
||||||
|
|
@ -157,7 +163,8 @@ class _TablesListPanelState extends State<TablesListPanel> {
|
||||||
|
|
||||||
await apiClient
|
await apiClient
|
||||||
.createTable(result.tableName, result.fields)
|
.createTable(result.tableName, result.fields)
|
||||||
.then((e) => e.unfold((_) {
|
.then((e) => WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
e.unfold((_) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Success",
|
"Success",
|
||||||
"Table created",
|
"Table created",
|
||||||
|
|
@ -170,7 +177,10 @@ class _TablesListPanelState extends State<TablesListPanel> {
|
||||||
textConfirm: "OK",
|
textConfirm: "OK",
|
||||||
onConfirm: () => Get.back(),
|
onConfirm: () => Get.back(),
|
||||||
);
|
);
|
||||||
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
widget.parent.refreshData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _openTable(TableModel table) async {
|
void _openTable(TableModel table) async {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue