Commit 8971054d authored by Dio Maulana's avatar Dio Maulana

route for reset password

parent e2fce55c
flutter_native_splash:
color: "#ffffff"
image: assets/images/logo_green.png
# branding: assets/images/excelso_logo_green.png
color_dark: "#ffffff"
image_dark: assets/images/logo_white.png
# branding_dark: assets/images/excelso_logo_green.png
android_12:
image: assets/images/logo_green.png
icon_background_color: "#ffffff"
image_dark: assets/images/logo_white.png
icon_background_color_dark: "#ffffff"
web: true
class ResetPasswordArgs {
String idPath;
ResetPasswordArgs({
required this.idPath,
});
}
...@@ -5,12 +5,19 @@ import 'package:url_strategy/url_strategy.dart'; ...@@ -5,12 +5,19 @@ import 'package:url_strategy/url_strategy.dart';
late SharedPreferences prefs; late SharedPreferences prefs;
String titleApp = 'Tour & Travel Agency'; String titleApp = 'Tour & Travel Agency';
String initialRoute = Routes.splashRoute;
void main() { void main() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
setPathUrlStrategy(); setPathUrlStrategy();
SharedPreferences.getInstance().then( SharedPreferences.getInstance().then(
(value) { (value) {
prefs = value; prefs = value;
List<String> pathUri = Uri.base.pathSegments;
if (pathUri.length == 2) {
if (pathUri[0] == Routes.resetPasswordRoute.replaceFirst("/", "")) {
initialRoute = "${Routes.resetPasswordRoute}/${pathUri[1]}";
}
}
runApp(const MyApp()); runApp(const MyApp());
}, },
); );
...@@ -26,7 +33,7 @@ class MyApp extends StatelessWidget { ...@@ -26,7 +33,7 @@ class MyApp extends StatelessWidget {
title: titleApp, title: titleApp,
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
onGenerateRoute: RouteGenerator.getRoute, onGenerateRoute: RouteGenerator.getRoute,
initialRoute: Routes.splashRoute, initialRoute: initialRoute,
); );
} }
} }
...@@ -9,7 +9,9 @@ import 'package:tour_travel_agr/resource/size.dart'; ...@@ -9,7 +9,9 @@ import 'package:tour_travel_agr/resource/size.dart';
import 'package:tour_travel_agr/resource/style.dart'; import 'package:tour_travel_agr/resource/style.dart';
class ResetPasswordView extends StatefulWidget { class ResetPasswordView extends StatefulWidget {
const ResetPasswordView({super.key}); const ResetPasswordView({super.key, required this.idPath});
final String idPath;
@override @override
State<ResetPasswordView> createState() => _ResetPasswordViewState(); State<ResetPasswordView> createState() => _ResetPasswordViewState();
...@@ -43,6 +45,7 @@ class _ResetPasswordViewState extends State<ResetPasswordView> { ...@@ -43,6 +45,7 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
children: [ children: [
const CustomAppBar( const CustomAppBar(
text: "Reset Password", text: "Reset Password",
canGoback: false,
), ),
Expanded( Expanded(
child: SingleChildScrollView( child: SingleChildScrollView(
......
...@@ -23,7 +23,12 @@ class _SplashViewState extends State<SplashView> { ...@@ -23,7 +23,12 @@ class _SplashViewState extends State<SplashView> {
} }
_goNext() { _goNext() {
Navigator.pushNamed(context, Routes.loginRoute); // Navigator.pushNamed(context, Routes.loginRoute);
Navigator.pushNamedAndRemoveUntil(
context,
Routes.loginRoute,
(route) => false,
);
} }
@override @override
......
...@@ -31,44 +31,90 @@ class Routes { ...@@ -31,44 +31,90 @@ class Routes {
class RouteGenerator { class RouteGenerator {
static Route<dynamic> getRoute(RouteSettings routeSettings) { static Route<dynamic> getRoute(RouteSettings routeSettings) {
switch (routeSettings.name) { // print(routeSettings.name);
case Routes.splashRoute: if (routeSettings.name == Routes.splashRoute) {
return pageRouteCustom(const SplashView(), return pageRouteCustom(const SplashView(), nameRoute: Routes.splashRoute);
nameRoute: Routes.splashRoute); } else if (routeSettings.name == Routes.loginRoute) {
case Routes.loginRoute: return pageRouteCustom(LoginView(), nameRoute: Routes.loginRoute);
return pageRouteCustom(LoginView(), nameRoute: Routes.loginRoute); } else if (routeSettings.name == Routes.registerRoute) {
case Routes.registerRoute: return pageRouteCustom(const RegisterView(),
return pageRouteCustom(const RegisterView(), nameRoute: Routes.registerRoute);
nameRoute: Routes.registerRoute); } else if (routeSettings.name == Routes.verificationRoute) {
case Routes.verificationRoute: return pageRouteCustom(const OtpVerificationView(),
return pageRouteCustom(const OtpVerificationView(), nameRoute: Routes.verificationRoute);
nameRoute: Routes.verificationRoute); } else if (routeSettings.name == Routes.forgotPasswordRoute) {
case Routes.forgotPasswordRoute: return pageRouteCustom(const ForgotPasswordView(),
return pageRouteCustom(const ForgotPasswordView(), nameRoute: Routes.forgotPasswordRoute);
nameRoute: Routes.forgotPasswordRoute); } else if (routeSettings.name!.contains(Routes.resetPasswordRoute)) {
case Routes.resetPasswordRoute: List<String> splitPath =
return pageRouteCustom(const ResetPasswordView(), routeSettings.name!.split("${Routes.resetPasswordRoute}/");
nameRoute: Routes.resetPasswordRoute); if (splitPath.length == 2) {
case Routes.homeRoute: return pageRouteCustom(
return pageRouteCustom(const HomeView(), nameRoute: Routes.homeRoute); ResetPasswordView(
case Routes.profileRoute: idPath: splitPath[1],
return pageRouteCustom(const ProfileView(), ),
nameRoute: Routes.profileRoute); nameRoute: routeSettings.name!);
case Routes.changePasswordRoute: } else {
return pageRouteCustom(const ChangePasswordView(),
nameRoute: Routes.changePasswordRoute);
case Routes.editProfileRoute:
return pageRouteCustom(const EditProfileView(),
nameRoute: Routes.editProfileRoute);
case Routes.reimburseRoute:
return pageRouteCustom(const ReimbursementView(),
nameRoute: Routes.reimburseRoute);
case Routes.historyRoute:
return pageRouteCustom(const HistoryView(),
nameRoute: Routes.historyRoute);
default:
return unDefinedRoute(); return unDefinedRoute();
}
} else if (routeSettings.name == Routes.homeRoute) {
return pageRouteCustom(const HomeView(), nameRoute: Routes.homeRoute);
} else if (routeSettings.name == Routes.profileRoute) {
return pageRouteCustom(const ProfileView(),
nameRoute: Routes.profileRoute);
} else if (routeSettings.name == Routes.changePasswordRoute) {
return pageRouteCustom(const ChangePasswordView(),
nameRoute: Routes.changePasswordRoute);
} else if (routeSettings.name == Routes.editProfileRoute) {
return pageRouteCustom(const EditProfileView(),
nameRoute: Routes.editProfileRoute);
} else if (routeSettings.name == Routes.reimburseRoute) {
return pageRouteCustom(const ReimbursementView(),
nameRoute: Routes.reimburseRoute);
} else if (routeSettings.name == Routes.historyRoute) {
return pageRouteCustom(const HistoryView(),
nameRoute: Routes.historyRoute);
} else {
return unDefinedRoute();
} }
// switch (routeSettings.name) {
// case Routes.splashRoute:
// return pageRouteCustom(const SplashView(),
// nameRoute: Routes.splashRoute);
// case Routes.loginRoute:
// return pageRouteCustom(LoginView(), nameRoute: Routes.loginRoute);
// case Routes.registerRoute:
// return pageRouteCustom(const RegisterView(),
// nameRoute: Routes.registerRoute);
// case Routes.verificationRoute:
// return pageRouteCustom(const OtpVerificationView(),
// nameRoute: Routes.verificationRoute);
// case Routes.forgotPasswordRoute:
// return pageRouteCustom(const ForgotPasswordView(),
// nameRoute: Routes.forgotPasswordRoute);
// case Routes.resetPasswordRoute:
// return pageRouteCustom(const ResetPasswordView(),
// nameRoute: Routes.resetPasswordRoute);
// case Routes.homeRoute:
// return pageRouteCustom(const HomeView(), nameRoute: Routes.homeRoute);
// case Routes.profileRoute:
// return pageRouteCustom(const ProfileView(),
// nameRoute: Routes.profileRoute);
// case Routes.changePasswordRoute:
// return pageRouteCustom(const ChangePasswordView(),
// nameRoute: Routes.changePasswordRoute);
// case Routes.editProfileRoute:
// return pageRouteCustom(const EditProfileView(),
// nameRoute: Routes.editProfileRoute);
// case Routes.reimburseRoute:
// return pageRouteCustom(const ReimbursementView(),
// nameRoute: Routes.reimburseRoute);
// case Routes.historyRoute:
// return pageRouteCustom(const HistoryView(),
// nameRoute: Routes.historyRoute);
// default:
// return unDefinedRoute();
// }
} }
static void setTitle(String title) { static void setTitle(String title) {
......
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
archive:
dependency: transitive
description:
name: archive
sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a"
url: "https://pub.dev"
source: hosted
version: "3.3.7"
args:
dependency: transitive
description:
name: args
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
url: "https://pub.dev"
source: hosted
version: "2.4.2"
async: async:
dependency: transitive dependency: transitive
description: description:
...@@ -41,6 +57,30 @@ packages: ...@@ -41,6 +57,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.17.1" version: "1.17.1"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
csslib:
dependency: transitive
description:
name: csslib
sha256: "831883fb353c8bdc1d71979e5b342c7d88acfbc643113c14ae51e2442ea0f20f"
url: "https://pub.dev"
source: hosted
version: "0.17.3"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -86,6 +126,14 @@ packages: ...@@ -86,6 +126,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
flutter_native_splash:
dependency: "direct main"
description:
name: flutter_native_splash
sha256: ba45d8cfbd778478a74696b012f33ffb6b1760c9bc531b21e2964444a4870dae
url: "https://pub.dev"
source: hosted
version: "2.3.1"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
...@@ -96,6 +144,30 @@ packages: ...@@ -96,6 +144,30 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
go_router:
dependency: "direct main"
description:
name: go_router
sha256: "00d1b67d6e9fa443331da229084dd3eb04407f5a2dff22940bd7bba6af5722c3"
url: "https://pub.dev"
source: hosted
version: "7.1.1"
html:
dependency: transitive
description:
name: html
sha256: "58e3491f7bf0b6a4ea5110c0c688877460d1a6366731155c4a4580e7ded773e8"
url: "https://pub.dev"
source: hosted
version: "0.15.3"
image:
dependency: transitive
description:
name: image
sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
url: "https://pub.dev"
source: hosted
version: "4.0.17"
js: js:
dependency: transitive dependency: transitive
description: description:
...@@ -112,6 +184,14 @@ packages: ...@@ -112,6 +184,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
logging:
dependency: transitive
description:
name: logging
sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
...@@ -168,6 +248,14 @@ packages: ...@@ -168,6 +248,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.6" version: "2.1.6"
petitparser:
dependency: transitive
description:
name: petitparser
sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
url: "https://pub.dev"
source: hosted
version: "5.4.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
...@@ -184,6 +272,14 @@ packages: ...@@ -184,6 +272,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
pointycastle:
dependency: transitive
description:
name: pointycastle
sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
url: "https://pub.dev"
source: hosted
version: "3.7.3"
process: process:
dependency: transitive dependency: transitive
description: description:
...@@ -301,6 +397,22 @@ packages: ...@@ -301,6 +397,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.1" version: "0.5.1"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
universal_io:
dependency: transitive
description:
name: universal_io
sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
url_strategy: url_strategy:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -333,6 +445,22 @@ packages: ...@@ -333,6 +445,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
xml:
dependency: transitive
description:
name: xml
sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
url: "https://pub.dev"
source: hosted
version: "6.3.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
sdks: sdks:
dart: ">=3.0.0-0 <4.0.0" dart: ">=3.0.0-0 <4.0.0"
flutter: ">=3.3.0" flutter: ">=3.3.0"
...@@ -32,6 +32,8 @@ dependencies: ...@@ -32,6 +32,8 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
flutter: flutter:
sdk: flutter sdk: flutter
flutter_native_splash: ^2.3.1
go_router: ^7.1.1
shared_preferences: ^2.1.1 shared_preferences: ^2.1.1
url_strategy: ^0.2.0 url_strategy: ^0.2.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment