NEW: complete provider mzansi wallet
This commit is contained in:
@@ -276,8 +276,7 @@ class MihGoRouter {
|
|||||||
path: MihGoRouterPaths.mzansiWallet,
|
path: MihGoRouterPaths.mzansiWallet,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
KenLogger.success("MihGoRouter: mzansiWallet");
|
KenLogger.success("MihGoRouter: mzansiWallet");
|
||||||
final WalletArguments? args = state.extra as WalletArguments?;
|
if (context.watch<MzansiProfileProvider>().business == null) {
|
||||||
if (args == null) {
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
});
|
});
|
||||||
@@ -285,7 +284,6 @@ class MihGoRouter {
|
|||||||
}
|
}
|
||||||
return MihWallet(
|
return MihWallet(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
arguments: args,
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -79,8 +79,6 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
|
|||||||
List<Map<String, Widget>> temp = [];
|
List<Map<String, Widget>> temp = [];
|
||||||
temp.add({
|
temp.add({
|
||||||
"Setup Profile": MzansiSetupProfileTile(
|
"Setup Profile": MzansiSetupProfileTile(
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
propicFile: widget.propicFile,
|
|
||||||
packageSize: packageSize,
|
packageSize: packageSize,
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
@@ -92,8 +90,6 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
|
|||||||
//=============== Mzansi Profile ===============
|
//=============== Mzansi Profile ===============
|
||||||
temp.add({
|
temp.add({
|
||||||
"Mzansi Profile": MzansiProfileTile(
|
"Mzansi Profile": MzansiProfileTile(
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
propicFile: widget.propicFile,
|
|
||||||
packageSize: packageSize,
|
packageSize: packageSize,
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,20 +2,14 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
|
|
||||||
class MzansiProfileTile extends StatefulWidget {
|
class MzansiProfileTile extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final ImageProvider<Object>? propicFile;
|
|
||||||
final double packageSize;
|
final double packageSize;
|
||||||
|
|
||||||
const MzansiProfileTile({
|
const MzansiProfileTile({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
required this.propicFile,
|
|
||||||
required this.packageSize,
|
required this.packageSize,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -31,10 +25,6 @@ class _MzansiProfileTileState extends State<MzansiProfileTile> {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
context.goNamed(
|
context.goNamed(
|
||||||
'mzansiProfileManage',
|
'mzansiProfileManage',
|
||||||
extra: AppProfileUpdateArguments(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.propicFile,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
appName: "Mzansi Profile",
|
appName: "Mzansi Profile",
|
||||||
|
|||||||
@@ -2,20 +2,14 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
|
|
||||||
class MzansiSetupProfileTile extends StatefulWidget {
|
class MzansiSetupProfileTile extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final ImageProvider<Object>? propicFile;
|
|
||||||
final double packageSize;
|
final double packageSize;
|
||||||
|
|
||||||
const MzansiSetupProfileTile({
|
const MzansiSetupProfileTile({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
required this.propicFile,
|
|
||||||
required this.packageSize,
|
required this.packageSize,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -30,10 +24,6 @@ class _MzansiSetupProfileTileState extends State<MzansiSetupProfileTile> {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
context.goNamed(
|
context.goNamed(
|
||||||
'mzansiProfileManage',
|
'mzansiProfileManage',
|
||||||
extra: AppProfileUpdateArguments(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.propicFile,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
appName: "Set Up Profile",
|
appName: "Set Up Profile",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||||
@@ -18,7 +19,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -27,7 +27,6 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:screen_brightness/screen_brightness.dart';
|
import 'package:screen_brightness/screen_brightness.dart';
|
||||||
|
|
||||||
class BuildLoyaltyCardList extends StatefulWidget {
|
class BuildLoyaltyCardList extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final List<MIHLoyaltyCard> cardList;
|
final List<MIHLoyaltyCard> cardList;
|
||||||
final int navIndex;
|
final int navIndex;
|
||||||
final bool favouritesMode;
|
final bool favouritesMode;
|
||||||
@@ -35,7 +34,6 @@ class BuildLoyaltyCardList extends StatefulWidget {
|
|||||||
|
|
||||||
const BuildLoyaltyCardList({
|
const BuildLoyaltyCardList({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
required this.cardList,
|
required this.cardList,
|
||||||
required this.navIndex,
|
required this.navIndex,
|
||||||
required this.favouritesMode,
|
required this.favouritesMode,
|
||||||
@@ -60,7 +58,8 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void editCardWindow(BuildContext ctxt, int index, double width) {
|
void editCardWindow(MzansiProfileProvider mzansiProfileProvider,
|
||||||
|
BuildContext ctxt, int index, double width) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
@@ -145,7 +144,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
if (_formKey.currentState!.validate()) {
|
if (_formKey.currentState!.validate()) {
|
||||||
int statusCode = await MIHMzansiWalletApis
|
int statusCode = await MIHMzansiWalletApis
|
||||||
.updateLoyaltyCardAPICall(
|
.updateLoyaltyCardAPICall(
|
||||||
widget.signedInUser,
|
mzansiProfileProvider.user!,
|
||||||
widget.cardList[index].idloyalty_cards,
|
widget.cardList[index].idloyalty_cards,
|
||||||
widget.cardList[index].shop_name,
|
widget.cardList[index].shop_name,
|
||||||
widget.cardList[index].favourite,
|
widget.cardList[index].favourite,
|
||||||
@@ -211,7 +210,8 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteCardWindow(BuildContext ctxt, int index) {
|
void deleteCardWindow(MzansiProfileProvider mzansiProfileProvider,
|
||||||
|
BuildContext ctxt, int index) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
@@ -221,7 +221,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
onTap: () async {
|
onTap: () async {
|
||||||
int statusCode =
|
int statusCode =
|
||||||
await MIHMzansiWalletApis.deleteLoyaltyCardAPICall(
|
await MIHMzansiWalletApis.deleteLoyaltyCardAPICall(
|
||||||
widget.signedInUser,
|
mzansiProfileProvider.user!,
|
||||||
widget.cardList[index].idloyalty_cards,
|
widget.cardList[index].idloyalty_cards,
|
||||||
context,
|
context,
|
||||||
);
|
);
|
||||||
@@ -237,7 +237,8 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addToFavCardWindow(BuildContext ctxt, int index) {
|
void addToFavCardWindow(MzansiProfileProvider mzansiProfileProvider,
|
||||||
|
BuildContext ctxt, int index) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
@@ -269,7 +270,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
int statusCode =
|
int statusCode =
|
||||||
await MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
await MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
||||||
widget.signedInUser,
|
mzansiProfileProvider.user!,
|
||||||
widget.cardList[index].idloyalty_cards,
|
widget.cardList[index].idloyalty_cards,
|
||||||
widget.cardList[index].shop_name,
|
widget.cardList[index].shop_name,
|
||||||
"Yes",
|
"Yes",
|
||||||
@@ -282,7 +283,9 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
context.pop();
|
context.pop();
|
||||||
context.pop();
|
context.pop();
|
||||||
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
||||||
widget.signedInUser.app_id, context);
|
mzansiProfileProvider.user!.app_id,
|
||||||
|
context,
|
||||||
|
);
|
||||||
context.read<MzansiWalletProvider>().setToolIndex(1);
|
context.read<MzansiWalletProvider>().setToolIndex(1);
|
||||||
} else {
|
} else {
|
||||||
internetConnectionPopUp();
|
internetConnectionPopUp();
|
||||||
@@ -319,7 +322,8 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void removeFromFavCardWindow(BuildContext ctxt, int index) {
|
void removeFromFavCardWindow(MzansiProfileProvider mzansiProfileProvider,
|
||||||
|
BuildContext ctxt, int index) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
@@ -351,7 +355,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
int statusCode =
|
int statusCode =
|
||||||
await MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
await MIHMzansiWalletApis.updateLoyaltyCardAPICall(
|
||||||
widget.signedInUser,
|
mzansiProfileProvider.user!,
|
||||||
widget.cardList[index].idloyalty_cards,
|
widget.cardList[index].idloyalty_cards,
|
||||||
widget.cardList[index].shop_name,
|
widget.cardList[index].shop_name,
|
||||||
"",
|
"",
|
||||||
@@ -364,7 +368,9 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
context.pop();
|
context.pop();
|
||||||
context.pop();
|
context.pop();
|
||||||
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
||||||
widget.signedInUser.app_id, context);
|
mzansiProfileProvider.user!.app_id,
|
||||||
|
context,
|
||||||
|
);
|
||||||
context.read<MzansiWalletProvider>().setToolIndex(0);
|
context.read<MzansiWalletProvider>().setToolIndex(0);
|
||||||
} else {
|
} else {
|
||||||
internetConnectionPopUp();
|
internetConnectionPopUp();
|
||||||
@@ -390,7 +396,8 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void viewCardWindow(int index, double width) {
|
void viewCardWindow(
|
||||||
|
MzansiProfileProvider mzansiProfileProvider, int index, double width) {
|
||||||
//print(widget.cardList[index].card_number);
|
//print(widget.cardList[index].card_number);
|
||||||
String formattedCardNumber = "";
|
String formattedCardNumber = "";
|
||||||
for (int i = 0; i <= widget.cardList[index].card_number.length - 1; i++) {
|
for (int i = 0; i <= widget.cardList[index].card_number.length - 1; i++) {
|
||||||
@@ -432,9 +439,17 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (widget.cardList[index].favourite == "") {
|
if (widget.cardList[index].favourite == "") {
|
||||||
addToFavCardWindow(context, index);
|
addToFavCardWindow(
|
||||||
|
mzansiProfileProvider,
|
||||||
|
context,
|
||||||
|
index,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
removeFromFavCardWindow(context, index);
|
removeFromFavCardWindow(
|
||||||
|
mzansiProfileProvider,
|
||||||
|
context,
|
||||||
|
index,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -459,7 +474,12 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
_cardNumberController.text = widget.cardList[index].card_number;
|
_cardNumberController.text = widget.cardList[index].card_number;
|
||||||
_nicknameController.text = widget.cardList[index].nickname;
|
_nicknameController.text = widget.cardList[index].nickname;
|
||||||
});
|
});
|
||||||
editCardWindow(context, index, width);
|
editCardWindow(
|
||||||
|
mzansiProfileProvider,
|
||||||
|
context,
|
||||||
|
index,
|
||||||
|
width,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SpeedDialChild(
|
SpeedDialChild(
|
||||||
@@ -479,7 +499,11 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
backgroundColor: MihColors.getGreenColor(
|
backgroundColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
deleteCardWindow(context, index);
|
deleteCardWindow(
|
||||||
|
mzansiProfileProvider,
|
||||||
|
context,
|
||||||
|
index,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -681,29 +705,38 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
|||||||
// final double width = size.width;
|
// final double width = size.width;
|
||||||
//final double height = size.height;
|
//final double height = size.height;
|
||||||
if (widget.cardList.isNotEmpty) {
|
if (widget.cardList.isNotEmpty) {
|
||||||
return GridView.builder(
|
return Consumer<MzansiProfileProvider>(
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
builder: (BuildContext context,
|
||||||
shrinkWrap: true,
|
MzansiProfileProvider mzansiProfileProvider, Widget? child) {
|
||||||
padding: EdgeInsets.only(
|
return GridView.builder(
|
||||||
left: getHorizontalPaddingSize(size),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
right: getHorizontalPaddingSize(size),
|
shrinkWrap: true,
|
||||||
),
|
padding: EdgeInsets.only(
|
||||||
itemCount: widget.cardList.length,
|
left: getHorizontalPaddingSize(size),
|
||||||
gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
|
right: getHorizontalPaddingSize(size),
|
||||||
mainAxisSpacing: 0,
|
|
||||||
crossAxisSpacing: 5,
|
|
||||||
maxCrossAxisExtent: 200,
|
|
||||||
),
|
|
||||||
itemBuilder: (context, index) {
|
|
||||||
return GestureDetector(
|
|
||||||
child: MihCardDisplay(
|
|
||||||
shopName: widget.cardList[index].shop_name,
|
|
||||||
nickname: widget.cardList[index].nickname,
|
|
||||||
height: 100,
|
|
||||||
),
|
),
|
||||||
onTap: () {
|
itemCount: widget.cardList.length,
|
||||||
setScreenBrightness(1.0);
|
gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
|
||||||
viewCardWindow(index, size.width);
|
mainAxisSpacing: 0,
|
||||||
|
crossAxisSpacing: 5,
|
||||||
|
maxCrossAxisExtent: 200,
|
||||||
|
),
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
return GestureDetector(
|
||||||
|
child: MihCardDisplay(
|
||||||
|
shopName: widget.cardList[index].shop_name,
|
||||||
|
nickname: widget.cardList[index].nickname,
|
||||||
|
height: 100,
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
setScreenBrightness(1.0);
|
||||||
|
viewCardWindow(
|
||||||
|
mzansiProfileProvider,
|
||||||
|
index,
|
||||||
|
size.width,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:ken_logger/ken_logger.dart';
|
import 'package:ken_logger/ken_logger.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_dropdwn_field.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart';
|
||||||
@@ -11,18 +9,17 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class MihAddCardWindow extends StatefulWidget {
|
class MihAddCardWindow extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
|
|
||||||
const MihAddCardWindow({
|
const MihAddCardWindow({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -77,7 +74,6 @@ class _MihAddCardWindowState extends State<MihAddCardWindow> {
|
|||||||
context.pop();
|
context.pop();
|
||||||
context.goNamed(
|
context.goNamed(
|
||||||
'mzansiWallet',
|
'mzansiWallet',
|
||||||
extra: WalletArguments(widget.signedInUser, 0),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
@@ -145,207 +141,217 @@ class _MihAddCardWindowState extends State<MihAddCardWindow> {
|
|||||||
padding: MzansiInnovationHub.of(context)!.theme.screenType == "desktop"
|
padding: MzansiInnovationHub.of(context)!.theme.screenType == "desktop"
|
||||||
? EdgeInsets.symmetric(horizontal: width * 0.05)
|
? EdgeInsets.symmetric(horizontal: width * 0.05)
|
||||||
: EdgeInsets.symmetric(horizontal: width * 0),
|
: EdgeInsets.symmetric(horizontal: width * 0),
|
||||||
child: Column(
|
child: Consumer<MzansiProfileProvider>(
|
||||||
children: [
|
builder: (BuildContext context,
|
||||||
MihForm(
|
MzansiProfileProvider mzansiProfileProvider, Widget? child) {
|
||||||
formKey: _formKey,
|
return Column(
|
||||||
formFields: [
|
children: [
|
||||||
MihDropdownField(
|
MihForm(
|
||||||
controller: _shopController,
|
formKey: _formKey,
|
||||||
hintText: "Shop Name",
|
formFields: [
|
||||||
editable: true,
|
MihDropdownField(
|
||||||
enableSearch: true,
|
controller: _shopController,
|
||||||
validator: (value) {
|
hintText: "Shop Name",
|
||||||
return MihValidationServices().isEmpty(value);
|
editable: true,
|
||||||
},
|
enableSearch: true,
|
||||||
requiredText: true,
|
validator: (value) {
|
||||||
dropdownOptions: const [
|
return MihValidationServices().isEmpty(value);
|
||||||
"+More",
|
},
|
||||||
"Apple Tree",
|
requiredText: true,
|
||||||
"+More",
|
dropdownOptions: const [
|
||||||
"Apple Tree",
|
"+More",
|
||||||
"Auchan",
|
"Apple Tree",
|
||||||
"Best Before",
|
"+More",
|
||||||
"Big Save",
|
"Apple Tree",
|
||||||
"Boxer",
|
"Auchan",
|
||||||
"BP",
|
"Best Before",
|
||||||
"Builders Warehouse",
|
"Big Save",
|
||||||
"Checkers",
|
"Boxer",
|
||||||
"Choppies",
|
"BP",
|
||||||
"Clicks",
|
"Builders Warehouse",
|
||||||
"Continente",
|
"Checkers",
|
||||||
"Cotton:On",
|
"Choppies",
|
||||||
"Carrefour",
|
"Clicks",
|
||||||
"Dis-Chem",
|
"Continente",
|
||||||
"Edgars",
|
"Cotton:On",
|
||||||
"Engen",
|
"Carrefour",
|
||||||
"Eskom",
|
"Dis-Chem",
|
||||||
"Exclusive Books",
|
"Edgars",
|
||||||
"Fresh Stop",
|
"Engen",
|
||||||
"Fresmart",
|
"Eskom",
|
||||||
"Infinity",
|
"Exclusive Books",
|
||||||
"Jet",
|
"Fresh Stop",
|
||||||
"Justrite",
|
"Fresmart",
|
||||||
"Kero",
|
"Infinity",
|
||||||
"Leroy Merlin",
|
"Jet",
|
||||||
"Makro",
|
"Justrite",
|
||||||
"Naivas",
|
"Kero",
|
||||||
"OK Foods",
|
"Leroy Merlin",
|
||||||
"Panarottis",
|
"Makro",
|
||||||
"Pick n Pay",
|
"Naivas",
|
||||||
"PnA",
|
"OK Foods",
|
||||||
"PQ Clothing",
|
"Panarottis",
|
||||||
"Rage",
|
"Pick n Pay",
|
||||||
"Sefalana",
|
"PnA",
|
||||||
"Sasol",
|
"PQ Clothing",
|
||||||
"Shell",
|
"Rage",
|
||||||
"Shoprite",
|
"Sefalana",
|
||||||
"Signature Cosmetics & Fragrances",
|
"Sasol",
|
||||||
"Spar",
|
"Shell",
|
||||||
"Spur",
|
"Shoprite",
|
||||||
"TFG Group",
|
"Signature Cosmetics & Fragrances",
|
||||||
"Total Energies",
|
"Spar",
|
||||||
"Toys R Us",
|
"Spur",
|
||||||
"Woermann Brock",
|
"TFG Group",
|
||||||
"Woolworths"
|
"Total Energies",
|
||||||
],
|
"Toys R Us",
|
||||||
),
|
"Woermann Brock",
|
||||||
ValueListenableBuilder(
|
"Woolworths"
|
||||||
valueListenable: _shopName,
|
],
|
||||||
builder: (BuildContext context, String value, Widget? child) {
|
|
||||||
return Visibility(
|
|
||||||
visible: value != "",
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
MihCardDisplay(
|
|
||||||
shopName: _shopName.value,
|
|
||||||
nickname: "",
|
|
||||||
height: 200),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
MihTextFormField(
|
|
||||||
fillColor: MihColors.getSecondaryColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
|
||||||
inputColor: MihColors.getPrimaryColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
|
||||||
controller: _nicknameController,
|
|
||||||
multiLineInput: false,
|
|
||||||
requiredText: false,
|
|
||||||
hintText: "Card Title",
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Flexible(
|
|
||||||
child: MihTextFormField(
|
|
||||||
fillColor: MihColors.getSecondaryColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
|
||||||
"Dark"),
|
|
||||||
inputColor: MihColors.getPrimaryColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
|
||||||
"Dark"),
|
|
||||||
controller: _cardNumberController,
|
|
||||||
multiLineInput: false,
|
|
||||||
requiredText: true,
|
|
||||||
hintText: "Card Number",
|
|
||||||
numberMode: true,
|
|
||||||
validator: (value) {
|
|
||||||
return MihValidationServices().isEmpty(value);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const SizedBox(width: 20),
|
ValueListenableBuilder(
|
||||||
MihButton(
|
valueListenable: _shopName,
|
||||||
onPressed: () {
|
builder:
|
||||||
context.pushNamed(
|
(BuildContext context, String value, Widget? child) {
|
||||||
"barcodeScanner",
|
return Visibility(
|
||||||
extra: _cardNumberController, // Use local controller
|
visible: value != "",
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
MihCardDisplay(
|
||||||
|
shopName: _shopName.value,
|
||||||
|
nickname: "",
|
||||||
|
height: 200),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getSecondaryColor(
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
MihTextFormField(
|
||||||
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
width: 100,
|
inputColor: MihColors.getPrimaryColor(
|
||||||
child: Text(
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
"Scan",
|
"Dark"),
|
||||||
style: TextStyle(
|
controller: _nicknameController,
|
||||||
color: MihColors.getPrimaryColor(
|
multiLineInput: false,
|
||||||
|
requiredText: false,
|
||||||
|
hintText: "Card Title",
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
Flexible(
|
||||||
|
child: MihTextFormField(
|
||||||
|
fillColor: MihColors.getSecondaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
inputColor: MihColors.getPrimaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
controller: _cardNumberController,
|
||||||
|
multiLineInput: false,
|
||||||
|
requiredText: true,
|
||||||
|
hintText: "Card Number",
|
||||||
|
numberMode: true,
|
||||||
|
validator: (value) {
|
||||||
|
return MihValidationServices().isEmpty(value);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 20),
|
||||||
|
MihButton(
|
||||||
|
onPressed: () {
|
||||||
|
context.pushNamed(
|
||||||
|
"barcodeScanner",
|
||||||
|
extra:
|
||||||
|
_cardNumberController, // Use local controller
|
||||||
|
);
|
||||||
|
},
|
||||||
|
buttonColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
fontSize: 20,
|
width: 100,
|
||||||
fontWeight: FontWeight.bold,
|
child: Text(
|
||||||
|
"Scan",
|
||||||
|
style: TextStyle(
|
||||||
|
color: MihColors.getPrimaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 15),
|
||||||
|
Center(
|
||||||
|
child: MihButton(
|
||||||
|
onPressed: () async {
|
||||||
|
if (_formKey.currentState!.validate()) {
|
||||||
|
if (_shopController.text == "") {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const MIHErrorMessage(
|
||||||
|
errorType: "Input Error");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
int statusCode = await MIHMzansiWalletApis
|
||||||
|
.addLoyaltyCardAPICall(
|
||||||
|
mzansiProfileProvider.user!,
|
||||||
|
mzansiProfileProvider.user!.app_id,
|
||||||
|
_shopController.text,
|
||||||
|
_cardNumberController.text,
|
||||||
|
"",
|
||||||
|
0,
|
||||||
|
_nicknameController.text,
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
if (statusCode == 201) {
|
||||||
|
context.pop();
|
||||||
|
KenLogger.error("Card Added Successfully");
|
||||||
|
successPopUp(
|
||||||
|
"Successfully Added Card",
|
||||||
|
"The loyalty card has been added to your favourites.",
|
||||||
|
0,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
internetConnectionPopUp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
MihAlertServices().formNotFilledCompletely(context);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
buttonColor: MihColors.getGreenColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
width: 300,
|
||||||
|
child: Text(
|
||||||
|
"Add",
|
||||||
|
style: TextStyle(
|
||||||
|
color: MihColors.getPrimaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 15),
|
|
||||||
Center(
|
|
||||||
child: MihButton(
|
|
||||||
onPressed: () async {
|
|
||||||
if (_formKey.currentState!.validate()) {
|
|
||||||
if (_shopController.text == "") {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return const MIHErrorMessage(
|
|
||||||
errorType: "Input Error");
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
int statusCode =
|
|
||||||
await MIHMzansiWalletApis.addLoyaltyCardAPICall(
|
|
||||||
widget.signedInUser,
|
|
||||||
widget.signedInUser.app_id,
|
|
||||||
_shopController.text,
|
|
||||||
_cardNumberController.text,
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
_nicknameController.text,
|
|
||||||
context,
|
|
||||||
);
|
|
||||||
if (statusCode == 201) {
|
|
||||||
context.pop();
|
|
||||||
KenLogger.error("Card Added Successfully");
|
|
||||||
successPopUp(
|
|
||||||
"Successfully Added Card",
|
|
||||||
"The loyalty card has been added to your favourites.",
|
|
||||||
0,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
internetConnectionPopUp();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
MihAlertServices().formNotFilledCompletely(context);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
buttonColor: MihColors.getGreenColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
|
||||||
width: 300,
|
|
||||||
child: Text(
|
|
||||||
"Add",
|
|
||||||
style: TextStyle(
|
|
||||||
color: MihColors.getPrimaryColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
|
||||||
"Dark"),
|
|
||||||
fontSize: 20,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
);
|
||||||
],
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart';
|
||||||
@@ -13,10 +13,8 @@ import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.da
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class MihWallet extends StatefulWidget {
|
class MihWallet extends StatefulWidget {
|
||||||
final WalletArguments arguments;
|
|
||||||
const MihWallet({
|
const MihWallet({
|
||||||
super.key,
|
super.key,
|
||||||
required this.arguments,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -26,29 +24,25 @@ class MihWallet extends StatefulWidget {
|
|||||||
class _MihWalletState extends State<MihWallet> {
|
class _MihWalletState extends State<MihWallet> {
|
||||||
bool isLoading = true;
|
bool isLoading = true;
|
||||||
|
|
||||||
void setPackageIndex() {
|
Future<void> setLoyaltyCards(
|
||||||
if (widget.arguments.index >= 0 && widget.arguments.index <= 3) {
|
MzansiProfileProvider mzansiProfileProvider) async {
|
||||||
context.read<MzansiWalletProvider>().setToolIndex(widget.arguments.index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> setLoyaltyCards() async {
|
|
||||||
await MIHMzansiWalletApis.getLoyaltyCards(
|
await MIHMzansiWalletApis.getLoyaltyCards(
|
||||||
widget.arguments.signedInUser.app_id, context);
|
mzansiProfileProvider.user!.app_id, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setFavouritesCards() async {
|
Future<void> setFavouritesCards(
|
||||||
|
MzansiProfileProvider mzansiProfileProvider) async {
|
||||||
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
await MIHMzansiWalletApis.getFavouriteLoyaltyCards(
|
||||||
widget.arguments.signedInUser.app_id, context);
|
mzansiProfileProvider.user!.app_id, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
setPackageIndex();
|
var mzansiProfileProvider = context.read<MzansiProfileProvider>();
|
||||||
await setLoyaltyCards();
|
await setLoyaltyCards(mzansiProfileProvider);
|
||||||
await setFavouritesCards();
|
await setFavouritesCards(mzansiProfileProvider);
|
||||||
context.read<MihBannerAdProvider>().loadBannerAd();
|
context.read<MihBannerAdProvider>().loadBannerAd();
|
||||||
setState(() {
|
setState(() {
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
@@ -104,12 +98,8 @@ class _MihWalletState extends State<MihWallet> {
|
|||||||
|
|
||||||
List<Widget> getToolBody() {
|
List<Widget> getToolBody() {
|
||||||
List<Widget> toolBodies = [
|
List<Widget> toolBodies = [
|
||||||
MihCards(
|
MihCards(),
|
||||||
signedInUser: widget.arguments.signedInUser,
|
MihCardFavourites(),
|
||||||
),
|
|
||||||
MihCardFavourites(
|
|
||||||
signedInUser: widget.arguments.signedInUser,
|
|
||||||
),
|
|
||||||
];
|
];
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return [
|
return [
|
||||||
|
|||||||
@@ -2,16 +2,13 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class MihCardFavourites extends StatefulWidget {
|
class MihCardFavourites extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
const MihCardFavourites({
|
const MihCardFavourites({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -50,7 +47,6 @@ class _MihCardFavouritesState extends State<MihCardFavourites> {
|
|||||||
children: [
|
children: [
|
||||||
BuildLoyaltyCardList(
|
BuildLoyaltyCardList(
|
||||||
cardList: listOfCards,
|
cardList: listOfCards,
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
navIndex: 0,
|
navIndex: 0,
|
||||||
favouritesMode: true,
|
favouritesMode: true,
|
||||||
searchText: TextEditingController(),
|
searchText: TextEditingController(),
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -19,10 +18,8 @@ import 'package:mobile_scanner/mobile_scanner.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class MihCards extends StatefulWidget {
|
class MihCards extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
const MihCards({
|
const MihCards({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -127,9 +124,7 @@ class _MihCardsState extends State<MihCards> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => MihAddCardWindow(
|
builder: (context) => MihAddCardWindow(),
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,7 +193,6 @@ class _MihCardsState extends State<MihCards> {
|
|||||||
builder: (context, filteredCards, child) {
|
builder: (context, filteredCards, child) {
|
||||||
return BuildLoyaltyCardList(
|
return BuildLoyaltyCardList(
|
||||||
cardList: filteredCards, //listOfCards,
|
cardList: filteredCards, //listOfCards,
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
navIndex: 0,
|
navIndex: 0,
|
||||||
favouritesMode: false,
|
favouritesMode: false,
|
||||||
searchText: cardSearchController,
|
searchText: cardSearchController,
|
||||||
|
|||||||
@@ -171,14 +171,14 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- MIH-network
|
- MIH-network
|
||||||
# === Added section for NVIDIA GPU acceleration ===
|
# === Added section for NVIDIA GPU acceleration ===
|
||||||
runtime: nvidia
|
# runtime: nvidia
|
||||||
deploy:
|
# deploy:
|
||||||
resources:
|
# resources:
|
||||||
reservations:
|
# reservations:
|
||||||
devices:
|
# devices:
|
||||||
- driver: nvidia
|
# - driver: nvidia
|
||||||
count: all # or specify a number of GPUs
|
# count: all # or specify a number of GPUs
|
||||||
capabilities: [ gpu ]
|
# capabilities: [ gpu ]
|
||||||
#============== Firebaase ====================================================================
|
#============== Firebaase ====================================================================
|
||||||
# firebase:
|
# firebase:
|
||||||
# container_name: MIH-firebase-emulator
|
# container_name: MIH-firebase-emulator
|
||||||
|
|||||||
Reference in New Issue
Block a user