diff --git a/LabelStoreMax/CHANGELOG.md b/LabelStoreMax/CHANGELOG.md index fdc54d1..d199a25 100644 --- a/LabelStoreMax/CHANGELOG.md +++ b/LabelStoreMax/CHANGELOG.md @@ -1,3 +1,9 @@ +## [6.10.1] - 2023-08-28 + +* Refactor project for Nylo 5.x. +* Fix AndroidManifest splash screen +* Pubspec.yaml dependency updates + ## [6.10.0] - 2023-08-21 * Small refactor to project diff --git a/LabelStoreMax/android/app/src/main/AndroidManifest.xml b/LabelStoreMax/android/app/src/main/AndroidManifest.xml index 19a268d..0843b6f 100644 --- a/LabelStoreMax/android/app/src/main/AndroidManifest.xml +++ b/LabelStoreMax/android/app/src/main/AndroidManifest.xml @@ -31,15 +31,7 @@ android:name="io.flutter.embedding.android.NormalTheme" android:resource="@style/NormalTheme" /> - - + diff --git a/LabelStoreMax/lib/app/providers/app_provider.dart b/LabelStoreMax/lib/app/providers/app_provider.dart index 0780814..d51ace1 100644 --- a/LabelStoreMax/lib/app/providers/app_provider.dart +++ b/LabelStoreMax/lib/app/providers/app_provider.dart @@ -95,6 +95,7 @@ class AppProvider implements NyProvider { nylo.addModelDecoders(modelDecoders); nylo.addValidationRules(validationRules); + nylo.toastNotification = getToastNotificationWidget; return nylo; } diff --git a/LabelStoreMax/lib/config/design.dart b/LabelStoreMax/lib/config/design.dart index f7dbae8..c5a4ba8 100644 --- a/LabelStoreMax/lib/config/design.dart +++ b/LabelStoreMax/lib/config/design.dart @@ -1,6 +1,9 @@ import 'package:flutter/cupertino.dart'; +import 'package:flutter_app/config/toast_notification.dart'; import 'package:flutter_app/resources/widgets/app_loader_widget.dart'; +import 'package:flutter_app/resources/widgets/toast_notification_widget.dart'; import 'package:flutter_app/resources/widgets/woosignal_ui.dart'; +import 'package:nylo_framework/nylo_framework.dart'; /* |-------------------------------------------------------------------------- @@ -16,3 +19,14 @@ Widget logo = StoreLogo(); Widget loader = AppLoaderWidget(); // resources/widgets/app_loader_widget.dart + +Widget getToastNotificationWidget({ + required ToastNotificationStyleType style, + Function(ToastNotificationStyleMetaHelper helper)? toastNotificationStyleMeta, Function? onDismiss}) { + if (toastNotificationStyleMeta == null) return SizedBox.shrink(); + + ToastMeta toastMeta = toastNotificationStyleMeta(NyToastNotificationStyleMetaHelper(style)); + + return ToastNotification(toastMeta, onDismiss: onDismiss); + // resources/widgets/toast_notification.dart +} \ No newline at end of file diff --git a/LabelStoreMax/lib/config/toast_notification.dart b/LabelStoreMax/lib/config/toast_notification.dart new file mode 100644 index 0000000..1da0779 --- /dev/null +++ b/LabelStoreMax/lib/config/toast_notification.dart @@ -0,0 +1,34 @@ +import 'package:nylo_framework/nylo_framework.dart'; + +/// ToastNotificationStyleMetaHelper is used to return +/// the correct value for the [ToastNotificationStyleType] toast style. +class NyToastNotificationStyleMetaHelper extends ToastNotificationStyleMetaHelper { + + NyToastNotificationStyleMetaHelper(ToastNotificationStyleType? style) : super(style); + + onSuccess() { + return ToastMeta.success(); + } + + onWarning() { + return ToastMeta.warning(); + } + + onInfo() { + return ToastMeta.info(); + } + + onDanger() { + return ToastMeta.danger(); + } + + // Example customizing a notification + // onSuccess() { + // return ToastMeta.success( + // title: "Hello", + // description: "World", + // action: () {}, + // backgroundColor: Colors.Yellow + // ); + // } +} \ No newline at end of file diff --git a/LabelStoreMax/lib/resources/pages/account_order_detail_page.dart b/LabelStoreMax/lib/resources/pages/account_order_detail_page.dart index 71215df..cad6b40 100644 --- a/LabelStoreMax/lib/resources/pages/account_order_detail_page.dart +++ b/LabelStoreMax/lib/resources/pages/account_order_detail_page.dart @@ -52,7 +52,7 @@ class _AccountOrderDetailPageState extends NyState { ), margin: EdgeInsets.only(left: 0), ), - title: afterNotNull(_orderId, child: () => Text("${trans("Order").capitalize()} #${_orderId.toString()}"), loadingPlaceholder: CupertinoActivityIndicator()), + title: afterNotNull(_orderId, child: () => Text("${trans("Order").capitalize()} #${_orderId.toString()}"), loading: CupertinoActivityIndicator()), centerTitle: true, ), resizeToAvoidBottomInset: false, diff --git a/LabelStoreMax/lib/resources/pages/browse_category_page.dart b/LabelStoreMax/lib/resources/pages/browse_category_page.dart index 9d79d08..9892f77 100644 --- a/LabelStoreMax/lib/resources/pages/browse_category_page.dart +++ b/LabelStoreMax/lib/resources/pages/browse_category_page.dart @@ -65,7 +65,7 @@ class _BrowseCategoryPageState extends NyState { children: [ Text(trans("Browse"), style: Theme.of(context).textTheme.titleMedium), - afterNotNull(productCategory, child: () => Text(parseHtmlString(productCategory!.name)), loadingPlaceholder: CupertinoActivityIndicator()) + afterNotNull(productCategory, child: () => Text(parseHtmlString(productCategory!.name)), loading: CupertinoActivityIndicator()) ], ), centerTitle: true, diff --git a/LabelStoreMax/lib/resources/pages/browse_search_page.dart b/LabelStoreMax/lib/resources/pages/browse_search_page.dart index ab876ca..8090da4 100644 --- a/LabelStoreMax/lib/resources/pages/browse_search_page.dart +++ b/LabelStoreMax/lib/resources/pages/browse_search_page.dart @@ -57,7 +57,7 @@ class _BrowseSearchState extends NyState { children: [ Text(trans("Search results for"), style: Theme.of(context).textTheme.titleMedium), - afterNotNull(_search, child: () => Text("\"" + _search! + "\""), loadingPlaceholder: CupertinoActivityIndicator()) + afterNotNull(_search, child: () => Text("\"" + _search! + "\""), loading: CupertinoActivityIndicator()) ], ), centerTitle: true, diff --git a/LabelStoreMax/lib/resources/widgets/toast_notification_widget.dart b/LabelStoreMax/lib/resources/widgets/toast_notification_widget.dart new file mode 100644 index 0000000..86910a3 --- /dev/null +++ b/LabelStoreMax/lib/resources/widgets/toast_notification_widget.dart @@ -0,0 +1,90 @@ +import 'package:animate_do/animate_do.dart'; +import 'package:flutter/material.dart'; +import 'package:nylo_framework/nylo_framework.dart'; + +class ToastNotification extends StatelessWidget { + const ToastNotification(ToastMeta toastMeta, {Function? onDismiss, Key? key}) : _toastMeta = toastMeta, _dismiss = onDismiss, super(key: key); + + final Function? _dismiss; + final ToastMeta _toastMeta; + + @override + Widget build(BuildContext context) { + return Stack(children: [ + InkWell( + onTap: () { + if (_toastMeta.action != null) { + _toastMeta.action!(); + } + }, + child: Container( + padding: EdgeInsets.symmetric(horizontal: 18.0), + margin: EdgeInsets.symmetric(horizontal: 8.0), + height: 100, + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(4), + ), + color: _toastMeta.color, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Pulse( + child: Container( + child: Center( + child: IconButton( + onPressed: () {}, + icon: _toastMeta.icon ?? SizedBox.shrink(), + padding: EdgeInsets.only(right: 16), + ), + ), + ), + infinite: true, + duration: Duration(milliseconds: 1500), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + _toastMeta.title.tr(), + style: Theme.of(context) + .textTheme + .headlineSmall! + .copyWith(color: Colors.white), + ), + Text( + _toastMeta.description.tr(), + style: Theme.of(context) + .textTheme + .bodyLarge! + .copyWith(color: Colors.white), + ), + ], + ), + ), + ], + ), + ), + ), + Positioned( + top: 0, + right: 0, + child: IconButton( + onPressed: () { + if (_dismiss != null) { + _dismiss!(); + } + }, + icon: Icon( + Icons.close, + color: Colors.white, + )), + ) + ]); + } +} + diff --git a/LabelStoreMax/pubspec.lock b/LabelStoreMax/pubspec.lock index a419c48..16047be 100644 --- a/LabelStoreMax/pubspec.lock +++ b/LabelStoreMax/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: a742f71d7f3484253a623b30e19256aa4668ecbb3de6ad1beb0bcf8d4777ecd8 + sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.5" analyzer: dependency: "direct main" description: @@ -26,7 +26,7 @@ packages: source: hosted version: "5.12.0" animate_do: - dependency: transitive + dependency: "direct main" description: name: animate_do sha256: "9aeacc1a7238f971c039bdf45d13c628be554a242e0251c4ddda09d19a1a923f" @@ -269,10 +269,10 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: a4a99204da264a0aa9d54a332ea0315ce7b0768075139c77abefe98093dd98be + sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389 url: "https://pub.dev" source: hosted - version: "2.14.0" + version: "2.15.1" firebase_core_platform_interface: dependency: transitive description: @@ -285,34 +285,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa" + sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973" url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "7a09d8c21147f009882a27c96de1918ea283f974d73cb6fae1d234bb9ec18d8b" + sha256: "6c1a2a047d6f165b7c5f947467ac5138731a2af82c7af1c12d691dbb834f6b73" url: "https://pub.dev" source: hosted - version: "14.6.4" + version: "14.6.7" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: e9e9dc48a3d8ffa67aaba3d6b1ebf74bc7d7d8c83d10b1458ff97878b9d8a2b0 + sha256: bcba58d28f8cda607a323240c6d314c2c62b62ebfbb0f2d704ebefef07b52b5f url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "4.5.6" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "381f217e41e0e407baf8df21787b97e46fabfacefd6a953425be3a6cdf2269f4" + sha256: "962d09ec9dfa486cbbc218258ad41e8ec7997a2eba46919049496e1cafd960c5" url: "https://pub.dev" source: hosted - version: "3.5.3" + version: "3.5.6" flare_flutter: dependency: transitive description: @@ -439,10 +439,10 @@ packages: dependency: "direct main" description: name: flutter_stripe - sha256: fb1a0647867a26b1fced98706ef96c664a5ae2579e29b67af5ddd054e01d83df + sha256: "2acc4a31f9fed946a1fb230d708169ff0448f2a356fc728780ced52eb0df7712" url: "https://pub.dev" source: hosted - version: "9.2.2" + version: "9.3.0" flutter_styled_toast: dependency: transitive description: @@ -641,18 +641,18 @@ packages: dependency: "direct main" description: name: nylo_framework - sha256: e84667df8af356072e089b9ac2e9ab7dc8e22a3b41e7e59bf83f45ce6bd6c51c + sha256: "535684c9fd422f7a45ad83b1228ea42a87782a0655aa227c44fe75b9d3bcb8c5" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.3.2" nylo_support: dependency: transitive description: name: nylo_support - sha256: c036f49f235fa06e42f0d7615f98d522762f428b8f912d2ce819b2d99c3ae780 + sha256: "903f510366ca1af7982ec69d45fd8b9bd25c9cdbf6380f8736cd50fa37eed8cd" url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "5.7.0" octo_image: dependency: transitive description: @@ -673,10 +673,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: ceb027f6bc6a60674a233b4a90a7658af1aebdea833da0b5b53c1e9821a78c7b + sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.0" package_info_plus_platform_interface: dependency: transitive description: @@ -958,26 +958,26 @@ packages: dependency: transitive description: name: stripe_android - sha256: e5557f2a81cb5070d48edf33168ca3891a22c63f0be98d90edeba54c4328dd21 + sha256: "0396c877823e84f0053f7d57fed506798635a9d48f0f044859c85216db6194fd" url: "https://pub.dev" source: hosted - version: "9.2.1" + version: "9.3.0" stripe_ios: dependency: transitive description: name: stripe_ios - sha256: e397609a5083b79706814342b40a2a58f1b97ecab2b9d6cae8d8e9f59646fc8c + sha256: "81092043f0ae86ba6f5c16f76b16bbc97c4579eee58130e84cf4b30e36b4b649" url: "https://pub.dev" source: hosted - version: "9.2.1" + version: "9.3.1" stripe_platform_interface: dependency: transitive description: name: stripe_platform_interface - sha256: "321de409f41088e842140a8e8b334b1111cc6072dfb2fa9e6452155187e8ff2d" + sha256: "554380d197004cff235ae0327f1c3b596a3d22575af83e07c15ed07b6b62c45e" url: "https://pub.dev" source: hosted - version: "9.2.2" + version: "9.3.0" synchronized: dependency: transitive description: diff --git a/LabelStoreMax/pubspec.yaml b/LabelStoreMax/pubspec.yaml index df4ea89..e27883e 100644 --- a/LabelStoreMax/pubspec.yaml +++ b/LabelStoreMax/pubspec.yaml @@ -1,7 +1,7 @@ # Official WooSignal App Template for WooCommerce # Label StoreMax -# Version: 6.10.0 +# Version: 6.10.1 # Author: Anthony Gordon # Homepage: https://woosignal.com # Documentation: https://woosignal.com/docs/app/label-storemax @@ -29,11 +29,11 @@ dependencies: google_fonts: ^4.0.5 analyzer: ^5.12.0 intl: ^0.18.0 - nylo_framework: ^5.2.0 + nylo_framework: ^5.3.2 woosignal: ^3.8.0 wp_json_api: ^3.3.2 cached_network_image: ^3.2.3 - package_info_plus: ^4.0.2 + package_info_plus: ^4.1.0 money_formatter: ^0.0.3 flutter_web_browser: ^0.17.1 webview_flutter: 3.0.4 @@ -50,8 +50,8 @@ dependencies: flutter_rating_bar: ^4.0.1 flutter_staggered_grid_view: ^0.6.2 flutter_swiper_view: ^1.1.8 - firebase_messaging: ^14.6.4 - firebase_core: ^2.14.0 + firebase_messaging: ^14.6.7 + firebase_core: ^2.15.1 flutter: sdk: flutter flutter_localizations: @@ -61,8 +61,9 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.5 collection: ^1.17.1 - flutter_stripe: ^9.2.2 + flutter_stripe: ^9.3.0 razorpay_flutter: ^1.3.5 + animate_do: ^3.0.2 dependency_overrides: http: ^1.0.0