diff --git a/LabelStoreMax/.env b/LabelStoreMax/.env
index 42971e9..9d131fb 100644
--- a/LabelStoreMax/.env
+++ b/LabelStoreMax/.env
@@ -49,4 +49,6 @@ RAZORPAY_API_KEY=""
# **
PRODUCT_PLACEHOLDER_IMAGE="https://woosignal.com/images/woocommerce-placeholder.png"
-# Sets the default placeholder image for products with no image
\ No newline at end of file
+# Sets the default placeholder image for products with no image
+
+AUTH_USER_KEY="AUTH_USER"
\ No newline at end of file
diff --git a/LabelStoreMax/CHANGELOG.md b/LabelStoreMax/CHANGELOG.md
index 01c8a2f..30c967e 100644
--- a/LabelStoreMax/CHANGELOG.md
+++ b/LabelStoreMax/CHANGELOG.md
@@ -1,3 +1,9 @@
+## [6.6.0] - 2023-05-18
+
+* Nylo v5.0.0 migration
+* Refactor project
+* Flutter v3.10.0 compatibility
+
## [6.5.1] - 2023-03-04
* New translation added.
diff --git a/LabelStoreMax/README.md b/LabelStoreMax/README.md
index 1aa922e..e7aa170 100644
--- a/LabelStoreMax/README.md
+++ b/LabelStoreMax/README.md
@@ -4,7 +4,7 @@
# WooCommerce App: Label StoreMax
-### Label StoreMax - v6.5.1
+### Label StoreMax - v6.6.0
[Official WooSignal WooCommerce App](https://woosignal.com)
@@ -44,7 +44,7 @@ Full documentation this available [here](https://woosignal.com/docs/app/label-st
- Browse products, make orders, customer login (via WordPress)
- Change app name, logo, customize default language, currency + more
- Light and dark mode
-- Stripe, Cash On Delivery, PayPal, RazorPay
+- Stripe, Cash On Delivery, PayPal
- Localized for en, es, pt, it, hi, fr, zh, tr, nl, de
- Orders show as normal in WooCommerce
diff --git a/LabelStoreMax/ios/Runner.xcodeproj/project.pbxproj b/LabelStoreMax/ios/Runner.xcodeproj/project.pbxproj
index 1641b1b..fcc1016 100644
--- a/LabelStoreMax/ios/Runner.xcodeproj/project.pbxproj
+++ b/LabelStoreMax/ios/Runner.xcodeproj/project.pbxproj
@@ -204,6 +204,7 @@
files = (
);
inputPaths = (
+ "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
diff --git a/LabelStoreMax/ios/Runner/Info.plist b/LabelStoreMax/ios/Runner/Info.plist
index 4956d2c..0e62598 100644
--- a/LabelStoreMax/ios/Runner/Info.plist
+++ b/LabelStoreMax/ios/Runner/Info.plist
@@ -2,6 +2,8 @@
+ CADisableMinimumFrameDurationOnPhone
+
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleExecutable
@@ -16,12 +18,8 @@
APPL
CFBundleShortVersionString
$(FLUTTER_BUILD_NAME)
- NSCameraUsageDescription
- You can take photos of your payment details.
CFBundleSignature
????
- MinimumOSVersion
- 13.0
CFBundleURLTypes
@@ -39,11 +37,17 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
+ MinimumOSVersion
+ 13.0
NSAppTransportSecurity
NSAllowsArbitraryLoads
+ NSCameraUsageDescription
+ You can take photos of your payment details.
+ UIApplicationSupportsIndirectInputEvents
+
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
@@ -61,9 +65,5 @@
UIViewControllerBasedStatusBarAppearance
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
diff --git a/LabelStoreMax/lib/app/models/user.dart b/LabelStoreMax/lib/app/models/user.dart
index f6975a0..0cc5660 100644
--- a/LabelStoreMax/lib/app/models/user.dart
+++ b/LabelStoreMax/lib/app/models/user.dart
@@ -10,18 +10,16 @@
import 'package:nylo_framework/nylo_framework.dart';
-class User extends Storable {
+class User extends Model {
String? userId;
String? token;
User();
User.fromUserAuthResponse({this.userId, this.token});
- @override
- toStorage() => {"token": token, "user_id": userId};
+ toJson() => {"token": token, "user_id": userId};
- @override
- fromStorage(dynamic data) {
+ fromJson(dynamic data) {
token = data['token'];
userId = data['user_id'];
}
diff --git a/LabelStoreMax/lib/app/networking/api_service.dart b/LabelStoreMax/lib/app/networking/api_service.dart
index ae204d4..bdded1c 100644
--- a/LabelStoreMax/lib/app/networking/api_service.dart
+++ b/LabelStoreMax/lib/app/networking/api_service.dart
@@ -8,7 +8,7 @@ import 'package:nylo_framework/nylo_framework.dart';
| ApiService
| -------------------------------------------------------------------------
| Define your API endpoints
-| Learn more https://nylo.dev/docs/4.x/networking
+| Learn more https://nylo.dev/docs/5.x/networking
|--------------------------------------------------------------------------
*/
diff --git a/LabelStoreMax/lib/app/providers/app_provider.dart b/LabelStoreMax/lib/app/providers/app_provider.dart
index e44654a..c6a10cb 100644
--- a/LabelStoreMax/lib/app/providers/app_provider.dart
+++ b/LabelStoreMax/lib/app/providers/app_provider.dart
@@ -4,8 +4,10 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_app/bootstrap/app_helper.dart';
import 'package:flutter_app/bootstrap/helpers.dart';
+import 'package:flutter_app/config/decoders.dart';
import 'package:flutter_app/config/design.dart';
import 'package:flutter_app/config/theme.dart';
+import 'package:flutter_app/config/validation_rules.dart';
import 'package:nylo_framework/nylo_framework.dart';
import 'package:flutter_app/config/localization.dart';
import 'package:woosignal/models/response/woosignal_app.dart';
@@ -112,12 +114,14 @@ class AppProvider implements NyProvider {
nylo.appLoader = loader;
nylo.appLogo = logo;
- String initialRoute = AppHelper.instance.appConfig!.appStatus != null
- ? '/home'
- : '/no-connection';
-
- nylo.initialRoute = initialRoute;
+ nylo.addModelDecoders(modelDecoders);
+ nylo.addValidationRules(validationRules);
return nylo;
}
+
+ @override
+ afterBoot(Nylo nylo) async {
+
+ }
}
diff --git a/LabelStoreMax/lib/app/providers/event_provider.dart b/LabelStoreMax/lib/app/providers/event_provider.dart
index ea35d13..573ba4e 100644
--- a/LabelStoreMax/lib/app/providers/event_provider.dart
+++ b/LabelStoreMax/lib/app/providers/event_provider.dart
@@ -8,4 +8,9 @@ class EventProvider implements NyProvider {
return nylo;
}
+
+ @override
+ afterBoot(Nylo nylo) async {
+
+ }
}
diff --git a/LabelStoreMax/lib/app/providers/payments/razorpay_pay.dart b/LabelStoreMax/lib/app/providers/payments/razorpay_pay.dart
deleted file mode 100644
index a1ebcfb..0000000
--- a/LabelStoreMax/lib/app/providers/payments/razorpay_pay.dart
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// LabelCore
-// Label StoreMAX
-//
-// Created by Anthony Gordon.
-// 2023, WooSignal Ltd. All rights reserved.
-//
-
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//
-
-import 'package:flutter/widgets.dart';
-import 'package:flutter_app/app/models/cart.dart';
-import 'package:flutter_app/bootstrap/data/order_wc.dart';
-import 'package:flutter_app/bootstrap/helpers.dart';
-import 'package:flutter_app/resources/pages/checkout_confirmation_page.dart';
-import 'package:nylo_framework/nylo_framework.dart';
-import 'package:razorpay_flutter/razorpay_flutter.dart';
-import 'package:woosignal/models/response/tax_rate.dart';
-import 'package:woosignal/models/payload/order_wc.dart';
-import 'package:woosignal/models/response/order.dart';
-
-razorPay(context,
- {required CheckoutConfirmationPageState state, TaxRate? taxRate}) async {
- Razorpay razorpay = Razorpay();
-
- razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS,
- (PaymentSuccessResponse response) async {
- OrderWC orderWC = await buildOrderWC(taxRate: taxRate);
-
- Order? order = await appWooSignal((api) => api.createOrder(orderWC));
-
- if (order != null) {
- Cart.getInstance.clear();
- Navigator.pushNamed(context, "/checkout-status", arguments: order);
- } else {
- showToastNotification(
- context,
- title: "Error".tr(),
- description: trans("Something went wrong, please contact our store"),
- );
- state.reloadState(showLoader: false);
- }
- });
-
- razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, (PaymentFailureResponse response) {
- showToastNotification(context,
- title: trans("Error"),
- description: response.message ?? "",
- style: ToastNotificationStyleType.WARNING);
- state.reloadState(showLoader: false);
- });
-
- razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
-
- // CHECKOUT HELPER
- await checkout(taxRate, (total, billingDetails, cart) async {
- var options = {
- 'key': getEnv('RAZORPAY_API_KEY'),
- 'amount': (double.parse(total) * 100).toInt(),
- 'name': getEnv('APP_NAME'),
- 'description': await cart.cartShortDesc(),
- 'prefill': {
- "name": [
- billingDetails!.billingAddress?.firstName,
- billingDetails.billingAddress?.lastName
- ].where((t) => t != null || t != "").toList().join(" "),
- "method": "card",
- 'email': billingDetails.billingAddress?.emailAddress ?? ""
- }
- };
-
- state.reloadState(showLoader: true);
-
- razorpay.open(options);
- });
-}
-
-void _handleExternalWallet(ExternalWalletResponse response) {}
diff --git a/LabelStoreMax/lib/app/providers/route_provider.dart b/LabelStoreMax/lib/app/providers/route_provider.dart
index 96748ad..32b02e8 100644
--- a/LabelStoreMax/lib/app/providers/route_provider.dart
+++ b/LabelStoreMax/lib/app/providers/route_provider.dart
@@ -1,3 +1,4 @@
+import 'package:flutter_app/bootstrap/app_helper.dart';
import 'package:flutter_app/routes/router.dart';
import 'package:nylo_framework/nylo_framework.dart';
@@ -8,4 +9,12 @@ class RouteProvider implements NyProvider {
return nylo;
}
+
+ @override
+ afterBoot(Nylo nylo) async {
+ String initialRoute = AppHelper.instance.appConfig!.appStatus != null
+ ? '/home'
+ : '/no-connection';
+ nylo.setInitialRoute(initialRoute);
+ }
}
diff --git a/LabelStoreMax/lib/bootstrap/boot.dart b/LabelStoreMax/lib/bootstrap/boot.dart
index 634f38d..760407c 100644
--- a/LabelStoreMax/lib/bootstrap/boot.dart
+++ b/LabelStoreMax/lib/bootstrap/boot.dart
@@ -1,12 +1,8 @@
-// import 'package:firebase_core/firebase_core.dart';
-// import 'package:firebase_messaging/firebase_messaging.dart';
-// import 'package:flutter_app/firebase_options.dart';
-
/// boot application
import 'package:flutter_app/config/providers.dart';
import 'package:nylo_framework/nylo_framework.dart';
class Boot {
static Future nylo() async => await bootApplication(providers);
- static Future finished(Nylo nylo) async => await bootFinished(nylo);
+ static Future finished(Nylo nylo) async => await bootFinished(nylo, providers);
}
diff --git a/LabelStoreMax/lib/bootstrap/extensions.dart b/LabelStoreMax/lib/bootstrap/extensions.dart
index d27aea5..3743b72 100644
--- a/LabelStoreMax/lib/bootstrap/extensions.dart
+++ b/LabelStoreMax/lib/bootstrap/extensions.dart
@@ -138,3 +138,37 @@ extension NyText on Text {
style: style != null ? this.style?.merge(style) ?? style : this.style);
}
}
+
+/// Check if the [Product] is new.
+extension DateTimeExtension on DateTime? {
+ bool? isAfterOrEqualTo(DateTime dateTime) {
+ final date = this;
+ if (date != null) {
+ final isAtSameMomentAs = dateTime.isAtSameMomentAs(date);
+ return isAtSameMomentAs | date.isAfter(dateTime);
+ }
+ return null;
+ }
+
+ bool? isBeforeOrEqualTo(DateTime dateTime) {
+ final date = this;
+ if (date != null) {
+ final isAtSameMomentAs = dateTime.isAtSameMomentAs(date);
+ return isAtSameMomentAs | date.isBefore(dateTime);
+ }
+ return null;
+ }
+
+ bool? isBetween(
+ DateTime fromDateTime,
+ DateTime toDateTime,
+ ) {
+ final date = this;
+ if (date != null) {
+ final isAfter = date.isAfterOrEqualTo(fromDateTime) ?? false;
+ final isBefore = date.isBeforeOrEqualTo(toDateTime) ?? false;
+ return isAfter && isBefore;
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/LabelStoreMax/lib/bootstrap/helpers.dart b/LabelStoreMax/lib/bootstrap/helpers.dart
index da58b0e..8a13c36 100644
--- a/LabelStoreMax/lib/bootstrap/helpers.dart
+++ b/LabelStoreMax/lib/bootstrap/helpers.dart
@@ -20,6 +20,7 @@ import 'package:flutter_app/app/models/payment_type.dart';
import 'package:flutter_app/app/models/user.dart';
import 'package:flutter_app/bootstrap/app_helper.dart';
import 'package:flutter_app/bootstrap/enums/symbol_position_enums.dart';
+import 'package:flutter_app/bootstrap/extensions.dart';
import 'package:flutter_app/bootstrap/shared_pref/shared_key.dart';
import 'package:flutter_app/config/currency.dart';
import 'package:flutter_app/config/decoders.dart';
@@ -45,7 +46,7 @@ import '../resources/themes/styles/color_styles.dart';
import 'package:flutter/services.dart' show rootBundle;
Future getUser() async =>
- (await (NyStorage.read(SharedKey.authUser, model: User())));
+ (await (NyStorage.read(SharedKey.authUser)));
Future appWooSignal(Function(WooSignal) api) async {
return await api(WooSignal.instance);
@@ -156,6 +157,7 @@ String moneyFormatter(double amount) {
amount: amount,
settings: MoneyFormatterSettings(
symbol: AppHelper.instance.appConfig!.currencyMeta!.symbolNative,
+ symbolAndNumberSeparator: ""
),
);
if (appCurrencySymbolPosition == SymbolPositionType.left) {
@@ -486,7 +488,7 @@ Widget refreshableScroll(context,
return StaggeredGridTile.fit(
crossAxisCellCount: 1,
child: Container(
- height: 200,
+ height: 350,
child: ProductItemContainer(
product: product,
onTap: onTap,
@@ -654,3 +656,15 @@ api(dynamic Function(T) request, {BuildContext? context}) async =>
/// Event helper
event({Map? data}) async => nyEvent(params: data, events: events);
+
+/// Check if the [Product] is new.
+bool isProductNew(Product? product) {
+ if (product?.dateCreatedGMT == null) false;
+ try {
+ DateTime dateTime = DateTime.parse(product!.dateCreatedGMT!);
+ return dateTime.isBetween(DateTime.now().subtract(Duration(days: 2)), DateTime.now()) ?? false;
+ } on Exception catch (e) {
+ NyLogger.error(e.toString());
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/LabelStoreMax/lib/config/decoders.dart b/LabelStoreMax/lib/config/decoders.dart
index cd2665f..714c54d 100644
--- a/LabelStoreMax/lib/config/decoders.dart
+++ b/LabelStoreMax/lib/config/decoders.dart
@@ -6,7 +6,7 @@ import 'package:flutter_app/app/networking/dio/base_api_service.dart';
| Model Decoders
| -------------------------------------------------------------------------
| Model decoders are used in 'app/networking/' for morphing json payloads
-| into Models. Learn more https://nylo.dev/docs/4.x/decoders#model-decoders
+| into Models. Learn more https://nylo.dev/docs/5.x/decoders#model-decoders
|--------------------------------------------------------------------------
*/
@@ -20,7 +20,7 @@ final Map modelDecoders = {
| -------------------------------------------------------------------------
| API decoders are used when you need to access an API service using the
| 'api' helper. E.g. api((request) => request.fetchData());
-| Learn more https://nylo.dev/docs/4.x/decoders#api-decoders
+| Learn more https://nylo.dev/docs/5.x/decoders#api-decoders
|--------------------------------------------------------------------------
*/
diff --git a/LabelStoreMax/lib/config/design.dart b/LabelStoreMax/lib/config/design.dart
index 667cee6..f7dbae8 100644
--- a/LabelStoreMax/lib/config/design.dart
+++ b/LabelStoreMax/lib/config/design.dart
@@ -7,7 +7,7 @@ import 'package:flutter_app/resources/widgets/woosignal_ui.dart';
| Design
| Contains widgets used in the Nylo framework.
|
-| Learn more: https://nylo.dev/docs/4.x/themes
+| Learn more: https://nylo.dev/docs/5.x/themes
|--------------------------------------------------------------------------
*/
diff --git a/LabelStoreMax/lib/config/events.dart b/LabelStoreMax/lib/config/events.dart
index 172b33e..d6c697a 100644
--- a/LabelStoreMax/lib/config/events.dart
+++ b/LabelStoreMax/lib/config/events.dart
@@ -8,7 +8,7 @@ import 'package:nylo_framework/nylo_framework.dart';
| Add your "app/events" here.
| Events can be fired using: event();
|
-| Learn more: https://nylo.dev/docs/4.x/events
+| Learn more: https://nylo.dev/docs/5.x/events
|--------------------------------------------------------------------------
*/
diff --git a/LabelStoreMax/lib/config/payment_gateways.dart b/LabelStoreMax/lib/config/payment_gateways.dart
index 661ffde..92cc633 100644
--- a/LabelStoreMax/lib/config/payment_gateways.dart
+++ b/LabelStoreMax/lib/config/payment_gateways.dart
@@ -1,7 +1,6 @@
import 'package:flutter_app/app/models/payment_type.dart';
import 'package:flutter_app/app/providers/payments/cash_on_delivery.dart';
import 'package:flutter_app/app/providers/payments/paypal_pay.dart';
-import 'package:flutter_app/app/providers/payments/razorpay_pay.dart';
import 'package:flutter_app/app/providers/payments/stripe_pay.dart';
import 'package:flutter_app/bootstrap/helpers.dart';
import 'package:nylo_framework/nylo_framework.dart';
@@ -44,14 +43,6 @@ List paymentTypeList = [
pay: payPalPay,
),
- addPayment(
- id: 5,
- name: "RazorPay",
- description: trans("Debit or Credit Card"),
- assetImage: "razorpay.png",
- pay: razorPay,
- ),
-
// e.g. add more here
// addPayment(
diff --git a/LabelStoreMax/lib/config/providers.dart b/LabelStoreMax/lib/config/providers.dart
index d22ece0..d1a228a 100644
--- a/LabelStoreMax/lib/config/providers.dart
+++ b/LabelStoreMax/lib/config/providers.dart
@@ -9,7 +9,7 @@ import 'package:nylo_framework/nylo_framework.dart';
| Add your "app/providers" here.
| Providers are booted when your application start.
|
-| Learn more: https://nylo.dev/docs/4.x/providers
+| Learn more: https://nylo.dev/docs/5.x/providers
|--------------------------------------------------------------------------
*/
diff --git a/LabelStoreMax/lib/config/storage_keys.dart b/LabelStoreMax/lib/config/storage_keys.dart
index 786ca6b..2d3149b 100644
--- a/LabelStoreMax/lib/config/storage_keys.dart
+++ b/LabelStoreMax/lib/config/storage_keys.dart
@@ -5,12 +5,15 @@
| E.g. static String userCoins = "USER_COINS";
| String coins = NyStorage.read( StorageKey.userCoins );
|
-| Learn more: https://nylo.dev/docs/4.x/storage#storage-keys
+| Learn more: https://nylo.dev/docs/5.x/storage#storage-keys
|--------------------------------------------------------------------------
*/
+import 'package:nylo_framework/nylo_framework.dart';
+
class StorageKey {
static String userToken = "USER_TOKEN";
+ static String authUser = getEnv('AUTH_USER_KEY', defaultValue: 'AUTH_USER');
/// Add your storage keys here...
}
diff --git a/LabelStoreMax/lib/config/validation_rules.dart b/LabelStoreMax/lib/config/validation_rules.dart
new file mode 100644
index 0000000..88dc4fa
--- /dev/null
+++ b/LabelStoreMax/lib/config/validation_rules.dart
@@ -0,0 +1,37 @@
+import 'package:nylo_framework/nylo_framework.dart';
+
+/*
+|--------------------------------------------------------------------------
+| Validation Rules
+| -------------------------------------------------------------------------
+| Add custom validation rules for your project in this file.
+| Learn more https://nylo.dev/docs/5.x/validation#custom-validation-rules
+|--------------------------------------------------------------------------
+*/
+
+final Map validationRules = {
+ /// Example
+ // SimplePassword: (attribute) => SimplePassword(attribute)
+};
+
+/// Example validation class
+// class SimplePassword extends ValidationRule {
+// SimplePassword(String attribute)
+// : super(
+// attribute: attribute,
+// signature: "simple_password", // Use this signature for the validator
+// description: "The $attribute field must be between 4 and 8 digits long and include at least one numeric digit", // Toast description when an error occurs
+// textFieldMessage: "Must be between 4 and 8 digits long with one numeric digit"); // TextField description when an error occurs
+//
+// @override
+// handle(Map info) {
+// super.handle(info);
+//
+// /// info['rule'] = Validation rule i.e "min".
+// /// info['data'] = Data the user has passed into the validation.
+// /// info['message'] = Overriding message to be displayed for validation (optional).
+//
+// RegExp regExp = RegExp(r'^(?=.*\d).{4,8}$');
+// return regExp.hasMatch(info['data']);
+// }
+// }
\ No newline at end of file
diff --git a/LabelStoreMax/lib/main.dart b/LabelStoreMax/lib/main.dart
index e3505d5..8285b27 100644
--- a/LabelStoreMax/lib/main.dart
+++ b/LabelStoreMax/lib/main.dart
@@ -11,7 +11,7 @@ void main() async {
AppBuild(
navigatorKey: NyNavigator.instance.router.navigatorKey,
onGenerateRoute: nylo.router!.generator(),
- initialRoute: nylo.initialRoute,
+ initialRoute: nylo.getInitialRoute(),
debugShowCheckedModeBanner: false,
),
);
diff --git a/LabelStoreMax/lib/resources/pages/account_landing_page.dart b/LabelStoreMax/lib/resources/pages/account_landing_page.dart
index 1d7ec1d..4ee9762 100644
--- a/LabelStoreMax/lib/resources/pages/account_landing_page.dart
+++ b/LabelStoreMax/lib/resources/pages/account_landing_page.dart
@@ -35,11 +35,6 @@ class _AccountLandingPageState extends NyState {
final TextEditingController _tfEmailController = TextEditingController(),
_tfPasswordController = TextEditingController();
- @override
- void initState() {
- super.initState();
- }
-
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -231,7 +226,7 @@ class _AccountLandingPageState extends NyState {
String? token = wpUserLoginResponse.data!.userToken;
String userId = wpUserLoginResponse.data!.userId.toString();
User user = User.fromUserAuthResponse(token: token, userId: userId);
- await user.save(SharedKey.authUser);
+ await Auth.set(user, key: SharedKey.authUser);
showToastNotification(context,
title: trans("Hello"),
diff --git a/LabelStoreMax/lib/resources/pages/account_register_page.dart b/LabelStoreMax/lib/resources/pages/account_register_page.dart
index 246be5a..eaa433d 100644
--- a/LabelStoreMax/lib/resources/pages/account_register_page.dart
+++ b/LabelStoreMax/lib/resources/pages/account_register_page.dart
@@ -48,11 +48,6 @@ class _AccountRegistrationPageState extends NyState {
final WooSignalApp? _wooSignalApp = AppHelper.instance.appConfig;
- @override
- void initState() {
- super.initState();
- }
-
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -241,7 +236,7 @@ class _AccountRegistrationPageState extends NyState {
String? token = wpUserRegisterResponse.data!.userToken;
String userId = wpUserRegisterResponse.data!.userId.toString();
User user = User.fromUserAuthResponse(token: token, userId: userId);
- await user.save(SharedKey.authUser);
+ await Auth.set(user, key: SharedKey.authUser);
await WPJsonAPI.instance.api((request) => request.wpUpdateUserInfo(token,
firstName: firstName, lastName: lastName));
diff --git a/LabelStoreMax/lib/resources/pages/browse_category_page.dart b/LabelStoreMax/lib/resources/pages/browse_category_page.dart
index 2c68fbf..4f7789a 100644
--- a/LabelStoreMax/lib/resources/pages/browse_category_page.dart
+++ b/LabelStoreMax/lib/resources/pages/browse_category_page.dart
@@ -85,7 +85,8 @@ class _BrowseCategoryPageState extends NyState {
onRefresh: _onRefresh,
onLoading: _onLoading,
products: _productCategorySearchLoaderController.getResults(),
- onTap: _showProduct),
+ onTap: _showProduct,
+ ),
),
);
}
diff --git a/LabelStoreMax/lib/resources/pages/leave_review_page.dart b/LabelStoreMax/lib/resources/pages/leave_review_page.dart
index 8f99550..63d423a 100644
--- a/LabelStoreMax/lib/resources/pages/leave_review_page.dart
+++ b/LabelStoreMax/lib/resources/pages/leave_review_page.dart
@@ -135,42 +135,41 @@ class _LeaveReviewPageState extends NyState {
return;
}
- try {
- validator(rules: {"review": "min:5"}, data: {"review": review});
-
- ProductReview? productReview =
+ await validate(
+ rules: {"review": "min:5"},
+ data: {"review": review},
+ onSuccess: () async {
+ ProductReview? productReview =
await (appWooSignal((api) => api.createProductReview(
- productId: _lineItem!.productId,
- verified: true,
- review: review,
- status: "approved",
- reviewer: [
- _order!.billing!.firstName,
- _order!.billing!.lastName
- ].join(" "),
- rating: _rating,
- reviewerEmail: _order!.billing!.email,
- )));
+ productId: _lineItem!.productId,
+ verified: true,
+ review: review,
+ status: "approved",
+ reviewer: [
+ _order!.billing!.firstName,
+ _order!.billing!.lastName
+ ].join(" "),
+ rating: _rating,
+ reviewerEmail: _order!.billing!.email,
+ )));
- if (productReview == null) {
- showToastNotification(context,
- title: trans("Oops"),
- description: trans("Something went wrong"),
- style: ToastNotificationStyleType.INFO);
- return;
- }
- showToastNotification(context,
- title: trans("Success"),
- description: trans("Your review has been submitted"),
- style: ToastNotificationStyleType.SUCCESS);
- pop(result: _lineItem);
- } on ValidationException catch (e) {
- NyLogger.error(e.toString());
- } finally {
- setState(() {
- _isLoading = false;
- });
- }
+ if (productReview == null) {
+ showToastNotification(context,
+ title: trans("Oops"),
+ description: trans("Something went wrong"),
+ style: ToastNotificationStyleType.INFO);
+ return;
+ }
+ showToastNotification(context,
+ title: trans("Success"),
+ description: trans("Your review has been submitted"),
+ style: ToastNotificationStyleType.SUCCESS);
+ pop(result: _lineItem);
+ });
+
+ setState(() {
+ _isLoading = false;
+ });
}
Future _fetchWpUserData() async {
diff --git a/LabelStoreMax/lib/resources/pages/product_detail_page.dart b/LabelStoreMax/lib/resources/pages/product_detail_page.dart
index e938b0f..436d204 100644
--- a/LabelStoreMax/lib/resources/pages/product_detail_page.dart
+++ b/LabelStoreMax/lib/resources/pages/product_detail_page.dart
@@ -17,7 +17,6 @@ import 'package:flutter_app/bootstrap/helpers.dart';
import 'package:flutter_app/resources/widgets/app_loader_widget.dart';
import 'package:flutter_app/resources/widgets/buttons.dart';
import 'package:flutter_app/resources/widgets/cart_icon_widget.dart';
-import 'package:flutter_app/resources/widgets/future_build_widget.dart';
import 'package:flutter_app/resources/widgets/product_detail_body_widget.dart';
import 'package:flutter_app/resources/widgets/product_detail_footer_actions_widget.dart';
import 'package:flutter_app/resources/widgets/woosignal_ui.dart';
@@ -232,9 +231,9 @@ class _ProductDetailState extends NyState {
appBar: AppBar(
actions: [
if (_wooSignalApp!.wishlistEnabled!)
- FutureBuildWidget(
- asyncFuture: hasAddedWishlistProduct(_product!.id),
- onValue: (dynamic isInFavourites) {
+ NyFutureBuilder(
+ future: hasAddedWishlistProduct(_product!.id),
+ child: (context, dynamic isInFavourites) {
return isInFavourites
? IconButton(
onPressed: () => widget.controller.toggleWishList(
diff --git a/LabelStoreMax/lib/resources/themes/light_theme.dart b/LabelStoreMax/lib/resources/themes/light_theme.dart
index f7c42d1..0e2247c 100644
--- a/LabelStoreMax/lib/resources/themes/light_theme.dart
+++ b/LabelStoreMax/lib/resources/themes/light_theme.dart
@@ -29,6 +29,7 @@ ThemeData lightTheme(ColorStyles lightColors) {
getAppTextTheme(appFont, defaultTextTheme.merge(_textTheme(lightColors)));
return ThemeData(
+ useMaterial3: true,
primaryColor: lightColors.primaryContent,
primaryColorLight: lightColors.primaryAccent,
focusColor: lightColors.primaryContent,
diff --git a/LabelStoreMax/lib/resources/widgets/app_version_widget.dart b/LabelStoreMax/lib/resources/widgets/app_version_widget.dart
index c95e7e4..144379b 100644
--- a/LabelStoreMax/lib/resources/widgets/app_version_widget.dart
+++ b/LabelStoreMax/lib/resources/widgets/app_version_widget.dart
@@ -10,7 +10,7 @@
import 'package:flutter/material.dart';
import 'package:nylo_framework/nylo_framework.dart';
-import 'package:package_info/package_info.dart';
+import 'package:package_info_plus/package_info_plus.dart';
class AppVersionWidget extends StatelessWidget {
const AppVersionWidget({Key? key}) : super(key: key);
diff --git a/LabelStoreMax/lib/resources/widgets/cart_icon_widget.dart b/LabelStoreMax/lib/resources/widgets/cart_icon_widget.dart
index 7565e84..bf4a971 100644
--- a/LabelStoreMax/lib/resources/widgets/cart_icon_widget.dart
+++ b/LabelStoreMax/lib/resources/widgets/cart_icon_widget.dart
@@ -23,45 +23,48 @@ class CartIconWidget extends StatefulWidget {
class _CartIconWidgetState extends State {
@override
Widget build(BuildContext context) {
- return IconButton(
- icon: Stack(
- children: [
- Positioned.fill(
- child: Align(
- child: Icon(Icons.shopping_cart, size: 20),
- alignment: Alignment.bottomCenter,
- ),
- bottom: 0,
- ),
- Positioned.fill(
- child: Align(
- child: NyFutureBuilder>(
- future: Cart.getInstance.getCart(),
- child: (BuildContext context,
- data) {
- List cartItems =
- data.map((e) => e.quantity).toList();
- String cartValue = "0";
- if (cartItems.isNotEmpty) {
- cartValue = cartItems
- .reduce((value, element) => value! + element!)
- .toString();
- }
- return Text(
- cartValue,
- style: Theme.of(context).textTheme.bodyMedium,
- textAlign: TextAlign.center,
- );
- },
+ return Container(
+ width: 70,
+ child: IconButton(
+ icon: Stack(
+ children: [
+ Positioned.fill(
+ child: Align(
+ child: Icon(Icons.shopping_cart, size: 20),
+ alignment: Alignment.bottomCenter,
),
- alignment: Alignment.topCenter,
+ bottom: 0,
),
- top: 0,
- )
- ],
+ Positioned.fill(
+ child: Align(
+ child: NyFutureBuilder>(
+ future: Cart.getInstance.getCart(),
+ child: (BuildContext context,
+ data) {
+ List cartItems =
+ data.map((e) => e.quantity).toList();
+ String cartValue = "0";
+ if (cartItems.isNotEmpty) {
+ cartValue = cartItems
+ .reduce((value, element) => value! + element!)
+ .toString();
+ }
+ return Text(
+ cartValue,
+ style: Theme.of(context).textTheme.bodyMedium,
+ textAlign: TextAlign.center,
+ );
+ },
+ ),
+ alignment: Alignment.topCenter,
+ ),
+ top: 0,
+ )
+ ],
+ ),
+ onPressed: () => Navigator.pushNamed(context, "/cart")
+ .then((value) => setState(() {})),
),
- onPressed: () => Navigator.pushNamed(context, "/cart")
- .then((value) => setState(() {})),
);
}
}
diff --git a/LabelStoreMax/lib/resources/widgets/future_build_widget.dart b/LabelStoreMax/lib/resources/widgets/future_build_widget.dart
deleted file mode 100644
index df9f696..0000000
--- a/LabelStoreMax/lib/resources/widgets/future_build_widget.dart
+++ /dev/null
@@ -1,43 +0,0 @@
-// Label StoreMax
-//
-// Created by Anthony Gordon.
-// 2023, WooSignal Ltd. All rights reserved.
-//
-
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
-import 'package:flutter/material.dart';
-
-class FutureBuildWidget extends StatelessWidget {
- const FutureBuildWidget(
- {Key? key,
- required this.asyncFuture,
- required this.onValue,
- this.onLoading})
- : super(key: key);
-
- final Widget Function(T? value) onValue;
- final Widget? onLoading;
- final Future asyncFuture;
-
- @override
- Widget build(BuildContext context) {
- return FutureBuilder(
- future: asyncFuture.then((value) => value as T),
- builder: (BuildContext context, AsyncSnapshot snapshot) {
- switch (snapshot.connectionState) {
- case ConnectionState.waiting:
- return onLoading ?? Container();
- default:
- if (snapshot.hasError) {
- return SizedBox.shrink();
- } else {
- return onValue(snapshot.data);
- }
- }
- },
- );
- }
-}
diff --git a/LabelStoreMax/lib/resources/widgets/product_detail_related_products_widget.dart b/LabelStoreMax/lib/resources/widgets/product_detail_related_products_widget.dart
index 2f395a8..bacf6af 100644
--- a/LabelStoreMax/lib/resources/widgets/product_detail_related_products_widget.dart
+++ b/LabelStoreMax/lib/resources/widgets/product_detail_related_products_widget.dart
@@ -10,8 +10,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_app/bootstrap/helpers.dart';
-import 'package:flutter_app/resources/widgets/app_loader_widget.dart';
-import 'package:flutter_app/resources/widgets/future_build_widget.dart';
import 'package:flutter_app/resources/widgets/woosignal_ui.dart';
import 'package:nylo_framework/nylo_framework.dart';
import 'package:woosignal/models/response/products.dart';
@@ -53,10 +51,10 @@ class ProductDetailRelatedProductsWidget extends StatelessWidget {
),
),
Container(
- height: 200,
- child: FutureBuildWidget>(
- asyncFuture: fetchRelated(),
- onValue: (relatedProducts) {
+ height: 300,
+ child: NyFutureBuilder>(
+ future: fetchRelated(),
+ child: (context, relatedProducts) {
if (relatedProducts == null) {
return SizedBox.shrink();
}
@@ -70,7 +68,6 @@ class ProductDetailRelatedProductsWidget extends StatelessWidget {
.toList(),
);
},
- onLoading: AppLoaderWidget(),
),
),
],
diff --git a/LabelStoreMax/lib/resources/widgets/product_detail_reviews_widget.dart b/LabelStoreMax/lib/resources/widgets/product_detail_reviews_widget.dart
index e1e5caf..444fc55 100644
--- a/LabelStoreMax/lib/resources/widgets/product_detail_reviews_widget.dart
+++ b/LabelStoreMax/lib/resources/widgets/product_detail_reviews_widget.dart
@@ -12,7 +12,6 @@ import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/bootstrap/helpers.dart';
-import 'package:flutter_app/resources/widgets/future_build_widget.dart';
import 'package:flutter_app/resources/widgets/product_detail_review_tile_widget.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:nylo_framework/nylo_framework.dart';
@@ -91,12 +90,9 @@ class _ProductDetailReviewsWidgetState
initiallyExpanded: false,
children: [
if (_ratingExpanded == true)
- FutureBuildWidget>(
- asyncFuture: fetchReviews(),
- onValue: (reviews) {
- if (reviews == null) {
- return SizedBox.shrink();
- }
+ NyFutureBuilder>(
+ future: fetchReviews(),
+ child: (context, reviews) {
int reviewsCount = reviews.length;
List childrenWidgets = [];
List children = reviews
@@ -137,7 +133,7 @@ class _ProductDetailReviewsWidgetState
: childrenWidgets,
);
},
- onLoading: Padding(
+ loading: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: CupertinoActivityIndicator(),
),
@@ -149,9 +145,9 @@ class _ProductDetailReviewsWidgetState
}
Future> fetchReviews() async {
- return await (appWooSignal(
+ return await appWooSignal(
(api) => api.getProductReviews(
perPage: 5, product: [widget.product!.id!], status: "approved"),
- ));
+ );
}
}
diff --git a/LabelStoreMax/lib/resources/widgets/product_detail_upsell_widget.dart b/LabelStoreMax/lib/resources/widgets/product_detail_upsell_widget.dart
index e0f613e..2a6fd60 100644
--- a/LabelStoreMax/lib/resources/widgets/product_detail_upsell_widget.dart
+++ b/LabelStoreMax/lib/resources/widgets/product_detail_upsell_widget.dart
@@ -75,7 +75,7 @@ class _ProductDetailUpsellWidgetState extends State {
),
),
Container(
- height: 200,
+ height: 300,
child: ListView(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
diff --git a/LabelStoreMax/lib/resources/widgets/woosignal_ui.dart b/LabelStoreMax/lib/resources/widgets/woosignal_ui.dart
index d54ab46..a0f45cf 100644
--- a/LabelStoreMax/lib/resources/widgets/woosignal_ui.dart
+++ b/LabelStoreMax/lib/resources/widgets/woosignal_ui.dart
@@ -315,6 +315,7 @@ class ProductItemContainer extends StatelessWidget {
if (product == null) {
return SizedBox.shrink();
}
+
return LayoutBuilder(
builder: (cxt, constraints) => InkWell(
child: Container(
@@ -324,7 +325,7 @@ class ProductItemContainer extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
- height: constraints.maxHeight / 2,
+ height: constraints.maxHeight / 1.6,
child: ClipRRect(
borderRadius: BorderRadius.circular(3.0),
child: Stack(
@@ -338,10 +339,12 @@ class ProductItemContainer extends StatelessWidget {
image: (product!.images.isNotEmpty
? product!.images.first.src
: getEnv("PRODUCT_PLACEHOLDER_IMAGE")),
- fit: BoxFit.contain,
- height: constraints.maxHeight / 2,
+ fit: BoxFit.cover,
+ height: constraints.maxHeight / 1.6,
width: double.infinity,
),
+ if (isProductNew(product))
+ Container(padding: EdgeInsets.all(4), child: Text("New", style: TextStyle(color: Colors.white),), decoration: BoxDecoration(color: Colors.black),),
if (product!.onSale! && product!.type != "variable")
Positioned(
bottom: 0,
@@ -351,7 +354,7 @@ class ProductItemContainer extends StatelessWidget {
padding: EdgeInsets.all(3),
decoration: BoxDecoration(
color: Colors.white70,
- borderRadius: BorderRadius.circular(4),
+ // borderRadius: BorderRadius.circular(4),
),
child: RichText(
textAlign: TextAlign.center,
@@ -366,8 +369,8 @@ class ProductItemContainer extends StatelessWidget {
.textTheme
.bodyLarge!
.copyWith(
- color: Colors.black87,
- fontSize: 11,
+ color: Colors.black,
+ fontSize: 13,
),
),
],
@@ -393,16 +396,17 @@ class ProductItemContainer extends StatelessWidget {
),
Flexible(
child: Container(
+ padding: EdgeInsets.only(top: 4),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.start,
children: [
AutoSizeText(
"${formatStringCurrency(total: product!.price)} ",
style: Theme.of(context)
.textTheme
- .bodyMedium!
- .copyWith(fontWeight: FontWeight.w600),
+ .bodyLarge!
+ .copyWith(fontWeight: FontWeight.w800),
textAlign: TextAlign.left,
),
if (product!.onSale! && product!.type != "variable")
diff --git a/LabelStoreMax/pubspec.lock b/LabelStoreMax/pubspec.lock
deleted file mode 100644
index f31236a..0000000
--- a/LabelStoreMax/pubspec.lock
+++ /dev/null
@@ -1,1223 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
- _fe_analyzer_shared:
- dependency: transitive
- description:
- name: _fe_analyzer_shared
- sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
- url: "https://pub.dev"
- source: hosted
- version: "47.0.0"
- _flutterfire_internals:
- dependency: transitive
- description:
- name: _flutterfire_internals
- sha256: "64fcb0dbca4386356386c085142fa6e79c00a3326ceaa778a2d25f5d9ba61441"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.16"
- analyzer:
- dependency: "direct main"
- description:
- name: analyzer
- sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
- url: "https://pub.dev"
- source: hosted
- version: "4.7.0"
- animate_do:
- dependency: transitive
- description:
- name: animate_do
- sha256: "9aeacc1a7238f971c039bdf45d13c628be554a242e0251c4ddda09d19a1a923f"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- archive:
- dependency: transitive
- description:
- name: archive
- sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
- url: "https://pub.dev"
- source: hosted
- version: "3.3.6"
- args:
- dependency: transitive
- description:
- name: args
- sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
- url: "https://pub.dev"
- source: hosted
- version: "2.4.0"
- async:
- dependency: transitive
- description:
- name: async
- sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
- url: "https://pub.dev"
- source: hosted
- version: "2.10.0"
- auto_size_text:
- dependency: "direct main"
- description:
- name: auto_size_text
- sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
- boolean_selector:
- dependency: transitive
- description:
- name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- bubble_tab_indicator:
- dependency: "direct main"
- description:
- name: bubble_tab_indicator
- sha256: "0aa37980a00e3374d917f9da8e83acd7f59ba872a3d05c306220063f28f945aa"
- url: "https://pub.dev"
- source: hosted
- version: "0.1.6"
- cached_network_image:
- dependency: "direct main"
- description:
- name: cached_network_image
- sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15
- url: "https://pub.dev"
- source: hosted
- version: "3.2.3"
- cached_network_image_platform_interface:
- dependency: transitive
- description:
- name: cached_network_image_platform_interface
- sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- cached_network_image_web:
- dependency: transitive
- description:
- name: cached_network_image_web
- sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0
- url: "https://pub.dev"
- source: hosted
- version: "1.0.2"
- characters:
- dependency: transitive
- description:
- name: characters
- sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- checked_yaml:
- dependency: transitive
- description:
- name: checked_yaml
- sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.2"
- cli_util:
- dependency: transitive
- description:
- name: cli_util
- sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.5"
- clock:
- dependency: transitive
- description:
- name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- collection:
- dependency: "direct main"
- description:
- name: collection
- sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
- url: "https://pub.dev"
- source: hosted
- version: "1.17.0"
- convert:
- dependency: transitive
- description:
- name: convert
- sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.1"
- crypto:
- dependency: transitive
- description:
- name: crypto
- sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- csslib:
- dependency: transitive
- description:
- name: csslib
- sha256: b36c7f7e24c0bdf1bf9a3da461c837d1de64b9f8beb190c9011d8c72a3dfd745
- url: "https://pub.dev"
- source: hosted
- version: "0.17.2"
- cupertino_icons:
- dependency: "direct main"
- description:
- name: cupertino_icons
- sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
- url: "https://pub.dev"
- source: hosted
- version: "1.0.5"
- dart_style:
- dependency: transitive
- description:
- name: dart_style
- sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.4"
- device_info_plus:
- dependency: transitive
- description:
- name: device_info_plus
- sha256: "7ff671ed0a6356fa8f2e1ae7d3558d3fb7b6a41e24455e4f8df75b811fb8e4ab"
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0"
- device_info_plus_platform_interface:
- dependency: transitive
- description:
- name: device_info_plus_platform_interface
- sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64
- url: "https://pub.dev"
- source: hosted
- version: "7.0.0"
- dio:
- dependency: transitive
- description:
- name: dio
- sha256: "3709d74615bba5e443eb141f6a7f4bcc4788f8fae6f743edadfb79c2a8e6287e"
- url: "https://pub.dev"
- source: hosted
- version: "5.0.1"
- eventify:
- dependency: transitive
- description:
- name: eventify
- sha256: b829429f08586cc2001c628e7499e3e3c2493a1d895fd73b00ecb23351aa5a66
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
- fake_async:
- dependency: transitive
- description:
- name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- ffi:
- dependency: transitive
- description:
- name: ffi
- sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- file:
- dependency: transitive
- description:
- name: file
- sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
- url: "https://pub.dev"
- source: hosted
- version: "6.1.4"
- firebase_core:
- dependency: "direct main"
- description:
- name: firebase_core
- sha256: fe30ac230f12f8836bb97e6e09197340d3c584526825b1746ea362a82e1e43f7
- url: "https://pub.dev"
- source: hosted
- version: "2.7.0"
- firebase_core_platform_interface:
- dependency: transitive
- description:
- name: firebase_core_platform_interface
- sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55"
- url: "https://pub.dev"
- source: hosted
- version: "4.5.3"
- firebase_core_web:
- dependency: transitive
- description:
- name: firebase_core_web
- sha256: "291fbcace608aca6c860652e1358ef89752be8cc3ef227f8bbcd1e62775b833a"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.1"
- firebase_messaging:
- dependency: "direct main"
- description:
- name: firebase_messaging
- sha256: "95f7565b8e992d2188cdd8dc5612330f7c309485fe425d3f9844f18e90741e3e"
- url: "https://pub.dev"
- source: hosted
- version: "14.2.5"
- firebase_messaging_platform_interface:
- dependency: transitive
- description:
- name: firebase_messaging_platform_interface
- sha256: c5e79e15d1018cafffea1a6e45249db0d6bc42dbe35178634c77488179880e79
- url: "https://pub.dev"
- source: hosted
- version: "4.2.14"
- firebase_messaging_web:
- dependency: transitive
- description:
- name: firebase_messaging_web
- sha256: cd0cfcab7a63282049dec95a9955e7a487b5e580162310d12a82a10c0c32c546
- url: "https://pub.dev"
- source: hosted
- version: "3.2.15"
- flare_flutter:
- dependency: transitive
- description:
- name: flare_flutter
- sha256: "99d63c60f00fac81249ce6410ee015d7b125c63d8278a30da81edf3317a1f6a0"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- flutter:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_blurhash:
- dependency: transitive
- description:
- name: flutter_blurhash
- sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.0"
- flutter_cache_manager:
- dependency: transitive
- description:
- name: flutter_cache_manager
- sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3"
- url: "https://pub.dev"
- source: hosted
- version: "3.3.0"
- flutter_dotenv:
- dependency: transitive
- description:
- name: flutter_dotenv
- sha256: d9283d92059a22e9834bc0a31336658ffba77089fb6f3cc36751f1fc7c6661a3
- url: "https://pub.dev"
- source: hosted
- version: "5.0.2"
- flutter_launcher_icons:
- dependency: "direct dev"
- description:
- name: flutter_launcher_icons
- sha256: "02dcaf49d405f652b7160e882bacfc02cb497041bb2eab2a49b1c393cf9aac12"
- url: "https://pub.dev"
- source: hosted
- version: "0.12.0"
- flutter_localizations:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_rating_bar:
- dependency: "direct main"
- description:
- name: flutter_rating_bar
- sha256: d2af03469eac832c591a1eba47c91ecc871fe5708e69967073c043b2d775ed93
- url: "https://pub.dev"
- source: hosted
- version: "4.0.1"
- flutter_secure_storage:
- dependency: transitive
- description:
- name: flutter_secure_storage
- sha256: "98352186ee7ad3639ccc77ad7924b773ff6883076ab952437d20f18a61f0a7c5"
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0"
- flutter_secure_storage_linux:
- dependency: transitive
- description:
- name: flutter_secure_storage_linux
- sha256: "0912ae29a572230ad52d8a4697e5518d7f0f429052fd51df7e5a7952c7efe2a3"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.3"
- flutter_secure_storage_macos:
- dependency: transitive
- description:
- name: flutter_secure_storage_macos
- sha256: "083add01847fc1c80a07a08e1ed6927e9acd9618a35e330239d4422cd2a58c50"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
- flutter_secure_storage_platform_interface:
- dependency: transitive
- description:
- name: flutter_secure_storage_platform_interface
- sha256: b3773190e385a3c8a382007893d678ae95462b3c2279e987b55d140d3b0cb81b
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
- flutter_secure_storage_web:
- dependency: transitive
- description:
- name: flutter_secure_storage_web
- sha256: "42938e70d4b872e856e678c423cc0e9065d7d294f45bc41fc1981a4eb4beaffe"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- flutter_secure_storage_windows:
- dependency: transitive
- description:
- name: flutter_secure_storage_windows
- sha256: fc2910ec9b28d60598216c29ea763b3a96c401f0ce1d13cdf69ccb0e5c93c3ee
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- flutter_spinkit:
- dependency: "direct main"
- description:
- name: flutter_spinkit
- sha256: "77a2117c0517ff909221f3160b8eb20052ab5216107581168af574ac1f05dff8"
- url: "https://pub.dev"
- source: hosted
- version: "5.1.0"
- flutter_staggered_grid_view:
- dependency: "direct main"
- description:
- name: flutter_staggered_grid_view
- sha256: "1312314293acceb65b92754298754801b0e1f26a1845833b740b30415bbbcf07"
- url: "https://pub.dev"
- source: hosted
- version: "0.6.2"
- flutter_stripe:
- dependency: "direct main"
- description:
- name: flutter_stripe
- sha256: "00e612c11ea57f9b78510e5b2aa8719022698bd8a023140e9b7f52c1dfa2e27d"
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0+1"
- flutter_styled_toast:
- dependency: transitive
- description:
- name: flutter_styled_toast
- sha256: cc32aed2a49ce77a1ed5844073c6c0f5e381c81fd6d694e0ba3c5dc2a645963d
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- flutter_swiper_view:
- dependency: "direct main"
- description:
- name: flutter_swiper_view
- sha256: "2a165b259e8a4c49d4da5626b967ed42a73dac2d075bd9e266ad8d23b9f01879"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.8"
- flutter_test:
- dependency: "direct dev"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_web_browser:
- dependency: "direct main"
- description:
- name: flutter_web_browser
- sha256: a5564b736253f745e147b8c4eff86de436324d081974cc1f16bff881134a400f
- url: "https://pub.dev"
- source: hosted
- version: "0.17.1"
- flutter_web_plugins:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_widget_from_html_core:
- dependency: "direct main"
- description:
- name: flutter_widget_from_html_core
- sha256: "2ee1f47662f5ba34fe535915b034fae0450bc0a15ae6935ca4abcc7fa987e948"
- url: "https://pub.dev"
- source: hosted
- version: "0.10.0"
- fluttertoast:
- dependency: transitive
- description:
- name: fluttertoast
- sha256: "7cc92eabe01e3f1babe1571c5560b135dfc762a34e41e9056881e2196b178ec1"
- url: "https://pub.dev"
- source: hosted
- version: "8.1.2"
- freezed_annotation:
- dependency: transitive
- description:
- name: freezed_annotation
- sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- fwfh_text_style:
- dependency: transitive
- description:
- name: fwfh_text_style
- sha256: "37806ee0222f79b6e8d4c698c322c897eae6a817258156f40aeece4e588fac60"
- url: "https://pub.dev"
- source: hosted
- version: "2.22.08+1"
- glob:
- dependency: transitive
- description:
- name: glob
- sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- google_fonts:
- dependency: "direct main"
- description:
- name: google_fonts
- sha256: "927573f2e8a8d65c17931e21918ad0ab0666b1b636537de7c4932bdb487b190f"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.3"
- html:
- dependency: "direct main"
- description:
- name: html
- sha256: d9793e10dbe0e6c364f4c59bf3e01fb33a9b2a674bc7a1081693dba0614b6269
- url: "https://pub.dev"
- source: hosted
- version: "0.15.1"
- http:
- dependency: transitive
- description:
- name: http
- sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
- url: "https://pub.dev"
- source: hosted
- version: "0.13.5"
- http_parser:
- dependency: transitive
- description:
- name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.2"
- image:
- dependency: transitive
- description:
- name: image
- sha256: "483a389d6ccb292b570c31b3a193779b1b0178e7eb571986d9a49904b6861227"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.15"
- intl:
- dependency: "direct main"
- description:
- name: intl
- sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
- url: "https://pub.dev"
- source: hosted
- version: "0.17.0"
- js:
- dependency: transitive
- description:
- name: js
- sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
- url: "https://pub.dev"
- source: hosted
- version: "0.6.5"
- json_annotation:
- dependency: transitive
- description:
- name: json_annotation
- sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
- url: "https://pub.dev"
- source: hosted
- version: "4.8.0"
- json_dart_generator:
- dependency: transitive
- description:
- name: json_dart_generator
- sha256: "88c710a9278e1f8a9ad65a695350153f517d7deeca293ea45c6f997c066437a5"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.0+1"
- lints:
- dependency: "direct dev"
- description:
- name: lints
- sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- logger:
- dependency: transitive
- description:
- name: logger
- sha256: "5076f09225f91dc49289a4ccb92df2eeea9ea01cf7c26d49b3a1f04c6a49eec1"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.0"
- matcher:
- dependency: transitive
- description:
- name: matcher
- sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
- url: "https://pub.dev"
- source: hosted
- version: "0.12.13"
- material_color_utilities:
- dependency: transitive
- description:
- name: material_color_utilities
- sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0"
- math_expressions:
- dependency: "direct main"
- description:
- name: math_expressions
- sha256: "6cec3bb1f5a78701cc25d63705ddfa807062d00bc0d85ba8b2d13daed9fe61c5"
- url: "https://pub.dev"
- source: hosted
- version: "2.3.1"
- meta:
- dependency: transitive
- description:
- name: meta
- sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
- url: "https://pub.dev"
- source: hosted
- version: "1.8.0"
- money_formatter:
- dependency: "direct main"
- description:
- name: money_formatter
- sha256: "7cea53417f91b1a965c814d364f5021d8633f5f013659db5cdabbc95c4971eb4"
- url: "https://pub.dev"
- source: hosted
- version: "0.0.3"
- nylo_framework:
- dependency: "direct main"
- description:
- name: nylo_framework
- sha256: "9ed065fdd5570de42c5e96f6269740de7b568593c2af78584cdc38572cf52ebe"
- url: "https://pub.dev"
- source: hosted
- version: "4.1.4"
- nylo_support:
- dependency: transitive
- description:
- name: nylo_support
- sha256: e710481287d8c4db42b51e10a1a726cc6da7239fdd334e204eadda635a9766ff
- url: "https://pub.dev"
- source: hosted
- version: "4.3.1"
- octo_image:
- dependency: transitive
- description:
- name: octo_image
- sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.2"
- package_config:
- dependency: transitive
- description:
- name: package_config
- sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.0"
- package_info:
- dependency: "direct main"
- description:
- name: package_info
- sha256: "6c07d9d82c69e16afeeeeb6866fe43985a20b3b50df243091bfc4a4ad2b03b75"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.2"
- package_info_plus:
- dependency: transitive
- description:
- name: package_info_plus
- sha256: f62d7253edc197fe3c88d7c2ddab82d68f555e778d55390ccc3537eca8e8d637
- url: "https://pub.dev"
- source: hosted
- version: "1.4.3+1"
- package_info_plus_linux:
- dependency: transitive
- description:
- name: package_info_plus_linux
- sha256: "04b575f44233d30edbb80a94e57cad9107aada334fc02aabb42b6becd13c43fc"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.5"
- package_info_plus_macos:
- dependency: transitive
- description:
- name: package_info_plus_macos
- sha256: a2ad8b4acf4cd479d4a0afa5a74ea3f5b1c7563b77e52cc32b3ee6956d5482a6
- url: "https://pub.dev"
- source: hosted
- version: "1.3.0"
- package_info_plus_platform_interface:
- dependency: transitive
- description:
- name: package_info_plus_platform_interface
- sha256: f7a0c8f1e7e981bc65f8b64137a53fd3c195b18d429fba960babc59a5a1c7ae8
- url: "https://pub.dev"
- source: hosted
- version: "1.0.2"
- package_info_plus_web:
- dependency: transitive
- description:
- name: package_info_plus_web
- sha256: f0829327eb534789e0a16ccac8936a80beed4e2401c4d3a74f3f39094a822d3b
- url: "https://pub.dev"
- source: hosted
- version: "1.0.6"
- package_info_plus_windows:
- dependency: transitive
- description:
- name: package_info_plus_windows
- sha256: "79524f11c42dd9078b96d797b3cf79c0a2883a50c4920dc43da8562c115089bc"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.0"
- page_transition:
- dependency: transitive
- description:
- name: page_transition
- sha256: a7694bc120b7064a7f57c336914bb8885acf4f70bb3772c30c2fcfe6a85e43ff
- url: "https://pub.dev"
- source: hosted
- version: "2.0.9"
- path:
- dependency: transitive
- description:
- name: path
- sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
- url: "https://pub.dev"
- source: hosted
- version: "1.8.2"
- path_provider:
- dependency: transitive
- description:
- name: path_provider
- sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
- url: "https://pub.dev"
- source: hosted
- version: "2.0.12"
- path_provider_android:
- dependency: transitive
- description:
- name: path_provider_android
- sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
- url: "https://pub.dev"
- source: hosted
- version: "2.0.22"
- path_provider_foundation:
- dependency: transitive
- description:
- name: path_provider_foundation
- sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- path_provider_linux:
- dependency: transitive
- description:
- name: path_provider_linux
- sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
- url: "https://pub.dev"
- source: hosted
- version: "2.1.7"
- path_provider_platform_interface:
- dependency: transitive
- description:
- name: path_provider_platform_interface
- sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
- url: "https://pub.dev"
- source: hosted
- version: "2.0.5"
- path_provider_windows:
- dependency: transitive
- description:
- name: path_provider_windows
- sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- pedantic:
- dependency: transitive
- description:
- name: pedantic
- sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
- url: "https://pub.dev"
- source: hosted
- version: "1.11.1"
- petitparser:
- dependency: transitive
- description:
- name: petitparser
- sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
- url: "https://pub.dev"
- source: hosted
- version: "5.1.0"
- platform:
- dependency: transitive
- description:
- name: platform
- sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0"
- plugin_platform_interface:
- dependency: transitive
- description:
- name: plugin_platform_interface
- sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- pointycastle:
- dependency: transitive
- description:
- name: pointycastle
- sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
- url: "https://pub.dev"
- source: hosted
- version: "3.6.2"
- process:
- dependency: transitive
- description:
- name: process
- sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
- url: "https://pub.dev"
- source: hosted
- version: "4.2.4"
- pub_semver:
- dependency: transitive
- description:
- name: pub_semver
- sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- pull_to_refresh_flutter3:
- dependency: "direct main"
- description:
- name: pull_to_refresh_flutter3
- sha256: "223a6241067162dc15cf8c46c05af998ce7aa85e0703d8f696101eb1b5629d76"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- razorpay_flutter:
- dependency: "direct main"
- description:
- name: razorpay_flutter
- sha256: "959dbedc3af25fd41b43944bc5db00d4be1ea1967fed5d69fba3fc6700b1f103"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.4"
- recase:
- dependency: transitive
- description:
- name: recase
- sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213
- url: "https://pub.dev"
- source: hosted
- version: "4.1.0"
- rxdart:
- dependency: transitive
- description:
- name: rxdart
- sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
- url: "https://pub.dev"
- source: hosted
- version: "0.27.7"
- shared_preferences:
- dependency: transitive
- description:
- name: shared_preferences
- sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41
- url: "https://pub.dev"
- source: hosted
- version: "2.0.18"
- shared_preferences_android:
- dependency: transitive
- description:
- name: shared_preferences_android
- sha256: "955e9736a12ba776bdd261cf030232b30eadfcd9c79b32a3250dd4a494e8c8f7"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.15"
- shared_preferences_foundation:
- dependency: transitive
- description:
- name: shared_preferences_foundation
- sha256: "2b55c18636a4edc529fa5cd44c03d3f3100c00513f518c5127c951978efcccd0"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- shared_preferences_linux:
- dependency: transitive
- description:
- name: shared_preferences_linux
- sha256: f8ea038aa6da37090093974ebdcf4397010605fd2ff65c37a66f9d28394cb874
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- shared_preferences_platform_interface:
- dependency: transitive
- description:
- name: shared_preferences_platform_interface
- sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3
- url: "https://pub.dev"
- source: hosted
- version: "2.1.0"
- shared_preferences_web:
- dependency: transitive
- description:
- name: shared_preferences_web
- sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- shared_preferences_windows:
- dependency: transitive
- description:
- name: shared_preferences_windows
- sha256: "5eaf05ae77658d3521d0e993ede1af962d4b326cd2153d312df716dc250f00c9"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- sky_engine:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.99"
- source_span:
- dependency: transitive
- description:
- name: source_span
- sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
- url: "https://pub.dev"
- source: hosted
- version: "1.9.1"
- sqflite:
- dependency: transitive
- description:
- name: sqflite
- sha256: "78324387dc81df14f78df06019175a86a2ee0437624166c382e145d0a7fd9a4f"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.4+1"
- sqflite_common:
- dependency: transitive
- description:
- name: sqflite_common
- sha256: bfd6973aaeeb93475bc0d875ac9aefddf7965ef22ce09790eb963992ffc5183f
- url: "https://pub.dev"
- source: hosted
- version: "2.4.2+2"
- stack_trace:
- dependency: transitive
- description:
- name: stack_trace
- sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
- url: "https://pub.dev"
- source: hosted
- version: "1.11.0"
- status_alert:
- dependency: "direct main"
- description:
- name: status_alert
- sha256: "220ce6c1400d19d817665ac5a87f772e87c901677ac37b93320f4764edf4d23f"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
- stream_channel:
- dependency: transitive
- description:
- name: stream_channel
- sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- string_scanner:
- dependency: transitive
- description:
- name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.0"
- stripe_android:
- dependency: transitive
- description:
- name: stripe_android
- sha256: "3cf43dfb70d8011ded0730c091e741b94cd4aaccaad22732a19f5941503072d6"
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0+1"
- stripe_ios:
- dependency: transitive
- description:
- name: stripe_ios
- sha256: b3da653013be8aada352b158439024963a0d5dc0648524127d3ef4fd6b0a0cc7
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0"
- stripe_platform_interface:
- dependency: transitive
- description:
- name: stripe_platform_interface
- sha256: "28c409b0c0e98115c4ab38a9a34a883010811036e6d9fa8d495f67c3ba01c034"
- url: "https://pub.dev"
- source: hosted
- version: "8.0.0"
- synchronized:
- dependency: transitive
- description:
- name: synchronized
- sha256: "33b31b6beb98100bf9add464a36a8dd03eb10c7a8cf15aeec535e9b054aaf04b"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- term_glyph:
- dependency: transitive
- description:
- name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- test_api:
- dependency: transitive
- description:
- name: test_api
- sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
- url: "https://pub.dev"
- source: hosted
- version: "0.4.16"
- theme_provider:
- dependency: transitive
- description:
- name: theme_provider
- sha256: "0f1d7235bf1b0b09a6b4c0dbefddab0309323c04d4ae8cd2f0e9178be85f8ae4"
- url: "https://pub.dev"
- source: hosted
- version: "0.5.0"
- typed_data:
- dependency: transitive
- description:
- name: typed_data
- sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- url_launcher:
- dependency: "direct main"
- description:
- name: url_launcher
- sha256: e8f2efc804810c0f2f5b485f49e7942179f56eabcfe81dce3387fec4bb55876b
- url: "https://pub.dev"
- source: hosted
- version: "6.1.9"
- url_launcher_android:
- dependency: transitive
- description:
- name: url_launcher_android
- sha256: "3e2f6dfd2c7d9cd123296cab8ef66cfc2c1a13f5845f42c7a0f365690a8a7dd1"
- url: "https://pub.dev"
- source: hosted
- version: "6.0.23"
- url_launcher_ios:
- dependency: transitive
- description:
- name: url_launcher_ios
- sha256: "0a5af0aefdd8cf820dd739886efb1637f1f24489900204f50984634c07a54815"
- url: "https://pub.dev"
- source: hosted
- version: "6.1.0"
- url_launcher_linux:
- dependency: transitive
- description:
- name: url_launcher_linux
- sha256: "318c42cba924e18180c029be69caf0a1a710191b9ec49bb42b5998fdcccee3cc"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- url_launcher_macos:
- dependency: transitive
- description:
- name: url_launcher_macos
- sha256: "41988b55570df53b3dd2a7fc90c76756a963de6a8c5f8e113330cb35992e2094"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- url_launcher_platform_interface:
- dependency: transitive
- description:
- name: url_launcher_platform_interface
- sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- url_launcher_web:
- dependency: transitive
- description:
- name: url_launcher_web
- sha256: "44d79408ce9f07052095ef1f9a693c258d6373dc3944249374e30eff7219ccb0"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.14"
- url_launcher_windows:
- dependency: transitive
- description:
- name: url_launcher_windows
- sha256: b6217370f8eb1fd85c8890c539f5a639a01ab209a36db82c921ebeacefc7a615
- url: "https://pub.dev"
- source: hosted
- version: "3.0.3"
- uuid:
- dependency: transitive
- description:
- name: uuid
- sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.7"
- validated:
- dependency: "direct main"
- description:
- name: validated
- sha256: f4da18b50fa2aeda8d2f6e55bdf73759593abe3f9dd4aeece4e98bf3438e6a9f
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- vector_math:
- dependency: transitive
- description:
- name: vector_math
- sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- watcher:
- dependency: transitive
- description:
- name: watcher
- sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.2"
- webview_flutter:
- dependency: "direct main"
- description:
- name: webview_flutter
- sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.4"
- webview_flutter_android:
- dependency: transitive
- description:
- name: webview_flutter_android
- sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd"
- url: "https://pub.dev"
- source: hosted
- version: "2.10.4"
- webview_flutter_platform_interface:
- dependency: transitive
- description:
- name: webview_flutter_platform_interface
- sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf"
- url: "https://pub.dev"
- source: hosted
- version: "1.9.5"
- webview_flutter_wkwebview:
- dependency: transitive
- description:
- name: webview_flutter_wkwebview
- sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0
- url: "https://pub.dev"
- source: hosted
- version: "2.9.5"
- win32:
- dependency: transitive
- description:
- name: win32
- sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
- url: "https://pub.dev"
- source: hosted
- version: "3.1.3"
- woosignal:
- dependency: "direct main"
- description:
- name: woosignal
- sha256: "888629274da9083aca94102b45e963c92f820c8d6b8154eebf0424adfc4089c6"
- url: "https://pub.dev"
- source: hosted
- version: "3.3.0"
- wp_json_api:
- dependency: "direct main"
- description:
- name: wp_json_api
- sha256: ed8f33b8f8c87ca75ad4d936854b53cfacc0779f38de40400c9693753679647f
- url: "https://pub.dev"
- source: hosted
- version: "3.3.2"
- xdg_directories:
- dependency: transitive
- description:
- name: xdg_directories
- sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0+3"
- xml:
- dependency: transitive
- description:
- name: xml
- sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5"
- url: "https://pub.dev"
- source: hosted
- version: "6.2.2"
- yaml:
- dependency: transitive
- description:
- name: yaml
- sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.1"
-sdks:
- dart: ">=2.19.0 <3.0.0"
- flutter: ">=3.7.0-0"
diff --git a/LabelStoreMax/pubspec.yaml b/LabelStoreMax/pubspec.yaml
index 9bf879d..90642b3 100644
--- a/LabelStoreMax/pubspec.yaml
+++ b/LabelStoreMax/pubspec.yaml
@@ -1,7 +1,7 @@
# Official WooSignal App Template for WooCommerce
# Label StoreMax
-# Version: 6.5.1
+# Version: 6.6.0
# Author: Anthony Gordon
# Homepage: https://woosignal.com
# Documentation: https://woosignal.com/docs/app/label-storemax
@@ -22,27 +22,29 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
- sdk: '>=2.19.0 <3.0.0'
+ sdk: ">=2.17.0 <3.0.0"
+ flutter: ">=3.0.0"
dependencies:
google_fonts: ^4.0.3
- analyzer: ^4.2.0
- intl: ^0.17.0
- nylo_framework: ^4.1.4
- woosignal: ^3.3.0
- flutter_stripe: ^8.0.0+1
+ analyzer: ^5.12.0
+ intl: ^0.18.0
+ nylo_framework: ^5.0.0
+# woosignal: ^3.3.0
+ woosignal:
+ path: /Users/anthony/StudioProjects/woosignal-api
+# flutter_stripe: ^9.2.0
wp_json_api: ^3.3.2
cached_network_image: ^3.2.3
- package_info: ^2.0.2
+ package_info_plus: ^4.0.0
money_formatter: ^0.0.3
flutter_web_browser: ^0.17.1
webview_flutter: ^3.0.4
pull_to_refresh_flutter3: 2.0.1
url_launcher: ^6.1.6
bubble_tab_indicator: ^0.1.5
- razorpay_flutter: ^1.3.4
status_alert: ^1.0.1
- math_expressions: ^2.3.1
+ math_expressions: ^2.4.0
validated: ^2.0.0
flutter_spinkit: ^5.1.0
auto_size_text: ^3.0.0
@@ -51,8 +53,8 @@ dependencies:
flutter_rating_bar: ^4.0.1
flutter_staggered_grid_view: ^0.6.2
flutter_swiper_view: ^1.1.8
- firebase_messaging: ^14.2.5
- firebase_core: ^2.7.0
+ firebase_messaging: ^14.4.1
+ firebase_core: ^2.10.0
flutter:
sdk: flutter
flutter_localizations:
@@ -62,15 +64,16 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5
collection: ^1.15.0
+ flutter_stripe: ^9.1.1
dev_dependencies:
- flutter_launcher_icons: ^0.12.0
+ flutter_launcher_icons: ^0.13.1
lints: ^2.0.0
flutter_test:
sdk: flutter
# APP ICON
-flutter_icons:
+flutter_launcher_icons:
android: true
ios: true
image_path: "public/assets/app_icon/appicon.png"
diff --git a/README.md b/README.md
index e9cde53..3bfd23c 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
# WooCommerce App: Label StoreMax
-### Label StoreMax - v6.5.1
+### Label StoreMax - v6.6.0
[Official WooSignal WooCommerce App](https://woosignal.com)
@@ -45,7 +45,7 @@ Full documentation this available [here](https://woosignal.com/docs/app/ios/labe
- Change app name, logo, customize default language, currency + more
- Light and dark mode
- Theme customization
-- Stripe, Cash On Delivery, PayPal and RazorPay
+- Stripe, Cash On Delivery, PayPal
- Localized for en, es, pt, it, hi, fr, zh, tr, nl
- Orders show as normal in WooCommerce