Currency formatting
This commit is contained in:
parent
c1bce6210f
commit
f82a98f92a
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:invoiceninja/utils/formatting.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja/ui/app/actions_menu_button.dart';
|
||||
|
|
@ -42,7 +43,7 @@ class _ProductEditState extends State<ProductEdit> {
|
|||
var product = widget.viewModel.product;
|
||||
_productKeyController.text = product.productKey;
|
||||
_notesController.text = product.notes;
|
||||
_costController.text = product.cost?.toStringAsFixed(2) ?? '';
|
||||
_costController.text = formatNumber(product.cost, widget.viewModel.state, formatNumberType: FormatNumberType.input);
|
||||
|
||||
_controllers.forEach((controller) => controller.addListener(_onChanged));
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class ProductEditScreen extends StatelessWidget {
|
|||
}
|
||||
|
||||
class ProductEditVM {
|
||||
final AppState state;
|
||||
final ProductEntity product;
|
||||
final Function(ProductEntity) onChanged;
|
||||
final Function(BuildContext) onSavePressed;
|
||||
|
|
@ -41,6 +42,7 @@ class ProductEditVM {
|
|||
final bool isDirty;
|
||||
|
||||
ProductEditVM({
|
||||
@required this.state,
|
||||
@required this.product,
|
||||
@required this.onChanged,
|
||||
@required this.onSavePressed,
|
||||
|
|
@ -54,6 +56,7 @@ class ProductEditVM {
|
|||
final product = store.state.productUIState.selected;
|
||||
|
||||
return ProductEditVM(
|
||||
state: store.state,
|
||||
isLoading: store.state.isLoading,
|
||||
isDirty: product.isNew(),
|
||||
product: product,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import 'package:invoiceninja/redux/app/app_state.dart';
|
||||
import 'package:invoiceninja/utils/formatting.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja/data/models/models.dart';
|
||||
|
|
@ -6,6 +8,7 @@ import 'package:invoiceninja/ui/app/dismissible_entity.dart';
|
|||
import '../app/entity_state_label.dart';
|
||||
|
||||
class ProductItem extends StatelessWidget {
|
||||
final AppState state;
|
||||
final DismissDirectionCallback onDismissed;
|
||||
final GestureTapCallback onTap;
|
||||
//final ValueChanged<bool> onCheckboxChanged;
|
||||
|
|
@ -14,6 +17,7 @@ class ProductItem extends StatelessWidget {
|
|||
static final productItemKey = (int id) => Key('__product_item_${id}__');
|
||||
|
||||
ProductItem({
|
||||
@required this.state,
|
||||
@required this.onDismissed,
|
||||
@required this.onTap,
|
||||
//@required this.onCheckboxChanged,
|
||||
|
|
@ -65,7 +69,7 @@ class ProductItem extends StatelessWidget {
|
|||
EntityStateLabel(product),
|
||||
],
|
||||
),
|
||||
trailing: Text(product.cost.toStringAsFixed(2),
|
||||
trailing: Text(formatNumber(product.cost, state),
|
||||
style: Theme.of(context).textTheme.title),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class ProductList extends StatelessWidget {
|
|||
var product = viewModel.productMap[productId];
|
||||
return Column(children: <Widget>[
|
||||
ProductItem(
|
||||
state: viewModel.state,
|
||||
product: product,
|
||||
onDismissed: (DismissDirection direction) =>
|
||||
viewModel.onDismissed(context, product, direction),
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ class ProductListBuilder extends StatelessWidget {
|
|||
}
|
||||
|
||||
class ProductListVM {
|
||||
final AppState state;
|
||||
final List<int> productList;
|
||||
final BuiltMap<int, ProductEntity> productMap;
|
||||
final bool isLoading;
|
||||
|
|
@ -40,6 +41,7 @@ class ProductListVM {
|
|||
final Function(BuildContext) onRefreshed;
|
||||
|
||||
ProductListVM({
|
||||
@required this.state,
|
||||
@required this.productList,
|
||||
@required this.productMap,
|
||||
@required this.isLoading,
|
||||
|
|
@ -63,6 +65,7 @@ class ProductListVM {
|
|||
}
|
||||
|
||||
return ProductListVM(
|
||||
state: store.state,
|
||||
productList: memoizedProductList(store.state.productState.map, store.state.productState.list, store.state.productListState),
|
||||
productMap: store.state.productState.map,
|
||||
isLoading: store.state.isLoading,
|
||||
|
|
|
|||
Loading…
Reference in New Issue