Route to code_success screen on code applied
This commit is contained in:
parent
3d96e73ad0
commit
8661b4dd45
|
@ -1,6 +1,8 @@
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:logging/logging.dart";
|
import "package:logging/logging.dart";
|
||||||
import "package:photos/extensions/input_formatter.dart";
|
import "package:photos/extensions/input_formatter.dart";
|
||||||
|
import "package:photos/models/api/storage_bonus/storage_bonus.dart";
|
||||||
|
import "package:photos/models/user_details.dart";
|
||||||
import "package:photos/services/storage_bonus_service.dart";
|
import "package:photos/services/storage_bonus_service.dart";
|
||||||
import "package:photos/theme/ente_theme.dart";
|
import "package:photos/theme/ente_theme.dart";
|
||||||
import "package:photos/ui/components/button_widget.dart";
|
import "package:photos/ui/components/button_widget.dart";
|
||||||
|
@ -8,10 +10,18 @@ import "package:photos/ui/components/icon_button_widget.dart";
|
||||||
import "package:photos/ui/components/models/button_type.dart";
|
import "package:photos/ui/components/models/button_type.dart";
|
||||||
import "package:photos/ui/components/title_bar_title_widget.dart";
|
import "package:photos/ui/components/title_bar_title_widget.dart";
|
||||||
import "package:photos/ui/components/title_bar_widget.dart";
|
import "package:photos/ui/components/title_bar_widget.dart";
|
||||||
|
import "package:photos/ui/growth/code_success_screen.dart";
|
||||||
import "package:photos/utils/dialog_util.dart";
|
import "package:photos/utils/dialog_util.dart";
|
||||||
|
|
||||||
class ApplyCodeScreen extends StatefulWidget {
|
class ApplyCodeScreen extends StatefulWidget {
|
||||||
const ApplyCodeScreen({super.key});
|
// referrerView and userDetails used to render code_success_screen
|
||||||
|
final ReferralView referralView;
|
||||||
|
final UserDetails userDetails;
|
||||||
|
const ApplyCodeScreen(
|
||||||
|
this.referralView,
|
||||||
|
this.userDetails, {
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ApplyCodeScreen> createState() => _ApplyCodeScreenState();
|
State<ApplyCodeScreen> createState() => _ApplyCodeScreenState();
|
||||||
|
@ -112,14 +122,22 @@ class _ApplyCodeScreenState extends State<ApplyCodeScreen> {
|
||||||
await StorageBonusService.instance
|
await StorageBonusService.instance
|
||||||
.getGateway()
|
.getGateway()
|
||||||
.claimReferralCode(code.trim().toUpperCase());
|
.claimReferralCode(code.trim().toUpperCase());
|
||||||
Navigator.of(context).pop();
|
|
||||||
|
Navigator.of(context).pushReplacement(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => CodeSuccessScreen(
|
||||||
|
widget.referralView,
|
||||||
|
widget.userDetails,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Logger('$runtimeType')
|
Logger('$runtimeType')
|
||||||
.severe("failed to apply referral", e);
|
.severe("failed to apply referral", e);
|
||||||
showErrorDialogForException(
|
showErrorDialogForException(
|
||||||
context: context,
|
context: context,
|
||||||
exception: e as Exception,
|
exception: e as Exception,
|
||||||
);
|
apiErrorPrefix: "Failed to apply code");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -216,7 +216,7 @@ class ReferralWidget extends StatelessWidget {
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await routeToPage(
|
await routeToPage(
|
||||||
context,
|
context,
|
||||||
const ApplyCodeScreen(),
|
ApplyCodeScreen(referralView, userDetails),
|
||||||
);
|
);
|
||||||
notifyParent();
|
notifyParent();
|
||||||
},
|
},
|
||||||
|
|
|
@ -43,14 +43,15 @@ Future<ButtonResult?> showErrorDialogForException({
|
||||||
required BuildContext context,
|
required BuildContext context,
|
||||||
required Exception exception,
|
required Exception exception,
|
||||||
bool isDismissible = true,
|
bool isDismissible = true,
|
||||||
|
String apiErrorPrefix = "It looks like something went wrong.",
|
||||||
}) async {
|
}) async {
|
||||||
String errorMessage =
|
String errorMessage =
|
||||||
"It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team.";
|
"It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team.";
|
||||||
if (exception is DioError &&
|
if (exception is DioError &&
|
||||||
exception.response != null &&
|
exception.response != null &&
|
||||||
exception.response!.data["code"] != null) {
|
exception.response!.data["code"] != null) {
|
||||||
errorMessage = "It looks like something went wrong. \n\nReason: " +
|
errorMessage =
|
||||||
exception.response!.data["code"];
|
"$apiErrorPrefix\n\nReason: " + exception.response!.data["code"];
|
||||||
}
|
}
|
||||||
return showDialogWidget(
|
return showDialogWidget(
|
||||||
context: context,
|
context: context,
|
||||||
|
|
Loading…
Reference in a new issue