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>(); List<InvenTreePart> _parts = List<InvenTreePart>();
/* @override
* Request data from the server Future<void> onBuild(BuildContext context) async {
*/ refresh();
}
@override @override
Future<void> request(BuildContext context) async { Future<void> request(BuildContext context) async {

View File

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

View File

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

View File

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

View File

@ -15,7 +15,12 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
void initState() { void initState() {
super.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 // Function to request data for this page