commit
4ed12dc24a
@ -1,3 +1,12 @@
|
||||
## [5.5.0] - 2021-12-17
|
||||
|
||||
* Change font from WooSignal dashboard
|
||||
* Change font colors from WooSignal dashboard
|
||||
* Add social media links from WooSignal dashboard
|
||||
* Notification stubs added to boot.dart
|
||||
* Upgrade WooSignal API to v3.0.0
|
||||
* Pubspec.yaml dependency updates
|
||||
|
||||
## [5.4.0] - 2021-12-10
|
||||
|
||||
* New localization keys added
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
# WooCommerce App: Label StoreMax
|
||||
|
||||
### Label StoreMax - v5.4.0
|
||||
### Label StoreMax - v5.5.0
|
||||
|
||||
|
||||
[Official WooSignal WooCommerce App](https://woosignal.com)
|
||||
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Bitte geben Sie eine gültige Rechnungs-E-Mail-Adresse ein",
|
||||
"Please enter a valid shipping email": "Bitte geben Sie eine gültige Versand-E-Mail ein",
|
||||
"Free postage": "Portofrei",
|
||||
"PROCESSING": "WIRD BEARBEITET"
|
||||
"PROCESSING": "WIRD BEARBEITET",
|
||||
"Social": "Sozial"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Please enter a valid billing email",
|
||||
"Please enter a valid shipping email": "Please enter a valid shipping email",
|
||||
"Free postage": "Free postage",
|
||||
"PROCESSING": "PROCESSING"
|
||||
"PROCESSING": "PROCESSING",
|
||||
"Social": "Social"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Ingrese un correo electrónico de facturación válido",
|
||||
"Please enter a valid shipping email": "Ingrese un correo electrónico de envío válido",
|
||||
"Free postage": "Gastos de envío gratis",
|
||||
"PROCESSING": "PROCESANDO"
|
||||
"PROCESSING": "PROCESANDO",
|
||||
"Social": "Social"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Veuillez saisir une adresse e-mail de facturation valide",
|
||||
"Please enter a valid shipping email": "Veuillez saisir un e-mail de livraison valide",
|
||||
"Free postage": "Sans frais de port",
|
||||
"PROCESSING": "EN TRAITEMENT"
|
||||
"PROCESSING": "EN TRAITEMENT",
|
||||
"Social": "Social"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "krpaya ek maany biling eemel darj karen",
|
||||
"Please enter a valid shipping email": "krpaya ek maany shiping eemel darj karen",
|
||||
"Free postage": "mupht daak",
|
||||
"PROCESSING": "prasanskaran"
|
||||
"PROCESSING": "prasanskaran",
|
||||
"Social": "saamaajik"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Si prega di inserire un'e-mail di fatturazione valida",
|
||||
"Please enter a valid shipping email": "Si prega di inserire un'e-mail di spedizione valida",
|
||||
"Free postage": "Spedizione gratuita",
|
||||
"PROCESSING": "IN LAVORAZIONE"
|
||||
"PROCESSING": "IN LAVORAZIONE",
|
||||
"Social": "Sociale"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "Por favor, insira um e-mail de faturamento válido",
|
||||
"Please enter a valid shipping email": "Por favor, insira um e-mail de envio válido",
|
||||
"Free postage": "Postagem grátis",
|
||||
"PROCESSING": "EM PROCESSAMENTO"
|
||||
"PROCESSING": "EM PROCESSAMENTO",
|
||||
"Social": "Social"
|
||||
}
|
||||
@ -190,5 +190,6 @@
|
||||
"Please enter a valid billing email": "请输入有效的结算电子邮件",
|
||||
"Please enter a valid shipping email": "请输入有效的送货电子邮件",
|
||||
"Free postage": "免邮费",
|
||||
"PROCESSING": "加工"
|
||||
"PROCESSING": "加工",
|
||||
"Social": "社会的"
|
||||
}
|
||||
@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class AccountOrderDetailController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class BrowseCategoryController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class BrowseSearchController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class CheckoutStatusController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,10 +8,16 @@
|
||||
// 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';
|
||||
import 'package:nylo_support/controllers/controller.dart';
|
||||
|
||||
/// Base Controller for the Nylo
|
||||
/// See more on controllers here - https://nylo.dev/docs/1.x/controllers
|
||||
/// See more on controllers here - https://nylo.dev/docs/2.x/controllers
|
||||
class Controller extends BaseController {
|
||||
Controller();
|
||||
|
||||
@override
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,7 +16,9 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class ProductDetailController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
|
||||
viewExternalProduct(Product product) {
|
||||
if (product.externalUrl != null && product.externalUrl.isNotEmpty) {
|
||||
|
||||
@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart';
|
||||
|
||||
class ProductImageViewerController extends Controller {
|
||||
@override
|
||||
construct(BuildContext context) {}
|
||||
construct(BuildContext context) {
|
||||
super.construct(context);
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ class AppBuild extends StatelessWidget {
|
||||
Key key,
|
||||
this.initialRoute,
|
||||
this.title,
|
||||
@required this.locale,
|
||||
this.locale,
|
||||
this.themeData,
|
||||
@required this.onGenerateRoute,
|
||||
this.navigatorKey,
|
||||
@ -66,7 +66,7 @@ class AppBuild extends StatelessWidget {
|
||||
child: ThemeConsumer(
|
||||
child: Builder(
|
||||
builder: (themeContext) => ValueListenableBuilder(
|
||||
valueListenable: ValueNotifier(locale),
|
||||
valueListenable: ValueNotifier(locale ?? NyLocalization.instance.locale),
|
||||
builder: (context, Locale locale, _) => MaterialApp(
|
||||
navigatorKey: navigatorKey,
|
||||
themeMode: themeMode,
|
||||
|
||||
76
LabelStoreMax/lib/bootstrap/boot.dart
Normal file
76
LabelStoreMax/lib/bootstrap/boot.dart
Normal file
@ -0,0 +1,76 @@
|
||||
// import 'package:firebase_core/firebase_core.dart';
|
||||
// import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
// import 'package:flutter_app/firebase_options.dart';
|
||||
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/app_localization.dart';
|
||||
import 'package:nylo_framework/nylo_framework.dart';
|
||||
import 'package:woosignal/models/response/woosignal_app.dart';
|
||||
import 'package:woosignal/woosignal.dart';
|
||||
import 'package:wp_json_api/wp_json_api.dart';
|
||||
|
||||
/// boot application
|
||||
Future<void> boot() async {
|
||||
|
||||
await SystemChrome.setPreferredOrientations([
|
||||
DeviceOrientation.portraitUp,
|
||||
]);
|
||||
|
||||
await WooSignal.instance.init(appKey: getEnv('APP_KEY'), debugMode: getEnv('APP_DEBUG'));
|
||||
|
||||
// Notifications
|
||||
/// await Firebase.initializeApp(
|
||||
/// options: DefaultFirebaseOptions.currentPlatform,
|
||||
/// );
|
||||
///
|
||||
/// FirebaseMessaging messaging = FirebaseMessaging.instance;
|
||||
///
|
||||
/// NotificationSettings settings = await messaging.requestPermission(
|
||||
/// alert: true,
|
||||
/// announcement: false,
|
||||
/// badge: true,
|
||||
/// carPlay: false,
|
||||
/// criticalAlert: false,
|
||||
/// provisional: false,
|
||||
/// sound: true,
|
||||
/// );
|
||||
///
|
||||
/// if (settings.authorizationStatus == AuthorizationStatus.authorized) {
|
||||
/// String token = await messaging.getToken();
|
||||
/// WooSignal.instance.setFcmToken(token);
|
||||
/// AppHelper.instance.fcmToken = token;
|
||||
/// }
|
||||
|
||||
// WooSignal Setup
|
||||
WooSignalApp wooSignalApp = await appWooSignal((api) => api.getApp());
|
||||
Locale locale = Locale('en');
|
||||
|
||||
if (wooSignalApp != null) {
|
||||
AppHelper.instance.appConfig = wooSignalApp;
|
||||
|
||||
if (wooSignalApp.wpLoginEnabled == 1) {
|
||||
WPJsonAPI.instance.initWith(
|
||||
baseUrl: wooSignalApp.wpLoginBaseUrl,
|
||||
shouldDebug: getEnv('APP_DEBUG'),
|
||||
wpJsonPath: wooSignalApp.wpLoginWpApiPath,
|
||||
);
|
||||
}
|
||||
|
||||
if (getEnv('DEFAULT_LOCALE', defaultValue: null) == null && wooSignalApp.locale != null) {
|
||||
locale = Locale(wooSignalApp.locale);
|
||||
} else {
|
||||
locale = Locale(envVal('DEFAULT_LOCALE', defaultValue: 'en'));
|
||||
}
|
||||
}
|
||||
|
||||
/// NyLocalization
|
||||
await NyLocalization.instance.init(
|
||||
localeType: localeType,
|
||||
languageCode: locale.languageCode,
|
||||
languagesList: languagesList,
|
||||
assetsDirectory: assetsDirectory,
|
||||
valuesAsMap: valuesAsMap
|
||||
);
|
||||
}
|
||||
@ -45,11 +45,7 @@ Future<User> getUser() async =>
|
||||
(await NyStorage.read<User>(SharedKey.authUser, model: User()));
|
||||
|
||||
appWooSignal(Function(WooSignal) api) async {
|
||||
WooSignal wooSignal = await WooSignal.getInstance(config: {
|
||||
"appKey": getEnv('APP_KEY'),
|
||||
"debugMode": getEnv('APP_DEBUG', defaultValue: true)
|
||||
});
|
||||
return await api(wooSignal);
|
||||
return await api(WooSignal.instance);
|
||||
}
|
||||
|
||||
/// helper to find correct color from the [context].
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// boot application
|
||||
Future<void> boot() async {
|
||||
|
||||
await SystemChrome.setPreferredOrientations([
|
||||
DeviceOrientation.portraitUp,
|
||||
]);
|
||||
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
| CURRENCY
|
||||
|
|
||||
| Configure which currency you want to use.
|
||||
| Docs here: https://woosignal.com/docs/app/ios/label-storemax
|
||||
| Docs here: https://woosignal.com/docs/app/label-storemax
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import 'package:google_fonts/google_fonts.dart';
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
final TextStyle appFont = GoogleFonts.poppins();
|
||||
TextStyle appFont = GoogleFonts.poppins();
|
||||
|
||||
// e.g. custom font in pubspec.yaml - https://flutter.dev/docs/cookbook/design/fonts
|
||||
// final TextStyle appThemeFont = TextStyle(fontFamily: "ZenTokyoZoo");
|
||||
@ -9,7 +9,7 @@ import 'package:flutter_app/bootstrap/helpers.dart';
|
||||
| PAYMENT GATEWAYS
|
||||
|
|
||||
| Configure which payment gateways you want to use.
|
||||
| Docs here: https://woosignal.com/docs/app/ios/label-storemax
|
||||
| Docs here: https://woosignal.com/docs/app/label-storemax
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
@ -1,52 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app/bootstrap/app.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/bootstrap/helpers.dart';
|
||||
import 'package:flutter_app/bootstrap/setup.dart';
|
||||
import 'package:flutter_app/config/app_localization.dart';
|
||||
import 'package:flutter_app/bootstrap/boot.dart';
|
||||
import 'package:flutter_app/routes/router.dart';
|
||||
import 'package:nylo_framework/nylo_framework.dart';
|
||||
import 'package:woosignal/models/response/woosignal_app.dart';
|
||||
import 'package:wp_json_api/wp_json_api.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
Nylo nylo = await Nylo.init(router: appRouter(), setup: boot);
|
||||
|
||||
String initialRoute = '/no-connection';
|
||||
WooSignalApp wooSignalApp = await appWooSignal((api) => api.getApp());
|
||||
Locale locale;
|
||||
|
||||
if (wooSignalApp != null) {
|
||||
initialRoute = "/home";
|
||||
AppHelper.instance.appConfig = wooSignalApp;
|
||||
AppHelper.instance.themeType = wooSignalApp.theme;
|
||||
|
||||
if (wooSignalApp.wpLoginEnabled == 1) {
|
||||
WPJsonAPI.instance.initWith(
|
||||
baseUrl: wooSignalApp.wpLoginBaseUrl,
|
||||
shouldDebug: (wooSignalApp.appDebug == 1),
|
||||
wpJsonPath: wooSignalApp.wpLoginWpApiPath,
|
||||
);
|
||||
}
|
||||
|
||||
locale = Locale((getEnv('DEFAULT_LOCALE', defaultValue: null) == null && wooSignalApp.locale != null) ? wooSignalApp.locale : envVal('DEFAULT_LOCALE', defaultValue: 'en'));
|
||||
}
|
||||
|
||||
/// NyLocalization
|
||||
await NyLocalization.instance.init(
|
||||
localeType: localeType,
|
||||
languageCode: locale != null ? locale.languageCode : Locale(getEnv('DEFAULT_LOCALE', defaultValue: 'en')),
|
||||
languagesList: languagesList,
|
||||
assetsDirectory: assetsDirectory,
|
||||
valuesAsMap: valuesAsMap
|
||||
);
|
||||
String initialRoute = AppHelper.instance.appConfig != null ? '/home' : '/no-connection';
|
||||
|
||||
runApp(
|
||||
AppBuild(
|
||||
navigatorKey: nylo.router.navigatorKey,
|
||||
onGenerateRoute: nylo.router.generator(),
|
||||
locale: locale,
|
||||
initialRoute: initialRoute,
|
||||
debugShowCheckedModeBanner: false,
|
||||
),
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
||||
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app/app/models/user.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
@ -18,7 +20,6 @@ import 'package:flutter_app/resources/widgets/buttons.dart';
|
||||
import 'package:flutter_app/resources/widgets/safearea_widget.dart';
|
||||
import 'package:flutter_app/resources/widgets/woosignal_ui.dart';
|
||||
import 'package:nylo_framework/nylo_framework.dart';
|
||||
import 'package:woosignal/helpers/shared_pref.dart';
|
||||
import 'package:woosignal/models/response/woosignal_app.dart';
|
||||
import 'package:wp_json_api/exceptions/empty_username_exception.dart';
|
||||
import 'package:wp_json_api/exceptions/existing_user_email_exception.dart';
|
||||
@ -176,7 +177,7 @@ class _AccountRegistrationPageState extends State<AccountRegistrationPage> {
|
||||
});
|
||||
|
||||
String username =
|
||||
(email.replaceAll(new RegExp(r'([@.])'), "")) + randomStr(4);
|
||||
(email.replaceAll(new RegExp(r'([@.])'), "")) + _randomStr(4);
|
||||
|
||||
WPUserRegisterResponse wpUserRegisterResponse;
|
||||
try {
|
||||
@ -265,13 +266,23 @@ class _AccountRegistrationPageState extends State<AccountRegistrationPage> {
|
||||
);
|
||||
}
|
||||
|
||||
String _randomStr(int strLen) {
|
||||
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
Random rnd = Random(DateTime.now().millisecondsSinceEpoch);
|
||||
String result = "";
|
||||
for (var i = 0; i < strLen; i++) {
|
||||
result += chars[rnd.nextInt(chars.length)];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void _viewTermsConditions() {
|
||||
Navigator.pop(context);
|
||||
openBrowserTab(url: _wooSignalApp.appTermslink);
|
||||
openBrowserTab(url: _wooSignalApp.appTermsLink);
|
||||
}
|
||||
|
||||
void _viewPrivacyPolicy() {
|
||||
Navigator.pop(context);
|
||||
openBrowserTab(url: _wooSignalApp.appPrivacylink);
|
||||
openBrowserTab(url: _wooSignalApp.appPrivacyLink);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/config/app_font.dart';
|
||||
import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
import 'package:flutter_app/resources/themes/text_theme/default_text_theme.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:nylo_framework/nylo_framework.dart';
|
||||
|
||||
/*
|
||||
@ -14,6 +16,14 @@ import 'package:nylo_framework/nylo_framework.dart';
|
||||
*/
|
||||
|
||||
ThemeData darkTheme(BaseColorStyles darkColors) {
|
||||
try {
|
||||
appFont = GoogleFonts.getFont(AppHelper.instance.appConfig.themeFont ?? "Poppins");
|
||||
} on Exception catch(e) {
|
||||
if (getEnv('APP_DEBUG') == true) {
|
||||
NyLogger.error(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
TextTheme darkTheme =
|
||||
getAppTextTheme(appFont, defaultTextTheme.merge(_darkTextTheme(darkColors)));
|
||||
return ThemeData(
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/config/app_font.dart';
|
||||
import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
import 'package:flutter_app/resources/themes/text_theme/default_text_theme.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:nylo_framework/nylo_framework.dart';
|
||||
|
||||
/*
|
||||
@ -14,6 +16,14 @@ import 'package:nylo_framework/nylo_framework.dart';
|
||||
*/
|
||||
|
||||
ThemeData lightTheme(BaseColorStyles lightColors) {
|
||||
try {
|
||||
appFont = GoogleFonts.getFont(AppHelper.instance.appConfig.themeFont ?? "Poppins");
|
||||
} on Exception catch(e) {
|
||||
if (getEnv('APP_DEBUG') == true) {
|
||||
NyLogger.error(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
TextTheme lightTheme =
|
||||
getAppTextTheme(appFont, defaultTextTheme.merge(_lightTextTheme(lightColors)));
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
|
||||
/*
|
||||
@ -9,24 +10,24 @@ import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
|
||||
class DarkThemeColors implements BaseColorStyles {
|
||||
// general
|
||||
Color get background => const Color(0xFF212121);
|
||||
Color get background => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['background']));
|
||||
Color get backgroundContainer => const Color(0xFF4a4a4a);
|
||||
|
||||
Color get primaryContent => const Color(0xFFE1E1E1);
|
||||
Color get primaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['primary_text']));
|
||||
Color get primaryAccent => const Color(0xFF818181);
|
||||
|
||||
Color get surfaceBackground => Color(0xFF818181);
|
||||
Color get surfaceContent => Colors.black;
|
||||
|
||||
// app bar
|
||||
Color get appBarBackground => const Color(0xFF2C2C2C);
|
||||
Color get appBarPrimaryContent => Colors.white;
|
||||
Color get appBarBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['app_bar_background']));
|
||||
Color get appBarPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['app_bar_text']));
|
||||
|
||||
Color get inputPrimaryContent => Colors.white;
|
||||
|
||||
// buttons
|
||||
Color get buttonBackground => Colors.white60;
|
||||
Color get buttonPrimaryContent => const Color(0xFF232c33);
|
||||
Color get buttonBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['button_background']));
|
||||
Color get buttonPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['button_text']));
|
||||
|
||||
// bottom tab bar
|
||||
Color get bottomTabBarBackground => const Color(0xFF232c33);
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
|
||||
/*
|
||||
@ -9,23 +10,24 @@ import 'package:flutter_app/resources/themes/styles/base_styles.dart';
|
||||
|
||||
class LightThemeColors implements BaseColorStyles {
|
||||
// general
|
||||
Color get background => const Color(0xFFFFFFFF);
|
||||
|
||||
Color get background => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['background']));
|
||||
Color get backgroundContainer => Colors.white;
|
||||
Color get primaryContent => const Color(0xFF000000);
|
||||
Color get primaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['primary_text']));
|
||||
Color get primaryAccent => const Color(0xFF87c694);
|
||||
|
||||
Color get surfaceBackground => Colors.white;
|
||||
Color get surfaceContent => Colors.black;
|
||||
|
||||
// app bar
|
||||
Color get appBarBackground => Colors.white;
|
||||
Color get appBarPrimaryContent => const Color(0xFF3a3d40);
|
||||
Color get appBarBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['app_bar_background']));
|
||||
Color get appBarPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['app_bar_text']));
|
||||
|
||||
Color get inputPrimaryContent => Colors.black;
|
||||
|
||||
// buttons
|
||||
Color get buttonBackground => const Color(0xFF529cda);
|
||||
Color get buttonPrimaryContent => Colors.white;
|
||||
Color get buttonBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['button_background']));
|
||||
Color get buttonPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['button_text']));
|
||||
|
||||
// bottom tab bar
|
||||
Color get bottomTabBarBackground => Colors.white;
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app/bootstrap/app_helper.dart';
|
||||
import 'package:flutter_app/bootstrap/helpers.dart';
|
||||
import 'package:flutter_app/bootstrap/shared_pref/sp_auth.dart';
|
||||
import 'package:flutter_app/resources/widgets/app_version_widget.dart';
|
||||
@ -17,6 +18,7 @@ import 'package:flutter_app/resources/widgets/woosignal_ui.dart';
|
||||
import 'package:nylo_framework/theme/helper/ny_theme.dart';
|
||||
import 'package:nylo_support/helpers/helper.dart';
|
||||
import 'package:woosignal/models/response/woosignal_app.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class HomeDrawerWidget extends StatefulWidget {
|
||||
const HomeDrawerWidget({Key key, @required this.wooSignalApp})
|
||||
@ -29,6 +31,16 @@ class HomeDrawerWidget extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
|
||||
Map<String, dynamic> _socialLinks = {};
|
||||
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_socialLinks = AppHelper.instance.appConfig.socialLinks ?? {};
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
bool isDark = (Theme.of(context).brightness == Brightness.dark);
|
||||
@ -66,7 +78,7 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
leading: Icon(Icons.shopping_cart),
|
||||
onTap: _actionCart,
|
||||
),
|
||||
if (widget.wooSignalApp.appTermslink != null && widget.wooSignalApp.appPrivacylink != null)
|
||||
if (widget.wooSignalApp.appTermsLink != null && widget.wooSignalApp.appPrivacyLink != null)
|
||||
Padding(
|
||||
child: Text(
|
||||
trans("About Us"),
|
||||
@ -74,8 +86,8 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
),
|
||||
padding: EdgeInsets.only(left: 16, top: 8, bottom: 8),
|
||||
),
|
||||
if (widget.wooSignalApp.appTermslink != null &&
|
||||
widget.wooSignalApp.appTermslink.isNotEmpty)
|
||||
if (widget.wooSignalApp.appTermsLink != null &&
|
||||
widget.wooSignalApp.appTermsLink.isNotEmpty)
|
||||
ListTile(
|
||||
title: Text(trans("Terms and conditions"),
|
||||
style: Theme.of(context).textTheme.bodyText2.copyWith(
|
||||
@ -85,8 +97,8 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
trailing: Icon(Icons.keyboard_arrow_right_rounded),
|
||||
onTap: _actionTerms,
|
||||
),
|
||||
if (widget.wooSignalApp.appPrivacylink != null &&
|
||||
widget.wooSignalApp.appPrivacylink.isNotEmpty)
|
||||
if (widget.wooSignalApp.appPrivacyLink != null &&
|
||||
widget.wooSignalApp.appPrivacyLink.isNotEmpty)
|
||||
ListTile(
|
||||
title: Text(trans("Privacy policy"), style: Theme.of(context).textTheme.bodyText2.copyWith(
|
||||
fontSize: 16
|
||||
@ -109,6 +121,26 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
});
|
||||
},
|
||||
),
|
||||
if (_socialLinks.isNotEmpty)
|
||||
Padding(
|
||||
child: Text(
|
||||
trans("Social"),
|
||||
style: Theme.of(context).textTheme.subtitle2,
|
||||
),
|
||||
padding: EdgeInsets.only(left: 16, top: 8, bottom: 8),
|
||||
),
|
||||
..._socialLinks.entries.where((element) => element != null && element.value != "").map((socialLink) => ListTile(
|
||||
title: Text(
|
||||
capitalize(socialLink.key),
|
||||
style: Theme.of(context).textTheme.bodyText2.copyWith(
|
||||
fontSize: 16
|
||||
)
|
||||
),
|
||||
leading: Image.asset(getImageAsset(socialLink.key) + '.png', height: 25, width: 25),
|
||||
onTap: () async {
|
||||
await launch(socialLink.value);
|
||||
},
|
||||
)).toList(),
|
||||
ListTile(
|
||||
title: AppVersionWidget(),
|
||||
),
|
||||
@ -118,9 +150,9 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
);
|
||||
}
|
||||
|
||||
_actionTerms() => openBrowserTab(url: widget.wooSignalApp.appTermslink);
|
||||
_actionTerms() => openBrowserTab(url: widget.wooSignalApp.appTermsLink);
|
||||
|
||||
_actionPrivacy() => openBrowserTab(url: widget.wooSignalApp.appPrivacylink);
|
||||
_actionPrivacy() => openBrowserTab(url: widget.wooSignalApp.appPrivacyLink);
|
||||
|
||||
_actionProfile() async {
|
||||
Navigator.pop(context);
|
||||
@ -136,4 +168,6 @@ class _HomeDrawerWidgetState extends State<HomeDrawerWidget> {
|
||||
Navigator.pop(context);
|
||||
Navigator.pushNamed(context, "/cart");
|
||||
}
|
||||
|
||||
String capitalize(String s) => s[0].toUpperCase() + s.substring(1);
|
||||
}
|
||||
|
||||
BIN
LabelStoreMax/public/assets/images/facebook.png
Normal file
BIN
LabelStoreMax/public/assets/images/facebook.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
LabelStoreMax/public/assets/images/instagram.png
Normal file
BIN
LabelStoreMax/public/assets/images/instagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
LabelStoreMax/public/assets/images/twitter.png
Normal file
BIN
LabelStoreMax/public/assets/images/twitter.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
LabelStoreMax/public/assets/images/youtube.png
Normal file
BIN
LabelStoreMax/public/assets/images/youtube.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
@ -70,7 +70,7 @@ packages:
|
||||
name: cached_network_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.0+1"
|
||||
version: "3.2.0"
|
||||
cached_network_image_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -154,7 +154,7 @@ packages:
|
||||
name: device_info
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.0.3"
|
||||
device_info_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -168,7 +168,7 @@ packages:
|
||||
name: dio
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
version: "4.0.4"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -222,7 +222,7 @@ packages:
|
||||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
version: "3.3.0"
|
||||
flutter_dotenv:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -461,14 +461,14 @@ packages:
|
||||
name: nylo_framework
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.3"
|
||||
nylo_support:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: nylo_support
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.3.1"
|
||||
octo_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -615,6 +615,20 @@ packages:
|
||||
name: shared_preferences
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.11"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.9"
|
||||
shared_preferences_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
@ -768,6 +782,62 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
url_launcher:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.17"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.13"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.13"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
uuid:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -837,7 +907,7 @@ packages:
|
||||
name: woosignal
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "3.0.0"
|
||||
wp_json_api:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Official WooSignal App Template for WooCommerce
|
||||
|
||||
# Label StoreMax
|
||||
# Version: 5.4.0
|
||||
# Version: 5.5.0
|
||||
# Author: Anthony Gordon
|
||||
# Homepage: https://woosignal.com
|
||||
# Documentation: https://woosignal.com/docs/app/label-storemax
|
||||
@ -29,11 +29,11 @@ dependencies:
|
||||
analyzer: ^1.5.0
|
||||
intl: ^0.17.0
|
||||
page_transition: ^2.0.4
|
||||
nylo_framework: ^2.1.1
|
||||
woosignal: ^2.2.1
|
||||
nylo_framework: ^2.1.3
|
||||
woosignal: ^3.0.0
|
||||
flutter_stripe: ^2.0.2
|
||||
wp_json_api: ^3.1.3
|
||||
cached_network_image: ^3.1.0+1
|
||||
cached_network_image: ^3.2.0
|
||||
package_info: ^2.0.2
|
||||
money_formatter: ^0.0.3
|
||||
platform_alert_dialog: ^1.0.0+2
|
||||
@ -41,6 +41,7 @@ dependencies:
|
||||
webview_flutter: ^2.3.1
|
||||
pull_to_refresh: 2.0.0
|
||||
flutter_swiper: ^1.1.6
|
||||
url_launcher: ^6.0.17
|
||||
flutter_styled_toast: ^2.0.0
|
||||
animate_do: ^2.0.0
|
||||
bubble_tab_indicator: ^0.1.5
|
||||
@ -52,6 +53,8 @@ dependencies:
|
||||
auto_size_text: ^3.0.0
|
||||
html: ^0.15.0
|
||||
flutter_staggered_grid_view: ^0.4.1
|
||||
# firebase_messaging: ^11.2.3
|
||||
# firebase_core: ^1.10.5
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_localizations:
|
||||
@ -84,13 +87,8 @@ flutter:
|
||||
# To add assets to your application, add an assets section, like this:
|
||||
assets:
|
||||
- public/assets/fonts/
|
||||
- public/assets/images/camion.gif
|
||||
- public/assets/images/credit_cards.png
|
||||
- public/assets/images/shipping_icon.png
|
||||
- public/assets/images/dark_powered_by_stripe.png
|
||||
- public/assets/images/cash_on_delivery.jpeg
|
||||
- public/assets/images/razorpay.png
|
||||
- public/assets/images/paypal_logo.png
|
||||
- public/assets/json/default_shipping.json
|
||||
- public/
|
||||
- public/assets/json/
|
||||
- public/assets/images/
|
||||
- lang/
|
||||
- .env
|
||||
|
||||
Loading…
Reference in New Issue
Block a user