diff --git a/assets/images/ic_russia.svg b/assets/images/ic_russia.svg
new file mode 100644
index 0000000..943d57f
--- /dev/null
+++ b/assets/images/ic_russia.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/core/resources/assets/vector_assets.dart b/lib/core/resources/assets/vector_assets.dart
index 994bd2d..82f6363 100644
--- a/lib/core/resources/assets/vector_assets.dart
+++ b/lib/core/resources/assets/vector_assets.dart
@@ -7,12 +7,12 @@ class VectorAssets {
//BottomNavBar
static const String icHomeDeactive = 'assets/images/ic_home_deactive.svg';
- static const String icHistoryDeactive = 'assets/images/ic_history_deactive.svg';
- static const String icNoteBookDeactive = 'assets/images/ic_notebook_deactive.svg';
- static const String icProfileDeactive = 'assets/images/ic_profile_deactive.svg';
-
-
-
+ static const String icHistoryDeactive =
+ 'assets/images/ic_history_deactive.svg';
+ static const String icNoteBookDeactive =
+ 'assets/images/ic_notebook_deactive.svg';
+ static const String icProfileDeactive =
+ 'assets/images/ic_profile_deactive.svg';
//
static const String icHomeActive = 'assets/images/ic_home_active.svg';
@@ -24,10 +24,9 @@ class VectorAssets {
static const String icBell = 'assets/images/ic_bell.svg';
static const String icDoOrder = 'assets/images/ic_do_order.svg';
static const String icLogout = 'assets/images/ic_logout.svg';
+ static const String icRussia = 'assets/images/ic_russia.svg';
static const String icBook = 'assets/images/ic_book.svg';
static const String icPlansh = 'assets/images/ic_plansh.svg';
static const String icHistory = 'assets/images/ic_history.svg';
-
-
}
diff --git a/lib/core/widgets/my_data_textfield.dart b/lib/core/widgets/my_data_textfield.dart
new file mode 100644
index 0000000..fee4997
--- /dev/null
+++ b/lib/core/widgets/my_data_textfield.dart
@@ -0,0 +1,91 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
+import 'package:vas_app/core/resources/assets/resources.dart';
+import 'package:vas_app/core/theme/app_colors.dart';
+import 'package:vas_app/core/theme/app_corners.dart';
+import 'package:vas_app/core/theme/typography.dart';
+
+class MyDataTextField extends StatelessWidget {
+ final String text;
+ final bool isFlag;
+ // final TextEditingController textEditingController;
+
+ const MyDataTextField({
+ super.key,
+ required this.text,
+ required this.isFlag,
+
+ // required this.textEditingController,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return Padding(
+ padding: const EdgeInsets.only(bottom: 15.0),
+ child: Container(
+ width: double.infinity,
+ height: 60,
+ alignment: Alignment.centerLeft,
+ padding: const EdgeInsets.only(left: 15),
+ decoration: BoxDecoration(
+ color: AppColors.gray.shade30,
+ borderRadius: AppCorners.radius15,
+ boxShadow: [
+ BoxShadow(
+ color: Colors.grey.withOpacity(0.5), // Цвет тени
+ spreadRadius: 0, // Радиус размытия
+ blurRadius: 1, // Радиус размытия тени
+ offset: const Offset(
+ 0,
+ 2,
+ ), // Смещение тени (горизонтальное, вертикальное)
+ ),
+ ],
+ ),
+ child: Row(
+ children: [
+ isFlag
+ ? Container(
+ decoration: BoxDecoration(
+ borderRadius: AppCorners.radius25,
+ ),
+ child: SvgPicture.asset(
+ VectorAssets.icRussia,
+ width: 30,
+ height: 30,
+ fit: BoxFit.fill,
+ clipBehavior: Clip.antiAlias,
+ ),
+ )
+ : const SizedBox(),
+ Flexible(
+ child: TextFormField(
+ // controller: textEditingController,
+ initialValue: text,
+ // readOnly: true,
+ decoration: InputDecoration(
+ hintStyle: TextStyle(color: Colors.grey.shade400),
+ filled: true,
+ fillColor: Colors.grey.shade200,
+ border: OutlineInputBorder(
+ borderSide: BorderSide.none,
+ borderRadius: BorderRadius.circular(12),
+ ),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide.none,
+ borderRadius: BorderRadius.circular(12),
+ ),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide.none,
+ borderRadius: BorderRadius.circular(12),
+ ),
+ ),
+ // obscureText: true,
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/feature/app/routing/path_files.dart b/lib/feature/app/routing/path_files.dart
index 2982701..82826dc 100644
--- a/lib/feature/app/routing/path_files.dart
+++ b/lib/feature/app/routing/path_files.dart
@@ -9,9 +9,8 @@ import 'package:vas_app/feature/auth_page/presentation/pages/auth_page.dart';
import 'package:vas_app/feature/main_page/presentation/pages/main_page.dart';
import 'package:vas_app/feature/profile_page/presentation/pages/my_data_page.dart';
-
import '../../../core/theme/typography.dart';
-import '../../history_page/presentation/pages/historia_page.dart';
+import '../../history_page/presentation/pages/history_page.dart';
import '../../order_page/presentation/pages/order_page.dart';
import '../../profile_page/presentation/pages/profile_page.dart';
import 'route_path.dart';
diff --git a/lib/feature/history_page/presentation/pages/historia_page.dart b/lib/feature/history_page/presentation/pages/history_page.dart
similarity index 100%
rename from lib/feature/history_page/presentation/pages/historia_page.dart
rename to lib/feature/history_page/presentation/pages/history_page.dart
diff --git a/lib/feature/profile_page/presentation/pages/my_data_page.dart b/lib/feature/profile_page/presentation/pages/my_data_page.dart
index c8c184e..37a90b0 100644
--- a/lib/feature/profile_page/presentation/pages/my_data_page.dart
+++ b/lib/feature/profile_page/presentation/pages/my_data_page.dart
@@ -3,12 +3,29 @@ import 'package:flutter_staggered_animations/flutter_staggered_animations.dart';
import 'package:flutter_svg/svg.dart';
import 'package:vas_app/core/resources/assets/resources.dart';
import 'package:vas_app/core/theme/app_colors.dart';
+import 'package:vas_app/core/theme/button_style.dart';
import 'package:vas_app/core/theme/typography.dart';
+import 'package:vas_app/core/widgets/my_data_textfield.dart';
import 'package:vas_app/feature/app/routing/route_path.dart';
-class MyDataPage extends StatelessWidget {
- const MyDataPage({Key? key}) : super(key: key);
+class MyDataPage extends StatefulWidget {
+ const MyDataPage({
+ super.key,
+ });
+
static String name = RoutePath.myDataPagePath;
+
+ @override
+ State createState() => _MyDataPageState();
+}
+
+class _MyDataPageState extends State {
+ // TODO Надо подумать на счет логики изменения данных
+ // final TextEditingController _nameController = TextEditingController();
+ // final TextEditingController _surnameController = TextEditingController();
+ // final TextEditingController _phoneController = TextEditingController();
+ // final TextEditingController _emailController = TextEditingController();
+
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -30,72 +47,101 @@ class MyDataPage extends StatelessWidget {
},
),
),
- body: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: AnimationConfiguration.toStaggeredList(
- duration: const Duration(milliseconds: 1400),
- childAnimationBuilder: (widget) => SlideAnimation(
- verticalOffset: 50.0,
- curve: Curves.easeOut,
- child: FadeInAnimation(
- child: widget,
- ),
- ),
- children: [
- Center(
- child: Padding(
- padding: const EdgeInsets.only(top: 15.0, left: 15, right: 15),
- child: SizedBox(
- height: 150,
- width: 150,
- child: CircleAvatar(
- child: SvgPicture.asset(
- VectorAssets.icProfileActive,
- width: 150,
- height: 150,
- fit: BoxFit.cover,
- ),
- ),
+ body: ListView(
+ children: [
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: AnimationConfiguration.toStaggeredList(
+ duration: const Duration(milliseconds: 1400),
+ childAnimationBuilder: (widget) => SlideAnimation(
+ verticalOffset: 50.0,
+ curve: Curves.easeOut,
+ child: FadeInAnimation(
+ child: widget,
),
),
- ),
- const SizedBox(height: 30),
- GestureDetector(
- onTap: () {},
- child: Center(
- child: Padding(
- padding: const EdgeInsets.symmetric(horizontal: 15.0),
- child: Column(
- children: [
- Text(
- 'Редактировать',
- style: AppTypography.font16Regular.copyWith(
- fontWeight: FontWeight.w400,
- color: AppColors.blue200,
+ children: [
+ Center(
+ child: Padding(
+ padding:
+ const EdgeInsets.only(top: 15.0, left: 15, right: 15),
+ child: SizedBox(
+ height: 150,
+ width: 150,
+ child: CircleAvatar(
+ child: SvgPicture.asset(
+ VectorAssets.icProfileActive,
+ width: 150,
+ height: 150,
+ fit: BoxFit.cover,
),
),
- SizedBox(
- height: 30,
- ),
- Container(
- width: double.infinity,
- height: 60,
- alignment: Alignment.centerLeft,
- padding: const EdgeInsets.only(left: 15),
- decoration: BoxDecoration(
- color: AppColors.gray.shade30,
- borderRadius: BorderRadius.circular(15),
- shape: BoxShape.rectangle,
- ),
- child: Text('Никита'),
+ ),
+ ),
+ ),
+ const SizedBox(height: 30),
+ GestureDetector(
+ onTap: () {},
+ child: Center(
+ child: Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 15.0),
+ child: Column(
+ children: [
+ Text(
+ 'Редактировать',
+ style: AppTypography.font16Regular.copyWith(
+ fontWeight: FontWeight.w400,
+ color: AppColors.blue200,
+ ),
+ ),
+ const SizedBox(
+ height: 30,
+ ),
+ const MyDataTextField(
+ text: 'Никита',
+ isFlag: false,
+ // textEditingController: _nameController,
+ ),
+ const MyDataTextField(
+ text: 'Алексеевич',
+ isFlag: false,
+ // textEditingController: _surnameController,
+ ),
+ const MyDataTextField(
+ text: '+7 999 999 99 99',
+ isFlag: true,
+ // textEditingController: _phoneController,
+ ),
+ const MyDataTextField(
+ text: 'nikita2024@yandex.ru',
+ isFlag: false,
+ // textEditingController: _emailController,
+ ),
+ const SizedBox(
+ height: 30,
+ ),
+ Center(
+ child: ElevatedButton(
+ style: AppButtonStyle.primaryStyleOrange,
+ onPressed: () {},
+ child: Text(
+ 'Сохранить изменения',
+ style: AppTypography.font18Regular.copyWith(
+ color: AppColors.white,
+ fontWeight: FontWeight.w700,
+ ),
+ ),
+ ),
+ ),
+ ],
),
- ],
+ ),
),
),
- ),
+ ],
),
- ],
- ),
+ ),
+ ],
),
);
}