mirror of
				https://github.com/inventree/inventree-app.git
				synced 2025-10-31 05:15:42 +00:00 
			
		
		
		
	the stock detail view is now a refreshable state
This commit is contained in:
		| @@ -4,12 +4,15 @@ import 'package:InvenTree/inventree/stock.dart'; | |||||||
| import 'package:InvenTree/inventree/part.dart'; | import 'package:InvenTree/inventree/part.dart'; | ||||||
| import 'package:InvenTree/widget/location_display.dart'; | import 'package:InvenTree/widget/location_display.dart'; | ||||||
| import 'package:InvenTree/widget/part_detail.dart'; | import 'package:InvenTree/widget/part_detail.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:InvenTree/api.dart'; | import 'package:InvenTree/api.dart'; | ||||||
|  |  | ||||||
| import 'package:InvenTree/widget/drawer.dart'; | import 'package:InvenTree/widget/drawer.dart'; | ||||||
|  | import 'package:InvenTree/widget/refreshable_state.dart'; | ||||||
|  |  | ||||||
| import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||||
| import 'package:font_awesome_flutter/font_awesome_flutter.dart'; | import 'package:font_awesome_flutter/font_awesome_flutter.dart'; | ||||||
| import 'package:flutter_speed_dial/flutter_speed_dial.dart'; | import 'package:flutter_speed_dial/flutter_speed_dial.dart'; | ||||||
| @@ -25,7 +28,10 @@ class StockDetailWidget extends StatefulWidget { | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| class _StockItemDisplayState extends State<StockDetailWidget> { | class _StockItemDisplayState extends RefreshableState<StockDetailWidget> { | ||||||
|  |  | ||||||
|  |   @override | ||||||
|  |   String app_bar_title = "Stock Item"; | ||||||
|  |  | ||||||
|   final TextEditingController _quantityController = TextEditingController(); |   final TextEditingController _quantityController = TextEditingController(); | ||||||
|   final TextEditingController _notesController = TextEditingController(); |   final TextEditingController _notesController = TextEditingController(); | ||||||
| @@ -42,13 +48,9 @@ class _StockItemDisplayState extends State<StockDetailWidget> { | |||||||
|  |  | ||||||
|   final InvenTreeStockItem item; |   final InvenTreeStockItem item; | ||||||
|  |  | ||||||
|   /** |   @override | ||||||
|    * Function to reload the page data |   Future<void> request(BuildContext context) async { | ||||||
|    */ |  | ||||||
|   Future<void> _refresh() async { |  | ||||||
|  |  | ||||||
|     await item.reload(); |     await item.reload(); | ||||||
|     setState(() {}); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _editStockItem() { |   void _editStockItem() { | ||||||
| @@ -92,7 +94,7 @@ class _StockItemDisplayState extends State<StockDetailWidget> { | |||||||
|     _notesController.clear(); |     _notesController.clear(); | ||||||
|  |  | ||||||
|     // TODO - Handle error cases |     // TODO - Handle error cases | ||||||
|     _refresh(); |     refresh(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _addStockDialog() async { |   void _addStockDialog() async { | ||||||
| @@ -158,7 +160,7 @@ class _StockItemDisplayState extends State<StockDetailWidget> { | |||||||
|  |  | ||||||
|     // TODO - Handle error cases |     // TODO - Handle error cases | ||||||
|  |  | ||||||
|     _refresh(); |     refresh(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _removeStockDialog() { |   void _removeStockDialog() { | ||||||
| @@ -227,7 +229,7 @@ class _StockItemDisplayState extends State<StockDetailWidget> { | |||||||
|  |  | ||||||
|     // TODO - Handle error cases |     // TODO - Handle error cases | ||||||
|  |  | ||||||
|     _refresh(); |     refresh(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _countStockDialog() async { |   void _countStockDialog() async { | ||||||
| @@ -464,26 +466,30 @@ class _StockItemDisplayState extends State<StockDetailWidget> { | |||||||
|     return buttons; |     return buttons; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   @override | ||||||
|  |   Widget getBody(BuildContext context) { | ||||||
|  |     return ListView( | ||||||
|  |       children: stockTiles() | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|  |  | ||||||
|  |     this.context = context; | ||||||
|  |  | ||||||
|     return Scaffold( |     return Scaffold( | ||||||
|       appBar: AppBar( |       appBar: getAppBar(context), | ||||||
|         title: Text("Stock Item"), |       drawer: getDrawer(context), | ||||||
|       ), |  | ||||||
|       drawer: new InvenTreeDrawer(context), |  | ||||||
|       floatingActionButton: SpeedDial( |       floatingActionButton: SpeedDial( | ||||||
|         visible: true, |         visible: true, | ||||||
|         animatedIcon: AnimatedIcons.menu_close, |         animatedIcon: AnimatedIcons.menu_close, | ||||||
|         heroTag: 'stock-item-fab', |         heroTag: 'stock-item-fab', | ||||||
|         children: actionButtons(), |         children: actionButtons(), | ||||||
|       ), |       ), | ||||||
|       body: Center( |       body: RefreshIndicator( | ||||||
|         child: new RefreshIndicator( |         onRefresh: refresh, | ||||||
|           onRefresh: _refresh, |         child: getBody(context) | ||||||
|           child: ListView( |  | ||||||
|             children: stockTiles(), |  | ||||||
|           ) |  | ||||||
|         ) |  | ||||||
|       ) |       ) | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user