2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00

Separate onBuild and refresh callbacks

This commit is contained in:
Oliver Walters 2020-04-15 12:47:17 +10:00
parent 90a39ae3de
commit 93630ea910
5 changed files with 35 additions and 15 deletions

View File

@ -41,9 +41,11 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
List<InvenTreePart> _parts = List<InvenTreePart>();
/*
* Request data from the server
*/
@override
Future<void> onBuild(BuildContext context) async {
refresh();
}
@override
Future<void> request(BuildContext context) async {

View File

@ -2,6 +2,7 @@
import 'package:InvenTree/api.dart';
import 'package:InvenTree/inventree/company.dart';
import 'package:InvenTree/widget/drawer.dart';
import 'package:InvenTree/widget/refreshable_state.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@ -18,10 +19,18 @@ class CompanyDetailWidget extends StatefulWidget {
}
class _CompanyDetailState extends State<CompanyDetailWidget> {
class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
final InvenTreeCompany company;
@override
String getAppBarTitle(BuildContext context) { return "Company"; }
@override
Future<void> request(BuildContext context) async {
await company.reload(context);
}
_CompanyDetailState(this.company) {
// TODO
}
@ -122,17 +131,11 @@ class _CompanyDetailState extends State<CompanyDetailWidget> {
}
@override
Widget build(BuildContext context) {
Widget getBody(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("${company.name}"),
),
drawer: new InvenTreeDrawer(context),
body: Center(
child: ListView(
children: _companyTiles(),
)
return Center(
child: ListView(
children: _companyTiles(),
)
);
}

View File

@ -46,6 +46,11 @@ class _CompanyListState extends RefreshableState<CompanyListWidget> {
_CompanyListState(this._title, this._filters) {}
@override
Future<void> onBuild(BuildContext context) async {
refresh();
}
@override
Future<void> request(BuildContext context) async {

View File

@ -46,6 +46,11 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
List<InvenTreeStockItem> _items = List<InvenTreeStockItem>();
@override
Future<void> onBuild(BuildContext context) async {
refresh();
}
@override
Future<void> request(BuildContext context) async {

View File

@ -15,7 +15,12 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) => request(context));
WidgetsBinding.instance.addPostFrameCallback((_) => onBuild(context));
}
// Function called after the widget is first build
Future<void> onBuild(BuildContext context) async {
return;
}
// Function to request data for this page