Skip to content

Commit 7a77a0c

Browse files
authored
Merge pull request #35 from woosignal/master
v6.0.0 updates
2 parents 249f987 + b2abd22 commit 7a77a0c

File tree

127 files changed

+2231
-2123
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+2231
-2123
lines changed

LabelStoreMax/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## [6.0.0] - 2022-05-19
2+
3+
* Migrate to Nylo 3.x
4+
* Null safety
5+
* Min dart version 2.17
6+
* Refactor product detail screen
7+
* Pubspec.yaml dependency updates
8+
19
## [5.8.0] - 2022-03-29
210

311
* Add phone number to customer input form

LabelStoreMax/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# WooCommerce App: Label StoreMax
66

7-
### Label StoreMax - v5.8.0
7+
### Label StoreMax - v6.0.0
88

99

1010
[Official WooSignal WooCommerce App](https://woosignal.com)

LabelStoreMax/ios/Runner/Info.plist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,7 @@
6161
</array>
6262
<key>UIViewControllerBasedStatusBarAppearance</key>
6363
<false/>
64+
<key>CADisableMinimumFrameDurationOnPhone</key>
65+
<true/>
6466
</dict>
6567
</plist>

LabelStoreMax/lib/app/controllers/controller.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// distributed under the License is distributed on an "AS IS" BASIS,
99
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1010

11-
import 'package:nylo_support/controllers/controller.dart';
11+
import 'package:nylo_framework/nylo_framework.dart';
1212

1313
/// Base Controller for the Nylo
1414
/// See more on controllers here - https://nylo.dev/docs/2.x/controllers

LabelStoreMax/lib/app/controllers/customer_orders_loader_controller.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
// Unless required by applicable law or agreed to in writing, software
88
// distributed under the License is distributed on an "AS IS" BASIS,
99
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10-
11-
import 'package:flutter/cupertino.dart';
1210
import 'package:flutter_app/app/controllers/woosignal_api_loader_controller.dart';
1311
import 'package:woosignal/models/response/order.dart';
1412

@@ -17,9 +15,9 @@ class CustomerOrdersLoaderController
1715
CustomerOrdersLoaderController();
1816

1917
Future<void> loadOrders(
20-
{@required bool Function(bool hasProducts) hasResults,
21-
@required void Function() didFinish,
22-
@required String userId}) async {
18+
{required bool Function(bool hasProducts) hasResults,
19+
required void Function() didFinish,
20+
required String userId}) async {
2321
await load(
2422
hasResults: hasResults,
2523
didFinish: didFinish,

LabelStoreMax/lib/app/controllers/leave_review_controller.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@ import 'controller.dart';
1212
import 'package:flutter/widgets.dart';
1313

1414
class LeaveReviewController extends Controller {
15-
1615
@override
1716
construct(BuildContext context) {
1817
super.construct(context);
19-
2018
}
21-
}
19+
}

LabelStoreMax/lib/app/controllers/product_category_search_loader_controller.dart

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
// distributed under the License is distributed on an "AS IS" BASIS,
99
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1010

11-
import 'package:flutter/cupertino.dart';
1211
import 'package:flutter_app/app/controllers/woosignal_api_loader_controller.dart';
1312
import 'package:woosignal/models/response/product_category.dart';
1413
import 'package:woosignal/models/response/products.dart';
@@ -18,19 +17,19 @@ class ProductCategorySearchLoaderController
1817
ProductCategorySearchLoaderController();
1918

2019
Future<void> loadProducts(
21-
{@required bool Function(bool hasProducts) hasResults,
22-
@required void Function() didFinish,
23-
@required ProductCategory productCategory}) async {
20+
{required bool Function(bool hasProducts) hasResults,
21+
required void Function() didFinish,
22+
required ProductCategory? productCategory}) async {
2423
await load(
25-
hasResults: hasResults,
26-
didFinish: didFinish,
27-
apiQuery: (api) => api.getProducts(
28-
perPage: 50,
29-
category: productCategory.id.toString(),
30-
page: page,
31-
status: "publish",
32-
stockStatus: "instock",
33-
),
24+
hasResults: hasResults,
25+
didFinish: didFinish,
26+
apiQuery: (api) => api.getProducts(
27+
perPage: 50,
28+
category: productCategory!.id.toString(),
29+
page: page,
30+
status: "publish",
31+
stockStatus: "instock",
32+
),
3433
);
3534
}
3635
}

LabelStoreMax/lib/app/controllers/product_detail_controller.dart

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,44 +16,46 @@ import 'package:flutter_app/bootstrap/helpers.dart';
1616
import 'package:nylo_framework/nylo_framework.dart';
1717
import 'package:woosignal/models/response/products.dart';
1818
import 'package:woosignal/models/response/product_variation.dart'
19-
as ws_product_variation;
19+
as ws_product_variation;
2020

2121
import 'controller.dart';
2222

2323
class ProductDetailController extends Controller {
2424
int quantity = 1;
25-
Product product;
25+
Product? product;
2626

2727
@override
2828
construct(BuildContext context) {
2929
super.construct(context);
30-
product = data() as Product;
30+
product = data() as Product?;
3131
}
3232

3333
viewExternalProduct() {
34-
if (product.externalUrl != null && product.externalUrl.isNotEmpty) {
35-
openBrowserTab(url: product.externalUrl);
34+
if (product!.externalUrl != null && product!.externalUrl!.isNotEmpty) {
35+
openBrowserTab(url: product!.externalUrl!);
3636
}
3737
}
3838

39-
itemAddToCart({@required CartLineItem cartLineItem, @required Function onSuccess}) async {
39+
itemAddToCart(
40+
{required CartLineItem cartLineItem, required Function onSuccess}) async {
4041
await Cart.getInstance.addToCart(cartLineItem: cartLineItem);
41-
showStatusAlert(context,
42-
title: trans("Success"),
43-
subtitle: trans("Added to cart"),
44-
duration: 1,
45-
icon: Icons.add_shopping_cart,
42+
showStatusAlert(
43+
context,
44+
title: trans("Success"),
45+
subtitle: trans("Added to cart"),
46+
duration: 1,
47+
icon: Icons.add_shopping_cart,
4648
);
4749
onSuccess();
4850
}
4951

50-
addQuantityTapped({@required Function onSuccess}) {
51-
if (product.manageStock != null && product.manageStock == true) {
52-
if (quantity >= product.stockQuantity) {
53-
showToastNotification(context,
52+
addQuantityTapped({required Function onSuccess}) {
53+
if (product!.manageStock != null && product!.manageStock == true) {
54+
if (quantity >= product!.stockQuantity!) {
55+
showToastNotification(context!,
5456
title: trans("Maximum quantity reached"),
5557
description:
56-
"${trans("Sorry, only")} ${product.stockQuantity} ${trans("left")}",
58+
"${trans("Sorry, only")} ${product!.stockQuantity} ${trans("left")}",
5759
style: ToastNotificationStyleType.INFO);
5860
return;
5961
}
@@ -64,14 +66,16 @@ class ProductDetailController extends Controller {
6466
}
6567
}
6668

67-
removeQuantityTapped({@required Function onSuccess}) {
69+
removeQuantityTapped({required Function onSuccess}) {
6870
if ((quantity - 1) >= 1) {
6971
quantity--;
7072
onSuccess();
7173
}
7274
}
7375

74-
toggleWishList({@required Function onSuccess, @required WishlistAction wishlistAction}) async {
76+
toggleWishList(
77+
{required Function onSuccess,
78+
required WishlistAction wishlistAction}) async {
7579
String subtitleMsg;
7680
if (wishlistAction == WishlistAction.remove) {
7781
await removeWishlistProduct(product: product);
@@ -80,7 +84,8 @@ class ProductDetailController extends Controller {
8084
await saveWishlistProduct(product: product);
8185
subtitleMsg = trans("This product has been added to your wishlist");
8286
}
83-
showStatusAlert(context,
87+
showStatusAlert(
88+
context,
8489
title: trans("Success"),
8590
subtitle: subtitleMsg,
8691
icon: Icons.favorite,
@@ -90,18 +95,18 @@ class ProductDetailController extends Controller {
9095
onSuccess();
9196
}
9297

93-
ws_product_variation.ProductVariation findProductVariation(
94-
{@required Map<int, dynamic> tmpAttributeObj,
95-
@required List<ws_product_variation.ProductVariation> productVariations}) {
96-
ws_product_variation.ProductVariation tmpProductVariation;
98+
ws_product_variation.ProductVariation? findProductVariation(
99+
{required Map<int, dynamic> tmpAttributeObj,
100+
required List<ws_product_variation.ProductVariation> productVariations}) {
101+
ws_product_variation.ProductVariation? tmpProductVariation;
97102

98-
Map<String, dynamic> tmpSelectedObj = {};
103+
Map<String?, dynamic> tmpSelectedObj = {};
99104
for (var attributeObj in tmpAttributeObj.values) {
100105
tmpSelectedObj[attributeObj["name"]] = attributeObj["value"];
101106
}
102107

103108
for (var productVariation in productVariations) {
104-
Map<String, dynamic> tmpVariations = {};
109+
Map<String?, dynamic> tmpVariations = {};
105110

106111
for (var attr in productVariation.attributes) {
107112
tmpVariations[attr.name] = attr.option;
@@ -114,4 +119,4 @@ class ProductDetailController extends Controller {
114119

115120
return tmpProductVariation;
116121
}
117-
}
122+
}

LabelStoreMax/lib/app/controllers/product_loader_controller.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,16 @@
88
// distributed under the License is distributed on an "AS IS" BASIS,
99
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1010

11-
import 'package:flutter/cupertino.dart';
1211
import 'package:flutter_app/app/controllers/woosignal_api_loader_controller.dart';
1312
import 'package:woosignal/models/response/products.dart';
1413

1514
class ProductLoaderController extends WooSignalApiLoaderController<Product> {
1615
ProductLoaderController();
1716

18-
Future<void> loadProducts({
19-
@required bool Function(bool hasProducts) hasResults,
20-
@required void Function() didFinish,
21-
List<int> productIds = const []
22-
}) async {
17+
Future<void> loadProducts(
18+
{required bool Function(bool hasProducts) hasResults,
19+
required void Function() didFinish,
20+
List<int>? productIds = const []}) async {
2321
await load(
2422
hasResults: hasResults,
2523
didFinish: didFinish,

LabelStoreMax/lib/app/controllers/product_reviews_controller.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@ import 'controller.dart';
1212
import 'package:flutter/widgets.dart';
1313

1414
class ProductReviewsController extends Controller {
15-
1615
@override
1716
construct(BuildContext context) {
1817
super.construct(context);
19-
2018
}
21-
22-
}
19+
}

0 commit comments

Comments
 (0)