Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions assets/images/ic_russia.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 7 additions & 8 deletions lib/core/resources/assets/vector_assets.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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';


}
91 changes: 91 additions & 0 deletions lib/core/widgets/my_data_textfield.dart
Original file line number Diff line number Diff line change
@@ -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,
),
),
],
),
),
);
}
}
3 changes: 1 addition & 2 deletions lib/feature/app/routing/path_files.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
166 changes: 106 additions & 60 deletions lib/feature/profile_page/presentation/pages/my_data_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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<MyDataPage> createState() => _MyDataPageState();
}

class _MyDataPageState extends State<MyDataPage> {
// TODO Надо подумать на счет логики изменения данных
// final TextEditingController _nameController = TextEditingController();
// final TextEditingController _surnameController = TextEditingController();
// final TextEditingController _phoneController = TextEditingController();
// final TextEditingController _emailController = TextEditingController();

@override
Widget build(BuildContext context) {
return Scaffold(
Expand All @@ -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,
),
),
),
),
],
),
],
),
),
),
),
],
),
],
),
),
],
),
);
}
Expand Down