Commit 6665291f authored by Dio Maulana's avatar Dio Maulana

edit profile page

parent f944ddab
import 'package:flutter/material.dart';
import 'package:tour_travel_agr/helper/components_widget/custom_appbar.dart';
import 'package:tour_travel_agr/helper/components_widget/widget_button.dart';
import 'package:tour_travel_agr/helper/components_widget/widget_text_field.dart';
import 'package:tour_travel_agr/resource/assets.dart';
import 'package:tour_travel_agr/resource/colors.dart';
import 'package:tour_travel_agr/resource/size.dart';
class EditProfileView extends StatefulWidget {
const EditProfileView({super.key});
@override
State<EditProfileView> createState() => _EditProfileViewState();
}
class _EditProfileViewState extends State<EditProfileView> {
final TextEditingController nameController = TextEditingController();
final TextEditingController nikController = TextEditingController();
final TextEditingController hpController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: ColorManager.backgroundColor,
body: Container(
padding: EdgeInsets.only(
top: AppPadding.safeAreaTop(context),
left: AppPadding.p20,
right: AppPadding.p20,
bottom: AppPadding.safeAreaBot(context),
),
child: Column(
children: [
const CustomAppBar(text: "Edit Profile"),
Expanded(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
margin: EdgeInsets.only(
top: AppMargin.m12,
),
width: 112,
height: 112,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: const Color.fromARGB(255, 235, 232, 232),
),
child: Image(
width: 52,
height: 52,
image: AssetImage(
Assets.editProfileSample,
),
),
),
InputTextField(
controller: nameController,
labelText: "Nama Lengkap",
labelColor: ColorManager.primary,
borderSideActive: true,
hintText: "Nama Lengkap",
marginTop: 18,
),
InputTextField(
controller: nikController,
labelText: "NIK",
labelColor: ColorManager.primary,
borderSideActive: true,
hintText: "Nomor Induk Kependudukan",
marginTop: 12,
),
InputTextField(
controller: hpController,
labelText: "Nomor Handphone",
labelColor: ColorManager.primary,
borderSideActive: true,
hintText: "628....",
marginTop: 12,
inputType: TextInputType.number,
),
Container(
margin: const EdgeInsets.only(top: 30),
child: const CustomButton(
text: "Update",
),
)
],
),
),
)
],
),
),
);
}
}
...@@ -57,7 +57,14 @@ class BodyWidget extends StatelessWidget { ...@@ -57,7 +57,14 @@ class BodyWidget extends StatelessWidget {
child: Row( child: Row(
children: [ children: [
const Spacer(), const Spacer(),
Container( GestureDetector(
onTap: () {
Navigator.pushNamed(
context,
Routes.editProfileRoute,
);
},
child: Container(
width: 24, width: 24,
height: 24, height: 24,
child: Image( child: Image(
...@@ -67,6 +74,7 @@ class BodyWidget extends StatelessWidget { ...@@ -67,6 +74,7 @@ class BodyWidget extends StatelessWidget {
), ),
), ),
), ),
),
const SizedBox( const SizedBox(
width: 12, width: 12,
) )
...@@ -132,20 +140,6 @@ class BodyWidget extends StatelessWidget { ...@@ -132,20 +140,6 @@ class BodyWidget extends StatelessWidget {
], ],
), ),
), ),
GestureDetector(
onTap: () {
Navigator.pop(context);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
),
margin: EdgeInsets.only(
top: AppMargin.m6,
),
child: const Icon(Icons.arrow_back),
),
),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.pushNamed( Navigator.pushNamed(
...@@ -154,7 +148,7 @@ class BodyWidget extends StatelessWidget { ...@@ -154,7 +148,7 @@ class BodyWidget extends StatelessWidget {
); );
}, },
child: PorfileButton( child: PorfileButton(
marginTop: 10, marginTop: 32,
icon: Assets.passwordIcon, icon: Assets.passwordIcon,
text: "Ganti Password", text: "Ganti Password",
), ),
......
...@@ -11,6 +11,7 @@ class Assets { ...@@ -11,6 +11,7 @@ class Assets {
static String resetPassword = "${rootImage}reset_password.png"; static String resetPassword = "${rootImage}reset_password.png";
static String homeBanner = "${rootImage}home_banner.png"; static String homeBanner = "${rootImage}home_banner.png";
static String profileSample = "${rootImage}profile.jpg"; static String profileSample = "${rootImage}profile.jpg";
static String editProfileSample = "${rootImage}edit_profile.png";
// icons // icons
static String reimburseIcon = "${rootIcon}reimburse.png"; static String reimburseIcon = "${rootIcon}reimburse.png";
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:tour_travel_agr/page/change_password/change_password.dart'; import 'package:tour_travel_agr/page/profile/change_password/change_password.dart';
import 'package:tour_travel_agr/page/forgot_password/forgot_password.dart'; import 'package:tour_travel_agr/page/forgot_password/forgot_password.dart';
import 'package:tour_travel_agr/page/login/login.dart'; import 'package:tour_travel_agr/page/login/login.dart';
import 'package:tour_travel_agr/page/otp_verification/otp_verification.dart'; import 'package:tour_travel_agr/page/otp_verification/otp_verification.dart';
import 'package:tour_travel_agr/page/home/home.dart'; import 'package:tour_travel_agr/page/home/home.dart';
import 'package:tour_travel_agr/page/profile/edit_profile/edit_profile.dart';
import 'package:tour_travel_agr/page/profile/profile.dart'; import 'package:tour_travel_agr/page/profile/profile.dart';
import 'package:tour_travel_agr/page/register/register.dart'; import 'package:tour_travel_agr/page/register/register.dart';
import 'package:tour_travel_agr/page/reset_password/reset_password.dart'; import 'package:tour_travel_agr/page/reset_password/reset_password.dart';
...@@ -19,6 +20,7 @@ class Routes { ...@@ -19,6 +20,7 @@ class Routes {
static const String changePasswordRoute = "/change-password"; static const String changePasswordRoute = "/change-password";
static const String homeRoute = "/home"; static const String homeRoute = "/home";
static const String profileRoute = "/profile"; static const String profileRoute = "/profile";
static const String editProfileRoute = "/edit-profile";
static const String reimburseRoute = "/reimbursement"; static const String reimburseRoute = "/reimbursement";
static const String historyRoute = "/history"; static const String historyRoute = "/history";
} }
...@@ -44,6 +46,8 @@ class RouteGenerator { ...@@ -44,6 +46,8 @@ class RouteGenerator {
return pageRouteCustom(const ProfileView()); return pageRouteCustom(const ProfileView());
case Routes.changePasswordRoute: case Routes.changePasswordRoute:
return pageRouteCustom(const ChangePasswordView()); return pageRouteCustom(const ChangePasswordView());
case Routes.editProfileRoute:
return pageRouteCustom(const EditProfileView());
default: default:
return unDefinedRoute(); return unDefinedRoute();
} }
......
...@@ -30,6 +30,7 @@ environment: ...@@ -30,6 +30,7 @@ environment:
# versions available, run `flutter pub outdated`. # versions available, run `flutter pub outdated`.
dependencies: dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
file_picker: ^5.3.2
flutter: flutter:
sdk: flutter sdk: flutter
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