Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b279212a95 | |||
| ed1a9d70fb | |||
| 4f11e7bb00 | |||
|
|
2f9118085c | ||
|
|
c620aa71cc | ||
|
|
63244606be | ||
|
|
3b350dbefb | ||
|
|
6deab507d8 | ||
|
|
a2698557ea |
3
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@ -1,9 +1,9 @@
|
|||||||
# *<! ------ App ------!>*
|
# *<! ------ App ------!>*
|
||||||
|
|
||||||
APP_NAME="MyApp"
|
APP_NAME="Raster"
|
||||||
APP_ENV="local"
|
APP_ENV="local"
|
||||||
APP_DEBUG="true"
|
APP_DEBUG="true"
|
||||||
APP_URL="https://mywoocommercestore.com"
|
APP_URL="https://rasterdoo.com"
|
||||||
|
|
||||||
ASSET_PATH_PUBLIC="public/assets/"
|
ASSET_PATH_PUBLIC="public/assets/"
|
||||||
ASSET_PATH_IMAGES="public/assets/images"
|
ASSET_PATH_IMAGES="public/assets/images"
|
||||||
@ -14,12 +14,12 @@ DARK_THEME_ID="default_dark_theme"
|
|||||||
|
|
||||||
# *<! ------ Language ------!>*
|
# *<! ------ Language ------!>*
|
||||||
|
|
||||||
DEFAULT_LOCALE=null
|
DEFAULT_LOCALE="en"
|
||||||
# supports: "en" (English), "es" (Spanish), "fr" (French), "hi" (Hindi), "it" (Italian), "pt" (Portuguese) or "zh" (Simplified Chinese)
|
# supports: "en" (English), "es" (Spanish), "fr" (French), "hi" (Hindi), "it" (Italian), "pt" (Portuguese) or "zh" (Simplified Chinese)
|
||||||
|
|
||||||
# *<! ------ WooSignal Config ------!>*
|
# *<! ------ WooSignal Config ------!>*
|
||||||
|
|
||||||
APP_KEY="your app key"
|
APP_KEY="app_50818d11780aaba6b545076dea5b90"
|
||||||
# App key from WooSignal link: https://woosignal.com/dashboard
|
# App key from WooSignal link: https://woosignal.com/dashboard
|
||||||
|
|
||||||
# *<! ------ STRIPE (OPTIONAL) ------!>*
|
# *<! ------ STRIPE (OPTIONAL) ------!>*
|
||||||
@ -52,4 +52,7 @@ PRODUCT_PLACEHOLDER_IMAGE="https://woosignal.com/images/woocommerce-placeholder.
|
|||||||
# Sets the default placeholder image for products with no image
|
# Sets the default placeholder image for products with no image
|
||||||
|
|
||||||
AUTH_USER_KEY="AUTH_USER"
|
AUTH_USER_KEY="AUTH_USER"
|
||||||
FCM_ENABLED=false
|
FCM_ENABLED=null
|
||||||
|
|
||||||
|
ENCRYPT_KEY=null
|
||||||
|
ENCRYPT_SECRET=null
|
||||||
@ -1,3 +1,31 @@
|
|||||||
|
## [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
|
||||||
|
* Pubspec.yaml dependency updates
|
||||||
|
|
||||||
|
## [6.9.0] - 2023-07-13
|
||||||
|
|
||||||
|
* Pull firebase config via woosignal api
|
||||||
|
* New encrypt key and secret added to .env
|
||||||
|
* fix fetchRelated to return "publish" products
|
||||||
|
* Pubspec.yaml dependency updates
|
||||||
|
|
||||||
|
## [6.8.2] - 2023-07-04
|
||||||
|
|
||||||
|
* Update gradle + kotlin versions.
|
||||||
|
* Pubspec.yaml dependency updates.
|
||||||
|
|
||||||
|
## [6.8.1] - 2023-07-03
|
||||||
|
|
||||||
|
* Fix auth bug.
|
||||||
|
* Pubspec.yaml dependency updates.
|
||||||
|
|
||||||
## [6.8.0] - 2023-07-03
|
## [6.8.0] - 2023-07-03
|
||||||
|
|
||||||
* UI fixes.
|
* UI fixes.
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:label="Label StoreMax"
|
android:label="Raster Knjizara"
|
||||||
android:icon="@mipmap/launcher_icon">
|
android:icon="@mipmap/launcher_icon">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
@ -31,15 +31,7 @@
|
|||||||
android:name="io.flutter.embedding.android.NormalTheme"
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
android:resource="@style/NormalTheme"
|
android:resource="@style/NormalTheme"
|
||||||
/>
|
/>
|
||||||
<!-- Displays an Android View that continues showing the launch screen
|
|
||||||
Drawable until Flutter paints its first frame, then this splash
|
|
||||||
screen fades out. A splash screen is useful to avoid any visual
|
|
||||||
gap between the end of Android's launch screen and the painting of
|
|
||||||
Flutter's first frame. -->
|
|
||||||
<meta-data
|
|
||||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
|
||||||
android:resource="@drawable/launch_background"
|
|
||||||
/>
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 12 KiB |
@ -1,12 +1,12 @@
|
|||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlin_version = '1.6.10'
|
ext.kotlin_version = '1.7.10'
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.0.1'
|
classpath 'com.android.tools.build:gradle:7.3.0'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -26,6 +26,6 @@ subprojects {
|
|||||||
project.evaluationDependsOn(':app')
|
project.evaluationDependsOn(':app')
|
||||||
}
|
}
|
||||||
|
|
||||||
task clean(type: Delete) {
|
tasks.register("clean", Delete) {
|
||||||
delete rootProject.buildDir
|
delete rootProject.buildDir
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
|
||||||
|
|||||||
@ -155,7 +155,7 @@
|
|||||||
97C146E61CF9000F007C117D /* Project object */ = {
|
97C146E61CF9000F007C117D /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 1300;
|
LastUpgradeCheck = 1430;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
97C146ED1CF9000F007C117D = {
|
97C146ED1CF9000F007C117D = {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1300"
|
LastUpgradeVersion = "1430"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@ -22,7 +22,10 @@ class AppProvider implements NyProvider {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
await WooSignal.instance
|
await WooSignal.instance
|
||||||
.init(appKey: getEnv('APP_KEY'), debugMode: getEnv('APP_DEBUG'));
|
.init(appKey: getEnv('APP_KEY'), debugMode: getEnv('APP_DEBUG'),
|
||||||
|
encryptKey: getEnv('ENCRYPT_KEY', defaultValue: null),
|
||||||
|
encryptSecret: getEnv('ENCRYPT_SECRET', defaultValue: null)
|
||||||
|
);
|
||||||
|
|
||||||
AppHelper.instance.appConfig = WooSignalApp();
|
AppHelper.instance.appConfig = WooSignalApp();
|
||||||
AppHelper.instance.appConfig!.themeFont = "Poppins";
|
AppHelper.instance.appConfig!.themeFont = "Poppins";
|
||||||
@ -46,7 +49,7 @@ class AppProvider implements NyProvider {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// WooSignal Setup
|
// WooSignal Setup
|
||||||
WooSignalApp? wooSignalApp = await (appWooSignal((api) => api.getApp()));
|
WooSignalApp? wooSignalApp = await (appWooSignal((api) => api.getApp(encrypted: shouldEncrypt())));
|
||||||
Locale locale = Locale('en');
|
Locale locale = Locale('en');
|
||||||
|
|
||||||
if (wooSignalApp != null) {
|
if (wooSignalApp != null) {
|
||||||
@ -92,6 +95,7 @@ class AppProvider implements NyProvider {
|
|||||||
|
|
||||||
nylo.addModelDecoders(modelDecoders);
|
nylo.addModelDecoders(modelDecoders);
|
||||||
nylo.addValidationRules(validationRules);
|
nylo.addValidationRules(validationRules);
|
||||||
|
nylo.toastNotification = getToastNotificationWidget;
|
||||||
|
|
||||||
return nylo;
|
return nylo;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import 'package:firebase_core/firebase_core.dart';
|
import 'package:firebase_core/firebase_core.dart';
|
||||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||||
|
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||||
import 'package:flutter_app/firebase_options.dart';
|
import 'package:flutter_app/firebase_options.dart';
|
||||||
import 'package:nylo_framework/nylo_framework.dart';
|
import 'package:nylo_framework/nylo_framework.dart';
|
||||||
import 'package:woosignal/woosignal.dart';
|
import 'package:woosignal/woosignal.dart';
|
||||||
@ -14,7 +15,12 @@ class FirebaseProvider implements NyProvider {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
afterBoot(Nylo nylo) async {
|
afterBoot(Nylo nylo) async {
|
||||||
if (getEnv('FCM_ENABLED', defaultValue: false) != true) return;
|
bool? firebaseFcmIsEnabled = AppHelper.instance.appConfig?.firebaseFcmIsEnabled;
|
||||||
|
if (firebaseFcmIsEnabled == null) {
|
||||||
|
firebaseFcmIsEnabled = getEnv('FCM_ENABLED', defaultValue: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (firebaseFcmIsEnabled != true) return;
|
||||||
|
|
||||||
await Firebase.initializeApp(
|
await Firebase.initializeApp(
|
||||||
options: DefaultFirebaseOptions.currentPlatform,
|
options: DefaultFirebaseOptions.currentPlatform,
|
||||||
|
|||||||
@ -33,16 +33,16 @@ razorPay(context,
|
|||||||
Order? order = await appWooSignal((api) => api.createOrder(orderWC));
|
Order? order = await appWooSignal((api) => api.createOrder(orderWC));
|
||||||
|
|
||||||
if (order != null) {
|
if (order != null) {
|
||||||
Cart.getInstance.clear();
|
|
||||||
Navigator.pushNamed(context, "/checkout-status", arguments: order);
|
|
||||||
} else {
|
|
||||||
showToastNotification(
|
showToastNotification(
|
||||||
context,
|
context,
|
||||||
title: "Error".tr(),
|
title: "Error".tr(),
|
||||||
description: trans("Something went wrong, please contact our store"),
|
description: trans("Something went wrong, please contact our store"),
|
||||||
);
|
);
|
||||||
state.reloadState(showLoader: false);
|
state.reloadState(showLoader: false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
Cart.getInstance.clear();
|
||||||
|
Navigator.pushNamed(context, "/checkout-status", arguments: order);
|
||||||
});
|
});
|
||||||
|
|
||||||
razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, (PaymentFailureResponse response) {
|
razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, (PaymentFailureResponse response) {
|
||||||
|
|||||||
@ -118,7 +118,7 @@ stripePay(context,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Navigator.pushNamed(context, "/checkout-status", arguments: order);
|
routeTo('/checkout-status', navigationType: NavigationType.pushAndForgetAll, data: order);
|
||||||
} on StripeException catch (e) {
|
} on StripeException catch (e) {
|
||||||
if (getEnv('APP_DEBUG', defaultValue: true)) {
|
if (getEnv('APP_DEBUG', defaultValue: true)) {
|
||||||
NyLogger.error(e.error.message!);
|
NyLogger.error(e.error.message!);
|
||||||
|
|||||||
@ -48,7 +48,7 @@ import 'package:flutter/services.dart' show rootBundle;
|
|||||||
Future<User?> getUser() async =>
|
Future<User?> getUser() async =>
|
||||||
(await (NyStorage.read<User>(SharedKey.authUser)));
|
(await (NyStorage.read<User>(SharedKey.authUser)));
|
||||||
|
|
||||||
Future appWooSignal(Function(WooSignal) api) async {
|
Future appWooSignal(Function(WooSignal api) api) async {
|
||||||
return await api(WooSignal.instance);
|
return await api(WooSignal.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,3 +668,15 @@ bool isProductNew(Product? product) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool shouldEncrypt() {
|
||||||
|
String? encryptKey = getEnv('ENCRYPT_KEY', defaultValue: "");
|
||||||
|
if (encryptKey == null || encryptKey == "") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String? encryptSecret = getEnv('ENCRYPT_KEY', defaultValue: "");
|
||||||
|
if (encryptSecret == null || encryptSecret == "") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@ -1,6 +1,9 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
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/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:flutter_app/resources/widgets/woosignal_ui.dart';
|
||||||
|
import 'package:nylo_framework/nylo_framework.dart';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -16,3 +19,14 @@ Widget logo = StoreLogo();
|
|||||||
|
|
||||||
Widget loader = AppLoaderWidget();
|
Widget loader = AppLoaderWidget();
|
||||||
// resources/widgets/app_loader_widget.dart
|
// 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
|
||||||
|
}
|
||||||
@ -15,7 +15,7 @@ import 'package:nylo_framework/nylo_framework.dart';
|
|||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const appPaymentGateways = [];
|
const appPaymentGateways = ["CashOnDelivery"];
|
||||||
// Available: "Stripe", "CashOnDelivery", "PayPal", "RazorPay"
|
// Available: "Stripe", "CashOnDelivery", "PayPal", "RazorPay"
|
||||||
// e.g. app_payment_gateways = ["Stripe", "CashOnDelivery"]; will only use Stripe and Cash on Delivery.
|
// e.g. app_payment_gateways = ["Stripe", "CashOnDelivery"]; will only use Stripe and Cash on Delivery.
|
||||||
|
|
||||||
|
|||||||
34
LabelStoreMax/lib/config/toast_notification.dart
Normal file
@ -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
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
|
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
|
||||||
import 'package:flutter/foundation.dart'
|
import 'package:flutter/foundation.dart'
|
||||||
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
||||||
|
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||||
|
|
||||||
/// Default [FirebaseOptions] for use with your Firebase apps.
|
/// Default [FirebaseOptions] for use with your Firebase apps.
|
||||||
class DefaultFirebaseOptions {
|
class DefaultFirebaseOptions {
|
||||||
@ -14,9 +15,33 @@ class DefaultFirebaseOptions {
|
|||||||
}
|
}
|
||||||
switch (defaultTargetPlatform) {
|
switch (defaultTargetPlatform) {
|
||||||
case TargetPlatform.android:
|
case TargetPlatform.android:
|
||||||
return android;
|
if (AppHelper.instance.appConfig?.firebaseOptionsAndroid == null) {
|
||||||
|
throw UnsupportedError(
|
||||||
|
'Add a valid Firebase json config on https://woosignal.com for your WooCommerce store',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return FirebaseOptions(
|
||||||
|
apiKey: AppHelper.instance.appConfig!.firebaseOptionsAndroid!['apiKey'],
|
||||||
|
appId: AppHelper.instance.appConfig!.firebaseOptionsAndroid!['appId'],
|
||||||
|
messagingSenderId: AppHelper.instance.appConfig!.firebaseOptionsAndroid!['messagingSenderId'],
|
||||||
|
projectId: AppHelper.instance.appConfig!.firebaseOptionsAndroid!['projectId'],
|
||||||
|
storageBucket: AppHelper.instance.appConfig!.firebaseOptionsAndroid!['storageBucket'],
|
||||||
|
);
|
||||||
case TargetPlatform.iOS:
|
case TargetPlatform.iOS:
|
||||||
return ios;
|
if (AppHelper.instance.appConfig?.firebaseOptionsIos == null) {
|
||||||
|
throw UnsupportedError(
|
||||||
|
'Add a valid Firebase plist config on https://woosignal.com for your WooCommerce store',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return FirebaseOptions(
|
||||||
|
apiKey: AppHelper.instance.appConfig!.firebaseOptionsIos!['apiKey'],
|
||||||
|
appId: AppHelper.instance.appConfig!.firebaseOptionsIos!['appId'],
|
||||||
|
messagingSenderId: AppHelper.instance.appConfig!.firebaseOptionsIos!['messagingSenderId'],
|
||||||
|
projectId: AppHelper.instance.appConfig!.firebaseOptionsIos!['projectId'],
|
||||||
|
storageBucket: AppHelper.instance.appConfig!.firebaseOptionsIos!['storageBucket'],
|
||||||
|
iosClientId: AppHelper.instance.appConfig!.firebaseOptionsIos!['iosClientId'],
|
||||||
|
iosBundleId: AppHelper.instance.appConfig!.firebaseOptionsIos!['iosBundleId'],
|
||||||
|
);
|
||||||
case TargetPlatform.macOS:
|
case TargetPlatform.macOS:
|
||||||
throw UnsupportedError(
|
throw UnsupportedError(
|
||||||
'DefaultFirebaseOptions have not been configured for macos - '
|
'DefaultFirebaseOptions have not been configured for macos - '
|
||||||
@ -38,22 +63,4 @@ class DefaultFirebaseOptions {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const FirebaseOptions android = FirebaseOptions(
|
|
||||||
apiKey: '',
|
|
||||||
appId: '',
|
|
||||||
messagingSenderId: '',
|
|
||||||
projectId: '',
|
|
||||||
storageBucket: '',
|
|
||||||
);
|
|
||||||
|
|
||||||
static const FirebaseOptions ios = FirebaseOptions(
|
|
||||||
apiKey: '',
|
|
||||||
appId: '',
|
|
||||||
messagingSenderId: '',
|
|
||||||
projectId: '',
|
|
||||||
storageBucket: '',
|
|
||||||
iosClientId: '',
|
|
||||||
iosBundleId: '',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -226,7 +226,7 @@ class _AccountLandingPageState extends NyState<AccountLandingPage> {
|
|||||||
String? token = wpUserLoginResponse.data!.userToken;
|
String? token = wpUserLoginResponse.data!.userToken;
|
||||||
String userId = wpUserLoginResponse.data!.userId.toString();
|
String userId = wpUserLoginResponse.data!.userId.toString();
|
||||||
User user = User.fromUserAuthResponse(token: token, userId: userId);
|
User user = User.fromUserAuthResponse(token: token, userId: userId);
|
||||||
await Auth.set(user, key: SharedKey.authUser);
|
await user.save(SharedKey.authUser);
|
||||||
|
|
||||||
showToastNotification(context,
|
showToastNotification(context,
|
||||||
title: trans("Hello"),
|
title: trans("Hello"),
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class _AccountOrderDetailPageState extends NyState<AccountOrderDetailPage> {
|
|||||||
),
|
),
|
||||||
margin: EdgeInsets.only(left: 0),
|
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,
|
centerTitle: true,
|
||||||
),
|
),
|
||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
|
|||||||
@ -236,7 +236,7 @@ class _AccountRegistrationPageState extends NyState<AccountRegistrationPage> {
|
|||||||
String? token = wpUserRegisterResponse.data!.userToken;
|
String? token = wpUserRegisterResponse.data!.userToken;
|
||||||
String userId = wpUserRegisterResponse.data!.userId.toString();
|
String userId = wpUserRegisterResponse.data!.userId.toString();
|
||||||
User user = User.fromUserAuthResponse(token: token, userId: userId);
|
User user = User.fromUserAuthResponse(token: token, userId: userId);
|
||||||
await Auth.set(user, key: SharedKey.authUser);
|
await user.save(SharedKey.authUser);
|
||||||
|
|
||||||
await WPJsonAPI.instance.api((request) => request.wpUpdateUserInfo(token,
|
await WPJsonAPI.instance.api((request) => request.wpUpdateUserInfo(token,
|
||||||
firstName: firstName, lastName: lastName));
|
firstName: firstName, lastName: lastName));
|
||||||
|
|||||||
@ -65,7 +65,7 @@ class _BrowseCategoryPageState extends NyState<BrowseCategoryPage> {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(trans("Browse"),
|
Text(trans("Browse"),
|
||||||
style: Theme.of(context).textTheme.titleMedium),
|
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,
|
centerTitle: true,
|
||||||
|
|||||||
@ -57,7 +57,7 @@ class _BrowseSearchState extends NyState<BrowseSearchPage> {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(trans("Search results for"),
|
Text(trans("Search results for"),
|
||||||
style: Theme.of(context).textTheme.titleMedium),
|
style: Theme.of(context).textTheme.titleMedium),
|
||||||
afterNotNull(_search, child: () => Text("\"" + _search! + "\""), loadingPlaceholder: CupertinoActivityIndicator())
|
afterNotNull(_search, child: () => Text("\"" + _search! + "\""), loading: CupertinoActivityIndicator())
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
|
|||||||
@ -20,7 +20,7 @@ class AppVersionWidget extends StatelessWidget {
|
|||||||
return NyFutureBuilder<PackageInfo>(
|
return NyFutureBuilder<PackageInfo>(
|
||||||
future: PackageInfo.fromPlatform(),
|
future: PackageInfo.fromPlatform(),
|
||||||
child: (BuildContext context, data) => Padding(
|
child: (BuildContext context, data) => Padding(
|
||||||
child: Text("${trans("Version")}: ${data.version}",
|
child: Text("${trans("Version")}: ${data?.version}",
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyMedium!
|
.bodyMedium!
|
||||||
|
|||||||
@ -41,6 +41,8 @@ class _CartIconWidgetState extends State<CartIconWidget> {
|
|||||||
future: Cart.getInstance.getCart(),
|
future: Cart.getInstance.getCart(),
|
||||||
child: (BuildContext context,
|
child: (BuildContext context,
|
||||||
data) {
|
data) {
|
||||||
|
if (data == null) return SizedBox.shrink();
|
||||||
|
|
||||||
List<int?> cartItems =
|
List<int?> cartItems =
|
||||||
data.map((e) => e.quantity).toList();
|
data.map((e) => e.quantity).toList();
|
||||||
String cartValue = "0";
|
String cartValue = "0";
|
||||||
|
|||||||
@ -55,6 +55,8 @@ class ProductDetailRelatedProductsWidget extends StatelessWidget {
|
|||||||
child: NyFutureBuilder<List<Product>>(
|
child: NyFutureBuilder<List<Product>>(
|
||||||
future: fetchRelated(),
|
future: fetchRelated(),
|
||||||
child: (context, relatedProducts) {
|
child: (context, relatedProducts) {
|
||||||
|
if (relatedProducts == null) return SizedBox.shrink();
|
||||||
|
|
||||||
if (relatedProducts.isEmpty) {
|
if (relatedProducts.isEmpty) {
|
||||||
return SizedBox.shrink();
|
return SizedBox.shrink();
|
||||||
}
|
}
|
||||||
@ -75,6 +77,6 @@ class ProductDetailRelatedProductsWidget extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<List<Product>> fetchRelated() async => await (appWooSignal(
|
Future<List<Product>> fetchRelated() async => await (appWooSignal(
|
||||||
(api) => api.getProducts(perPage: 100, include: product!.relatedIds),
|
(api) => api.getProducts(perPage: 100, include: product!.relatedIds, status: "publish"),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,6 +93,15 @@ class _ProductDetailReviewsWidgetState
|
|||||||
NyFutureBuilder<List<ProductReview>>(
|
NyFutureBuilder<List<ProductReview>>(
|
||||||
future: fetchReviews(),
|
future: fetchReviews(),
|
||||||
child: (context, reviews) {
|
child: (context, reviews) {
|
||||||
|
if (reviews == null) {
|
||||||
|
return Container(
|
||||||
|
child: ListTile(
|
||||||
|
title: Text(
|
||||||
|
trans('There are no reviews yet.'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
int reviewsCount = reviews.length;
|
int reviewsCount = reviews.length;
|
||||||
List<Widget> childrenWidgets = [];
|
List<Widget> childrenWidgets = [];
|
||||||
List<ProductDetailReviewTileWidget> children = reviews
|
List<ProductDetailReviewTileWidget> children = reviews
|
||||||
|
|||||||
@ -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,
|
||||||
|
)),
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 77 KiB |
@ -13,10 +13,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: _flutterfire_internals
|
name: _flutterfire_internals
|
||||||
sha256: a742f71d7f3484253a623b30e19256aa4668ecbb3de6ad1beb0bcf8d4777ecd8
|
sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.3"
|
version: "1.3.5"
|
||||||
analyzer:
|
analyzer:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -26,7 +26,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "5.12.0"
|
version: "5.12.0"
|
||||||
animate_do:
|
animate_do:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: animate_do
|
name: animate_do
|
||||||
sha256: "9aeacc1a7238f971c039bdf45d13c628be554a242e0251c4ddda09d19a1a923f"
|
sha256: "9aeacc1a7238f971c039bdf45d13c628be554a242e0251c4ddda09d19a1a923f"
|
||||||
@ -49,6 +49,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.2"
|
version: "2.4.2"
|
||||||
|
asn1lib:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: asn1lib
|
||||||
|
sha256: b74e3842a52c61f8819a1ec8444b4de5419b41a7465e69d4aa681445377398b0
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.1"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -141,10 +149,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
|
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.17.1"
|
version: "1.17.2"
|
||||||
convert:
|
convert:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -177,14 +185,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.5"
|
version: "1.0.5"
|
||||||
dart_style:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: dart_style
|
|
||||||
sha256: f4f1f73ab3fd2afcbcca165ee601fe980d966af6a21b5970c6c9376955c528ad
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.3.1"
|
|
||||||
device_info_plus:
|
device_info_plus:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -209,6 +209,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.2.1+1"
|
version: "5.2.1+1"
|
||||||
|
encrypt:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: encrypt
|
||||||
|
sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "5.0.1"
|
||||||
|
equatable:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: equatable
|
||||||
|
sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.5"
|
||||||
|
event_bus_plus:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: event_bus_plus
|
||||||
|
sha256: cbd27754d4c567f78fc88e7875e26c31d866d919f220523f34b29bf008f8fb1a
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.6.1"
|
||||||
eventify:
|
eventify:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -245,10 +269,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: firebase_core
|
name: firebase_core
|
||||||
sha256: a4a99204da264a0aa9d54a332ea0315ce7b0768075139c77abefe98093dd98be
|
sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.14.0"
|
version: "2.15.1"
|
||||||
firebase_core_platform_interface:
|
firebase_core_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -261,34 +285,34 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_core_web
|
name: firebase_core_web
|
||||||
sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa"
|
sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.0"
|
version: "2.7.0"
|
||||||
firebase_messaging:
|
firebase_messaging:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging
|
name: firebase_messaging
|
||||||
sha256: "7a09d8c21147f009882a27c96de1918ea283f974d73cb6fae1d234bb9ec18d8b"
|
sha256: "6c1a2a047d6f165b7c5f947467ac5138731a2af82c7af1c12d691dbb834f6b73"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.6.4"
|
version: "14.6.7"
|
||||||
firebase_messaging_platform_interface:
|
firebase_messaging_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging_platform_interface
|
name: firebase_messaging_platform_interface
|
||||||
sha256: e9e9dc48a3d8ffa67aaba3d6b1ebf74bc7d7d8c83d10b1458ff97878b9d8a2b0
|
sha256: bcba58d28f8cda607a323240c6d314c2c62b62ebfbb0f2d704ebefef07b52b5f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.5.3"
|
version: "4.5.6"
|
||||||
firebase_messaging_web:
|
firebase_messaging_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging_web
|
name: firebase_messaging_web
|
||||||
sha256: "381f217e41e0e407baf8df21787b97e46fabfacefd6a953425be3a6cdf2269f4"
|
sha256: "962d09ec9dfa486cbbc218258ad41e8ec7997a2eba46919049496e1cafd960c5"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.5.3"
|
version: "3.5.6"
|
||||||
flare_flutter:
|
flare_flutter:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -415,10 +439,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_stripe
|
name: flutter_stripe
|
||||||
sha256: fb1a0647867a26b1fced98706ef96c664a5ae2579e29b67af5ddd054e01d83df
|
sha256: "2acc4a31f9fed946a1fb230d708169ff0448f2a356fc728780ced52eb0df7712"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.2.2"
|
version: "9.3.0"
|
||||||
flutter_styled_toast:
|
flutter_styled_toast:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -537,10 +561,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: intl
|
name: intl
|
||||||
sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
|
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.18.0"
|
version: "0.18.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -557,14 +581,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.8.1"
|
version: "4.8.1"
|
||||||
json_dart_generator:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: json_dart_generator
|
|
||||||
sha256: "88c710a9278e1f8a9ad65a695350153f517d7deeca293ea45c6f997c066437a5"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.0+1"
|
|
||||||
lints:
|
lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@ -573,22 +589,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.1"
|
||||||
|
logger:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: logger
|
||||||
|
sha256: "7ad7215c15420a102ec687bb320a7312afd449bac63bfb1c60d9787c27b9767f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.0"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
|
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.15"
|
version: "0.12.16"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
version: "0.5.0"
|
||||||
math_expressions:
|
math_expressions:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -617,18 +641,18 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: nylo_framework
|
name: nylo_framework
|
||||||
sha256: a10e1ea240e04aa64a90a6170bc2eebd585b9c0f85b1557e323c5a49312add2b
|
sha256: "535684c9fd422f7a45ad83b1228ea42a87782a0655aa227c44fe75b9d3bcb8c5"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.1.1"
|
version: "5.3.2"
|
||||||
nylo_support:
|
nylo_support:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: nylo_support
|
name: nylo_support
|
||||||
sha256: "09c5eace0c4fa4cef5148b3b7820fd0a8b24154c964c34c1396372315ef815d6"
|
sha256: "903f510366ca1af7982ec69d45fd8b9bd25c9cdbf6380f8736cd50fa37eed8cd"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.3.1"
|
version: "5.7.0"
|
||||||
octo_image:
|
octo_image:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -649,10 +673,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: package_info_plus
|
name: package_info_plus
|
||||||
sha256: ceb027f6bc6a60674a233b4a90a7658af1aebdea833da0b5b53c1e9821a78c7b
|
sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.1.0"
|
||||||
package_info_plus_platform_interface:
|
package_info_plus_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -878,10 +902,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_span
|
name: source_span
|
||||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.10.0"
|
||||||
sqflite:
|
sqflite:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -934,26 +958,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: stripe_android
|
name: stripe_android
|
||||||
sha256: e5557f2a81cb5070d48edf33168ca3891a22c63f0be98d90edeba54c4328dd21
|
sha256: "0396c877823e84f0053f7d57fed506798635a9d48f0f044859c85216db6194fd"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.2.1"
|
version: "9.3.0"
|
||||||
stripe_ios:
|
stripe_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: stripe_ios
|
name: stripe_ios
|
||||||
sha256: e397609a5083b79706814342b40a2a58f1b97ecab2b9d6cae8d8e9f59646fc8c
|
sha256: "81092043f0ae86ba6f5c16f76b16bbc97c4579eee58130e84cf4b30e36b4b649"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.2.1"
|
version: "9.3.1"
|
||||||
stripe_platform_interface:
|
stripe_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: stripe_platform_interface
|
name: stripe_platform_interface
|
||||||
sha256: "321de409f41088e842140a8e8b334b1111cc6072dfb2fa9e6452155187e8ff2d"
|
sha256: "554380d197004cff235ae0327f1c3b596a3d22575af83e07c15ed07b6b62c45e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.2.2"
|
version: "9.3.0"
|
||||||
synchronized:
|
synchronized:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -974,10 +998,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
|
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.1"
|
version: "0.6.0"
|
||||||
theme_provider:
|
theme_provider:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -998,10 +1022,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: url_launcher
|
name: url_launcher
|
||||||
sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3
|
sha256: "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.11"
|
version: "6.1.12"
|
||||||
url_launcher_android:
|
url_launcher_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1090,6 +1114,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web
|
||||||
|
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.4-beta"
|
||||||
webview_flutter:
|
webview_flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -1142,10 +1174,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: woosignal
|
name: woosignal
|
||||||
sha256: "2daf353de3ff3e6b2087bf886fc9cd66effc8e78e3e1c71eee755ec978204a6b"
|
sha256: "089a373122ae0e202e64e214ce4a549af29e589128bdc8c8a54f3da68a2355aa"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.6.1"
|
version: "3.8.0"
|
||||||
wp_json_api:
|
wp_json_api:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -1179,5 +1211,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.0.0 <4.0.0"
|
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||||
flutter: ">=3.7.0-0"
|
flutter: ">=3.10.0"
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# Official WooSignal App Template for WooCommerce
|
# Official WooSignal App Template for WooCommerce
|
||||||
|
|
||||||
# Label StoreMax
|
# Label StoreMax
|
||||||
# Version: 6.8.0
|
# Version: 6.10.1
|
||||||
# Author: Anthony Gordon
|
# Author: Anthony Gordon
|
||||||
# Homepage: https://woosignal.com
|
# Homepage: https://woosignal.com
|
||||||
# Documentation: https://woosignal.com/docs/app/label-storemax
|
# Documentation: https://woosignal.com/docs/app/label-storemax
|
||||||
@ -29,16 +29,16 @@ dependencies:
|
|||||||
google_fonts: ^4.0.5
|
google_fonts: ^4.0.5
|
||||||
analyzer: ^5.12.0
|
analyzer: ^5.12.0
|
||||||
intl: ^0.18.0
|
intl: ^0.18.0
|
||||||
nylo_framework: ^5.1.1
|
nylo_framework: ^5.3.2
|
||||||
woosignal: ^3.6.1
|
woosignal: ^3.8.0
|
||||||
wp_json_api: ^3.3.2
|
wp_json_api: ^3.3.2
|
||||||
cached_network_image: ^3.2.3
|
cached_network_image: ^3.2.3
|
||||||
package_info_plus: ^4.0.2
|
package_info_plus: ^4.1.0
|
||||||
money_formatter: ^0.0.3
|
money_formatter: ^0.0.3
|
||||||
flutter_web_browser: ^0.17.1
|
flutter_web_browser: ^0.17.1
|
||||||
webview_flutter: 3.0.4
|
webview_flutter: 3.0.4
|
||||||
pull_to_refresh_flutter3: 2.0.1
|
pull_to_refresh_flutter3: 2.0.1
|
||||||
url_launcher: ^6.1.6
|
url_launcher: ^6.1.12
|
||||||
bubble_tab_indicator: ^0.1.5
|
bubble_tab_indicator: ^0.1.5
|
||||||
status_alert: ^1.0.1
|
status_alert: ^1.0.1
|
||||||
math_expressions: ^2.4.0
|
math_expressions: ^2.4.0
|
||||||
@ -50,8 +50,8 @@ dependencies:
|
|||||||
flutter_rating_bar: ^4.0.1
|
flutter_rating_bar: ^4.0.1
|
||||||
flutter_staggered_grid_view: ^0.6.2
|
flutter_staggered_grid_view: ^0.6.2
|
||||||
flutter_swiper_view: ^1.1.8
|
flutter_swiper_view: ^1.1.8
|
||||||
firebase_messaging: ^14.6.4
|
firebase_messaging: ^14.6.7
|
||||||
firebase_core: ^2.14.0
|
firebase_core: ^2.15.1
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_localizations:
|
flutter_localizations:
|
||||||
@ -61,8 +61,9 @@ dependencies:
|
|||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
cupertino_icons: ^1.0.5
|
cupertino_icons: ^1.0.5
|
||||||
collection: ^1.17.1
|
collection: ^1.17.1
|
||||||
flutter_stripe: ^9.2.2
|
flutter_stripe: ^9.3.0
|
||||||
razorpay_flutter: ^1.3.5
|
razorpay_flutter: ^1.3.5
|
||||||
|
animate_do: ^3.0.2
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
http: ^1.0.0
|
http: ^1.0.0
|
||||||
|
|||||||