loyalty_management_tool 0.22.11
loyalty_management_tool: ^0.22.11 copied to clipboard
A loyalty management tool
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:loyalty_management_tool/bloc/cubits/cubit_main.dart';
import 'package:loyalty_management_tool/bloc/rewards_module/pages/manage_rewards_page.dart';
import 'package:loyalty_management_tool/utils/colors.dart';
import 'package:loyalty_management_tool/utils/hexColors.dart';
import 'package:loyalty_management_tool/utils/localization.dart';
import 'package:loyalty_management_tool/utils/locator.dart';
import 'package:responsive_framework/responsive_wrapper.dart';
import 'package:responsive_framework/utils/scroll_behavior.dart';
void main() {
runApp(MainApp());
setupRewardsLocator();
}
class MainApp extends StatefulWidget {
static Future<void> setLocale(BuildContext context, Locale locale) async {
MyApp state = context.findAncestorStateOfType<MyApp>()!;
state.setLocale(locale);
}
MyApp createState() => MyApp();
}
class MyApp extends State<MainApp> {
Locale? _locale;
void setLocale(Locale locale) {
setState(() {
_locale = locale;
});
}
@override
initState() {
super.initState();
if (_locale == null) {
setLocale(const Locale("en", "IN"));
}
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: HexColor(AppColors.appColorTransparent),
statusBarBrightness: Brightness.dark,
statusBarIconBrightness: Brightness.dark));
return MaterialApp(
home: MyHomePage(),
builder: (context, widget) => ResponsiveWrapper.builder(
BouncingScrollWrapper.builder(context, widget!),
maxWidth: 1200,
minWidth: 450,
defaultScale: true,
breakpoints: [
ResponsiveBreakpoint.resize(450, name: MOBILE),
ResponsiveBreakpoint.autoScale(800, name: TABLET),
ResponsiveBreakpoint.autoScale(1000, name: TABLET),
ResponsiveBreakpoint.resize(1200, name: DESKTOP),
ResponsiveBreakpoint.autoScale(2460, name: "4K"),
],
background: Container(
color: HexColor(AppColors.appColorBackground),
),
),
locale: _locale,
themeMode: ThemeMode.light,
supportedLocales: const [
Locale("en", "US"),
Locale("hi", "IN"),
Locale("ta", "IN"),
Locale("te", "IN"),
Locale("ur", "IN"),
],
localizationsDelegates: const [
AppLocalizationsRewards.delegate,
],
localeResolutionCallback: (locale, supportedLocales) {
for (var supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale!.languageCode &&
supportedLocale.countryCode == locale.countryCode) {
return supportedLocale;
}
}
return supportedLocales.first;
},
debugShowCheckedModeBanner: false,
);
}
}
class MyHomePage extends StatefulWidget {
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: BlocProvider(
create: (_) => CubitMain(),
child: ManageRewardsPage(
appLanguageCode: "en",
address: "Address",
googleMapKey: "jjjjdjdjd",
mainColor: "#FF4CAF50",
dateFormat: 'dd-MMM-yyyy',
timeFormat: "HH:mm",
currencySymbol: "₹",
baseUrlWithoutHttp: "test.foop.com",
googleTranslationKey: "key",
businessId: 1657529344671,
userImage:
"/media/person/profile/1657547079429/1657547121200_1390.jpg",
userName: "Lava International",
slug: "slug",
userId: 1657291684395,
token:
"5cde6d24ea10b898a7d6e05355641573859f36e49681b9cad626be5cacaffa90",
baseUrl: "https://test.foop.com",
),
),
);
}
}