From 2e997e68b0a075e05ce2ebddf2ba626ca4b05c2d Mon Sep 17 00:00:00 2001 From: shin seung jae Date: Sat, 11 Nov 2023 11:39:55 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Widget=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/views/EditProfileDrawerScreen.dart | 10 +-- lib/views/FeedbackDrawerScreen.dart | 4 +- lib/views/Login_page_changePW.dart | 8 +-- lib/views/Login_page_searchID.dart | 14 ++--- lib/views/Login_page_searchPW.dart | 16 ++--- lib/views/login_screen.dart | 16 ++--- lib/views/matching_loding.dart | 4 +- lib/views/setprofile.dart | 12 ++-- lib/views/signup_creen.dart | 26 ++++---- lib/views/signup_done.dart | 6 +- lib/views/widgets/CustomButtonWidget.dart | 43 +++++++++++++ lib/views/widgets/EmailTextFieldWidget.dart | 50 +++++++++++++++ lib/views/widgets/IdTextFieldWidget.dart | 47 ++++++++++++++ lib/views/widgets/SuchatAppBarWidget.dart | 68 +++++++++++++++++++++ lib/views/widgets/TextFontWidget.dart | 36 +++++++++++ 15 files changed, 302 insertions(+), 58 deletions(-) create mode 100644 lib/views/widgets/CustomButtonWidget.dart create mode 100644 lib/views/widgets/EmailTextFieldWidget.dart create mode 100644 lib/views/widgets/IdTextFieldWidget.dart create mode 100644 lib/views/widgets/SuchatAppBarWidget.dart create mode 100644 lib/views/widgets/TextFontWidget.dart diff --git a/lib/views/EditProfileDrawerScreen.dart b/lib/views/EditProfileDrawerScreen.dart index 10c7f2a..53cb255 100644 --- a/lib/views/EditProfileDrawerScreen.dart +++ b/lib/views/EditProfileDrawerScreen.dart @@ -2,11 +2,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/Main_page.dart'; import 'package:suwon/views/signup_creen.dart'; -import 'package:suwon/views/widgets/appbar.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/viewmodels/signup_viewmodel.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; -import 'package:suwon/views/widgets/font.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; class EditProfileDrawerScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -27,7 +27,7 @@ class EditProfileDrawerScreen extends StatelessWidget { Container( //상단바 margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: ' 프로필 설정', onPressed: () { signupViewModel.idController.clear(); @@ -70,7 +70,7 @@ class EditProfileDrawerScreen extends StatelessWidget { ), child: TextButton( onPressed: () {}, - child: TextFont.fontRegular( + child: TextFontWidget.fontRegular( color: Color(0xFFFFFFFF), fontSize: 14, text: '중복 확인')), diff --git a/lib/views/FeedbackDrawerScreen.dart b/lib/views/FeedbackDrawerScreen.dart index 00a9551..18a5eb4 100644 --- a/lib/views/FeedbackDrawerScreen.dart +++ b/lib/views/FeedbackDrawerScreen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/widgets/DrawerAppBarWidget.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; class FeedbackDrawerScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -52,7 +52,7 @@ class FeedbackDrawerScreen extends StatelessWidget { ), ), SizedBox(height: 24.h), - CustomButton( + CustomButtonWidget( text: "제출하기", backgroundColor: Color(0xFF2D64D8), onPressed: () {}, diff --git a/lib/views/Login_page_changePW.dart b/lib/views/Login_page_changePW.dart index 37eba13..ccd8420 100644 --- a/lib/views/Login_page_changePW.dart +++ b/lib/views/Login_page_changePW.dart @@ -6,8 +6,8 @@ import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; import 'package:suwon/views/login_screen.dart'; -import 'package:suwon/views/widgets/appbar.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; class ChangePW extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -29,7 +29,7 @@ class ChangePW extends StatelessWidget { children: [ Container( margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: '비밀번호 변경', onPressed: () { accountRecoveryViewModel.pwController.clear(); @@ -93,7 +93,7 @@ class ChangePW extends StatelessWidget { : Icons.visibility, ), SizedBox(height: 48.h), - CustomButton( + CustomButtonWidget( text: '변경 완료', color: Colors.white, backgroundColor: Color(0xff2D64D8), diff --git a/lib/views/Login_page_searchID.dart b/lib/views/Login_page_searchID.dart index 2504818..ed06774 100644 --- a/lib/views/Login_page_searchID.dart +++ b/lib/views/Login_page_searchID.dart @@ -4,9 +4,9 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; import 'package:suwon/viewmodels/signup_viewmodel.dart'; import 'package:suwon/views/login_screen.dart'; -import 'package:suwon/views/widgets/appbar.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; -import 'package:suwon/views/widgets/emailfield.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; import 'package:provider/provider.dart'; class SearchID extends StatelessWidget { @@ -31,7 +31,7 @@ class SearchID extends StatelessWidget { Container( //상단바 margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: '아이디 찾기', onPressed: () { accountRecoveryViewModel.emailController.clear(); @@ -55,7 +55,7 @@ class SearchID extends StatelessWidget { SizedBox( height: 42.h, ), - EmailFD( + EmailTextFieldWidget( controller: accountRecoveryViewModel.emailController, onChanged: (value) => @@ -102,7 +102,7 @@ class SearchID extends StatelessWidget { SizedBox( height: 12.h, ), - CustomButton( + CustomButtonWidget( text: '확인메일 전송', color: Colors.white, backgroundColor: Color(0xff2D64D8), @@ -111,7 +111,7 @@ class SearchID extends StatelessWidget { SizedBox( height: 12.h, ), - CustomButton( + CustomButtonWidget( text: '로그인 하러가기', color: Colors.white, backgroundColor: Color(0xff111111), diff --git a/lib/views/Login_page_searchPW.dart b/lib/views/Login_page_searchPW.dart index 0eafa27..d141f39 100644 --- a/lib/views/Login_page_searchPW.dart +++ b/lib/views/Login_page_searchPW.dart @@ -4,10 +4,10 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:provider/provider.dart'; import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; import 'package:suwon/views/login_screen.dart'; -import 'package:suwon/views/widgets/appbar.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; -import 'package:suwon/views/widgets/emailfield.dart'; -import 'package:suwon/views/widgets/idfield.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; +import 'package:suwon/views/widgets/IdTextFieldWidget.dart'; class SearchPW extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -30,7 +30,7 @@ class SearchPW extends StatelessWidget { children: [ Container( margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: '비밀번호 찾기', onPressed: () { accountRecoveryViewModel.idController.clear(); @@ -53,7 +53,7 @@ class SearchPW extends StatelessWidget { SizedBox( height: 42.h, ), - IdFD( + IdTextFieldWidget( controller: accountRecoveryViewModel.idController, onChanged: (value) => accountRecoveryViewModel @@ -61,7 +61,7 @@ class SearchPW extends StatelessWidget { SizedBox( height: 21.h, ), - EmailFD( + EmailTextFieldWidget( controller: accountRecoveryViewModel.emailController, onChanged: (value) => @@ -110,7 +110,7 @@ class SearchPW extends StatelessWidget { SizedBox( height: 12.h, ), - CustomButton( + CustomButtonWidget( text: '인증코드 전송', color: Colors.white, backgroundColor: Color(0xff2D64D8), diff --git a/lib/views/login_screen.dart b/lib/views/login_screen.dart index d1c72c0..1980c29 100644 --- a/lib/views/login_screen.dart +++ b/lib/views/login_screen.dart @@ -4,10 +4,10 @@ import 'package:suwon/views/Login_page_changePW.dart'; import 'package:suwon/views/Login_page_searchID.dart'; import 'package:suwon/views/Main_page.dart'; import 'package:suwon/views/Signup_creen.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:provider/provider.dart'; import 'package:suwon/viewmodels/login_viewmodel.dart'; -import 'package:suwon/views/widgets/font.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; import 'Login_page_searchPW.dart'; @@ -52,7 +52,7 @@ class NewLoignMain extends StatelessWidget { hintText: 'PW', obscureText: true), SizedBox(height: 24.h), - CustomButton( + CustomButtonWidget( // 로그인 버튼 text: '로그인', color: Colors.white, @@ -84,11 +84,11 @@ class NewLoignMain extends StatelessWidget { builder: (context) => const SearchID()), ); }, - child: TextFont.fontRegular( + child: TextFontWidget.fontRegular( text: '아이디 찾기', fontSize: 14.sp, color: Color(0xFF232323))), - TextFont.fontRegular( + TextFontWidget.fontRegular( text: '/', fontSize: 16.sp, color: Color(0xFFBFBFBF)), TextButton( onPressed: () { @@ -98,7 +98,7 @@ class NewLoignMain extends StatelessWidget { builder: (context) => SearchPW()), ); }, - child: TextFont.fontRegular( + child: TextFontWidget.fontRegular( text: '비밀번호 찾기', fontSize: 14.sp, color: Color(0xFF232323))), @@ -116,7 +116,7 @@ class NewLoignMain extends StatelessWidget { thickness: 1, color: Colors.grey, )), - TextFont.fontRegular( + TextFontWidget.fontRegular( text: '계정이 없으신가요?', fontSize: 14.sp, color: Color(0xFF767676)), @@ -131,7 +131,7 @@ class NewLoignMain extends StatelessWidget { SizedBox( height: 18.h, ), - CustomButton( + CustomButtonWidget( text: '회원가입', color: Colors.white, backgroundColor: Color(0xFF111111), diff --git a/lib/views/matching_loding.dart b/lib/views/matching_loding.dart index 69ffd4e..1814033 100644 --- a/lib/views/matching_loding.dart +++ b/lib/views/matching_loding.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/Main_page.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; class MatchingLoading extends StatefulWidget { const MatchingLoading({Key? key}) : super(key: key); @@ -89,7 +89,7 @@ class _MatchingLoadingState extends State { fontsize: 16.sp, ), SizedBox(height: 60.h), - CustomButton( + CustomButtonWidget( text: '매칭 중단하기', backgroundColor: Color(0xff111111), onPressed: () { diff --git a/lib/views/setprofile.dart b/lib/views/setprofile.dart index a85c009..4e88672 100644 --- a/lib/views/setprofile.dart +++ b/lib/views/setprofile.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/signup_creen.dart'; -import 'package:suwon/views/widgets/appbar.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/viewmodels/signup_viewmodel.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; -import 'package:suwon/views/widgets/font.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; class SetProfile extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -26,7 +26,7 @@ class SetProfile extends StatelessWidget { Container( //상단바 margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: ' 프로필 설정', onPressed: () { signupViewModel.idController.clear(); @@ -68,7 +68,7 @@ class SetProfile extends StatelessWidget { ), child: TextButton( onPressed: () {}, - child: TextFont.fontRegular( + child: TextFontWidget.fontRegular( color: Color(0xFFFFFFFF), fontSize: 14, text: '중복 확인')), @@ -86,7 +86,7 @@ class SetProfile extends StatelessWidget { SizedBox(height: 12.h), Self(controller: signupViewModel.selfController), SizedBox(height: 48.h), - CustomButton( + CustomButtonWidget( text: '시작하기', color: Colors.white, backgroundColor: Color(0xFF2D64D8), diff --git a/lib/views/signup_creen.dart b/lib/views/signup_creen.dart index 4d3283e..b8a2bc1 100644 --- a/lib/views/signup_creen.dart +++ b/lib/views/signup_creen.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/login_screen.dart'; import 'package:suwon/views/signup_done.dart'; -import 'package:suwon/views/widgets/appbar.dart'; +import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/viewmodels/signup_viewmodel.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; -import 'package:suwon/views/widgets/emailfield.dart'; -import 'package:suwon/views/widgets/font.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; class SignupScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @@ -28,7 +28,7 @@ class SignupScreen extends StatelessWidget { Container( //상단바 margin: EdgeInsets.symmetric(horizontal: 20.w), - child: SuchatAppBar( + child: SuchatAppBarWidget( text: ' 회원가입', onPressed: () { signupViewModel.idController.clear(); @@ -88,12 +88,12 @@ class SignupScreen extends StatelessWidget { : Icons.visibility, ), SizedBox(height: 46.h), - EmailFD( + EmailTextFieldWidget( controller: signupViewModel.emailController, onChanged: (value) => signupViewModel.isEmailValid), SizedBox(height: 57.h), - CustomButton( + CustomButtonWidget( text: '회원가입', color: Colors.white, backgroundColor: Color(0xFF111111), @@ -110,7 +110,7 @@ class SignupScreen extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - TextFont.fontSemiBold( + TextFontWidget.fontSemiBold( text: '회원가입 시 ', fontSize: 12.sp, color: Color(0xFF989898), @@ -119,13 +119,13 @@ class SignupScreen extends StatelessWidget { onTap: () { // 버튼이 클릭되었을 때 실행될 코드 }, - child: TextFont.fontSemiBold( + child: TextFontWidget.fontSemiBold( text: '서비스 이용약관', fontSize: 12.sp, color: Color(0xFF2D64D8), ), ), - TextFont.fontSemiBold( + TextFontWidget.fontSemiBold( text: ' 및 ', fontSize: 12.sp, color: Color(0xFF989898), @@ -134,7 +134,7 @@ class SignupScreen extends StatelessWidget { onTap: () { // 버튼이 클릭되었을 때 실행될 코드 }, - child: TextFont.fontSemiBold( + child: TextFontWidget.fontSemiBold( text: '개인정보 처리방침', fontSize: 12.sp, color: Color(0xFF2D64D8), @@ -142,7 +142,7 @@ class SignupScreen extends StatelessWidget { ), ], ), - TextFont.fontSemiBold( + TextFontWidget.fontSemiBold( text: '하신 것으로 간주됩니다', fontSize: 12.sp, color: Color(0xFF989898), @@ -212,7 +212,7 @@ class IdInputFD extends StatelessWidget { ), child: TextButton( onPressed: () {}, - child: TextFont.fontRegular( + child: TextFontWidget.fontRegular( color: Color(0xFFFFFFFF), fontSize: 14, text: '중복 확인')), ), ), diff --git a/lib/views/signup_done.dart b/lib/views/signup_done.dart index a6db652..d20d354 100644 --- a/lib/views/signup_done.dart +++ b/lib/views/signup_done.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/widgets/NormalAlertDialogWidget.dart'; -import 'package:suwon/views/widgets/csbutton.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/login_screen.dart'; class SignUpDone extends StatefulWidget { @@ -90,7 +90,7 @@ class _SignUpDoneState extends State { ), ], ), - CustomButton( + CustomButtonWidget( text: '로그인', color: Colors.black, border: Border.all(width: 1, color: Color(0xFF2D64D8)), @@ -107,7 +107,7 @@ class _SignUpDoneState extends State { SizedBox( height: 12.h, ), - CustomButton( + CustomButtonWidget( text: '메일 재발송', backgroundColor: Color(0xFF111111), onPressed: () { diff --git a/lib/views/widgets/CustomButtonWidget.dart b/lib/views/widgets/CustomButtonWidget.dart new file mode 100644 index 0000000..cc7f6a0 --- /dev/null +++ b/lib/views/widgets/CustomButtonWidget.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class CustomButtonWidget extends StatelessWidget { + final String text; + final Color backgroundColor; + final VoidCallback onPressed; + final Border? border; + final Color color; + + const CustomButtonWidget({ + required this.text, + required this.backgroundColor, + required this.onPressed, + required this.color, + this.border, + }); + + @override + Widget build(BuildContext context) { + return Container( + height: 60.h, + width: double.maxFinite, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: backgroundColor, + border: border, + ), + child: TextButton( + onPressed: onPressed, + child: Text( + text, + style: TextStyle( + color: color, + fontSize: 18.sp, + fontWeight: FontWeight.w800, + fontFamily: 'Pretendard-Bold', + ), + ), + ), + ); + } +} diff --git a/lib/views/widgets/EmailTextFieldWidget.dart b/lib/views/widgets/EmailTextFieldWidget.dart new file mode 100644 index 0000000..0eeaaa5 --- /dev/null +++ b/lib/views/widgets/EmailTextFieldWidget.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; + +class EmailTextFieldWidget extends StatelessWidget { + final TextEditingController? controller; + final ValueChanged? onChanged; + + const EmailTextFieldWidget({ + required this.controller, + required this.onChanged, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Container( + decoration: BoxDecoration( + border: Border( + bottom: BorderSide( + width: 2, + color: Color(0xFFBFBFBF), + ), + ), + ), + child: TextFormField( + maxLength: 20, + controller: controller, + onChanged: onChanged, + decoration: InputDecoration( + labelStyle: TextStyle( + fontFamily: 'Pretendard-Light', + fontSize: 16, + fontWeight: FontWeight.w400, + color: Color(0xFF989898), + ), + suffix: TextFontWidget.fontRegular( + text: '@ suwon.ac.kr', + fontSize: 16, + color: Color(0xFF000000)), + hintText: ' 포털 이메일 입력', + counterText: '', // 입력 길이 카운터 텍스트를 빈 문자열로 설정하여 표시하지 않음 + errorStyle: TextStyle(height: 0), // 에러 메시지 표시 공간을 없앰 + ), + ), + ), + ], + ); + } +} diff --git a/lib/views/widgets/IdTextFieldWidget.dart b/lib/views/widgets/IdTextFieldWidget.dart new file mode 100644 index 0000000..cbb338e --- /dev/null +++ b/lib/views/widgets/IdTextFieldWidget.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; + +class IdTextFieldWidget extends StatelessWidget { + final TextEditingController? controller; + final ValueChanged? onChanged; + + const IdTextFieldWidget({ + required this.controller, + required this.onChanged, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Container( + decoration: BoxDecoration( + border: Border( + bottom: BorderSide( + width: 2, + color: Color(0xFFBFBFBF), + ), + ), + ), + child: TextFormField( + maxLength: 20, + controller: controller, + onChanged: onChanged, + decoration: InputDecoration( + labelStyle: TextStyle( + fontFamily: 'Pretendard', + fontSize: 16, + fontWeight: FontWeight.w400, + color: Color(0xFF989898), + ), + + hintText: ' 아이디 입력', + counterText: '', // 입력 길이 카운터 텍스트를 빈 문자열로 설정하여 표시하지 않음 + errorStyle: TextStyle(height: 0), // 에러 메시지 표시 공간을 없앰 + ), + ), + ), + ], + ); + } +} diff --git a/lib/views/widgets/SuchatAppBarWidget.dart b/lib/views/widgets/SuchatAppBarWidget.dart new file mode 100644 index 0000000..e3ff747 --- /dev/null +++ b/lib/views/widgets/SuchatAppBarWidget.dart @@ -0,0 +1,68 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class SuchatAppBarWidget extends StatelessWidget { + final String text; + final VoidCallback onPressed; + + const SuchatAppBarWidget({ + required this.text, + required this.onPressed, + }); + + @override + Widget build(BuildContext context) { + return Container( + //상단 회원가입+뒤로가기 버튼 + width: double.maxFinite, + + height: 60.h, + child: Row( + children: [ + SizedBox( + child: IconButton( + onPressed: onPressed, + icon: Icon( + Icons.arrow_back_ios_outlined, + size: 18.sp, + )), + ), + Container( + alignment: Alignment.center, + width: 259.w, + child: Text( + text, + style: TextStyle( + fontFamily: 'Pretendard-Regular', + fontSize: 18.sp, + fontWeight: FontWeight.w600), + ), + ), + ], + ), + ); + } +} + +/*Container( + color: Colors.red, + child: IconButton( + onPressed: onPressed, + icon: Icon( + Icons.arrow_back_ios_outlined, + size: 18.sp, + )), + ), + ), + Container( + alignment: Alignment.center, + color: Colors.blue, + child: Text( + text, + style: TextStyle( + fontFamily: 'Pretendard-Regular', + fontSize: 18.sp, + fontWeight: FontWeight.w600), + ), + ), +*/ \ No newline at end of file diff --git a/lib/views/widgets/TextFontWidget.dart b/lib/views/widgets/TextFontWidget.dart new file mode 100644 index 0000000..ae651a6 --- /dev/null +++ b/lib/views/widgets/TextFontWidget.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class TextFontWidget { + static Widget fontRegular({ + required String text, + required double fontSize, + required Color color, + }) { + return Text( + text, + style: TextStyle( + fontFamily: 'Pretendard-Regular', + fontSize: fontSize, + color: color, + fontWeight: FontWeight.w400, + ), + ); + } + + static Widget fontSemiBold({ + required String text, + required double fontSize, + required Color color, + }) { + return Text( + text, + style: TextStyle( + fontFamily: 'Pretendard-SemiBold', // 여기에 원하는 폰트 설정 + fontSize: fontSize, + color: color, + fontWeight: FontWeight.w600, + ), + ); + } +} From 79dc5754740f2e718feaf8c477c3f8f370cc1f15 Mon Sep 17 00:00:00 2001 From: shin seung jae Date: Sat, 11 Nov 2023 12:04:06 +0900 Subject: [PATCH 2/3] =?UTF-8?q?ViewModel,=20Screen=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD=20/=20asstes=20->=20assets=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=84=B0=EB=A6=AC=EB=AA=85=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {asstes => assets}/Group.png | Bin {asstes => assets}/Icon_menu.svg | 0 {asstes => assets}/SUCHAT.png | Bin {asstes => assets}/Vector6.png | Bin {asstes => assets}/bubble.png | Bin {asstes => assets}/bubble_main.PNG | Bin {asstes => assets}/close.png | Bin {asstes => assets}/feedback.svg | 0 {asstes => assets}/font/KCC-Chassam.otf | Bin {asstes => assets}/font/KCC-Chassam.ttf | Bin {asstes => assets}/font/Pretendard-Light.ttf | Bin .../font/Pretendard-Regular.ttf | Bin .../font/Pretendard-SemiBold.ttf | Bin {asstes => assets}/logout.svg | 0 {asstes => assets}/onclikmenu.svg | 0 {asstes => assets}/policy.svg | 0 {asstes => assets}/profile.svg | 0 {asstes => assets}/vector.svg | 0 lib/main.dart | 19 +++-- ..._viewmodel.dart => AccountRecoveryVM.dart} | 12 ++-- .../{login_viewmodel.dart => LoginVM.dart} | 2 +- .../{signup_viewmodel.dart => SignupVM.dart} | 2 +- ...hangePW.dart => ChangePasswordScreen.dart} | 12 ++-- lib/views/CustomDrawerScreen.dart | 18 ++--- lib/views/EditProfileDrawerScreen.dart | 10 +-- lib/views/{Main_page.dart => HomeScreen.dart} | 14 ++-- .../{login_screen.dart => LoginScreen.dart} | 24 +++---- ...loding.dart => MatchingLoadingScreen.dart} | 10 +-- ...page_searchID.dart => SearchIdScreen.dart} | 17 +++-- ...earchPW.dart => SearchPasswordScreen.dart} | 14 ++-- ...{setprofile.dart => SetProfileScreen.dart} | 10 +-- ...signup_done.dart => SignUpDoneScreen.dart} | 10 +-- .../{signup_creen.dart => SignUpScreen.dart} | 17 ++--- lib/views/widgets/DrawerAppBarWidget.dart | 2 +- lib/views/widgets/appbar.dart | 68 ------------------ lib/views/widgets/csbutton.dart | 43 ----------- lib/views/widgets/emailfield.dart | 50 ------------- lib/views/widgets/font.dart | 36 ---------- lib/views/widgets/idfield.dart | 47 ------------ 39 files changed, 93 insertions(+), 344 deletions(-) rename {asstes => assets}/Group.png (100%) rename {asstes => assets}/Icon_menu.svg (100%) rename {asstes => assets}/SUCHAT.png (100%) rename {asstes => assets}/Vector6.png (100%) rename {asstes => assets}/bubble.png (100%) rename {asstes => assets}/bubble_main.PNG (100%) rename {asstes => assets}/close.png (100%) rename {asstes => assets}/feedback.svg (100%) rename {asstes => assets}/font/KCC-Chassam.otf (100%) rename {asstes => assets}/font/KCC-Chassam.ttf (100%) rename {asstes => assets}/font/Pretendard-Light.ttf (100%) rename {asstes => assets}/font/Pretendard-Regular.ttf (100%) rename {asstes => assets}/font/Pretendard-SemiBold.ttf (100%) rename {asstes => assets}/logout.svg (100%) rename {asstes => assets}/onclikmenu.svg (100%) rename {asstes => assets}/policy.svg (100%) rename {asstes => assets}/profile.svg (100%) rename {asstes => assets}/vector.svg (100%) rename lib/viewmodels/{AccountRecovery_viewmodel.dart => AccountRecoveryVM.dart} (94%) rename lib/viewmodels/{login_viewmodel.dart => LoginVM.dart} (93%) rename lib/viewmodels/{signup_viewmodel.dart => SignupVM.dart} (98%) rename lib/views/{Login_page_changePW.dart => ChangePasswordScreen.dart} (94%) rename lib/views/{Main_page.dart => HomeScreen.dart} (95%) rename lib/views/{login_screen.dart => LoginScreen.dart} (91%) rename lib/views/{matching_loding.dart => MatchingLoadingScreen.dart} (91%) rename lib/views/{Login_page_searchID.dart => SearchIdScreen.dart} (91%) rename lib/views/{Login_page_searchPW.dart => SearchPasswordScreen.dart} (94%) rename lib/views/{setprofile.dart => SetProfileScreen.dart} (97%) rename lib/views/{signup_done.dart => SignUpDoneScreen.dart} (96%) rename lib/views/{signup_creen.dart => SignUpScreen.dart} (95%) delete mode 100644 lib/views/widgets/appbar.dart delete mode 100644 lib/views/widgets/csbutton.dart delete mode 100644 lib/views/widgets/emailfield.dart delete mode 100644 lib/views/widgets/font.dart delete mode 100644 lib/views/widgets/idfield.dart diff --git a/asstes/Group.png b/assets/Group.png similarity index 100% rename from asstes/Group.png rename to assets/Group.png diff --git a/asstes/Icon_menu.svg b/assets/Icon_menu.svg similarity index 100% rename from asstes/Icon_menu.svg rename to assets/Icon_menu.svg diff --git a/asstes/SUCHAT.png b/assets/SUCHAT.png similarity index 100% rename from asstes/SUCHAT.png rename to assets/SUCHAT.png diff --git a/asstes/Vector6.png b/assets/Vector6.png similarity index 100% rename from asstes/Vector6.png rename to assets/Vector6.png diff --git a/asstes/bubble.png b/assets/bubble.png similarity index 100% rename from asstes/bubble.png rename to assets/bubble.png diff --git a/asstes/bubble_main.PNG b/assets/bubble_main.PNG similarity index 100% rename from asstes/bubble_main.PNG rename to assets/bubble_main.PNG diff --git a/asstes/close.png b/assets/close.png similarity index 100% rename from asstes/close.png rename to assets/close.png diff --git a/asstes/feedback.svg b/assets/feedback.svg similarity index 100% rename from asstes/feedback.svg rename to assets/feedback.svg diff --git a/asstes/font/KCC-Chassam.otf b/assets/font/KCC-Chassam.otf similarity index 100% rename from asstes/font/KCC-Chassam.otf rename to assets/font/KCC-Chassam.otf diff --git a/asstes/font/KCC-Chassam.ttf b/assets/font/KCC-Chassam.ttf similarity index 100% rename from asstes/font/KCC-Chassam.ttf rename to assets/font/KCC-Chassam.ttf diff --git a/asstes/font/Pretendard-Light.ttf b/assets/font/Pretendard-Light.ttf similarity index 100% rename from asstes/font/Pretendard-Light.ttf rename to assets/font/Pretendard-Light.ttf diff --git a/asstes/font/Pretendard-Regular.ttf b/assets/font/Pretendard-Regular.ttf similarity index 100% rename from asstes/font/Pretendard-Regular.ttf rename to assets/font/Pretendard-Regular.ttf diff --git a/asstes/font/Pretendard-SemiBold.ttf b/assets/font/Pretendard-SemiBold.ttf similarity index 100% rename from asstes/font/Pretendard-SemiBold.ttf rename to assets/font/Pretendard-SemiBold.ttf diff --git a/asstes/logout.svg b/assets/logout.svg similarity index 100% rename from asstes/logout.svg rename to assets/logout.svg diff --git a/asstes/onclikmenu.svg b/assets/onclikmenu.svg similarity index 100% rename from asstes/onclikmenu.svg rename to assets/onclikmenu.svg diff --git a/asstes/policy.svg b/assets/policy.svg similarity index 100% rename from asstes/policy.svg rename to assets/policy.svg diff --git a/asstes/profile.svg b/assets/profile.svg similarity index 100% rename from asstes/profile.svg rename to assets/profile.svg diff --git a/asstes/vector.svg b/assets/vector.svg similarity index 100% rename from asstes/vector.svg rename to assets/vector.svg diff --git a/lib/main.dart b/lib/main.dart index 4ebd0db..0658138 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; -import 'package:suwon/viewmodels/login_viewmodel.dart'; -import 'package:suwon/viewmodels/signup_viewmodel.dart'; // 추가: SignupViewModel 임포트 -import 'package:suwon/views/login_screen.dart'; -import 'package:suwon/views/signup_creen.dart'; +import 'package:suwon/viewmodels/AccountRecoveryVM.dart'; +import 'package:suwon/viewmodels/LoginVM.dart'; +import 'package:suwon/viewmodels/SignupVM.dart'; // 추가: SignupViewModel 임포트 +import 'package:suwon/views/LoginScreen.dart'; +import 'package:suwon/views/SignUpScreen.dart'; void main() { runApp(const MyApp()); @@ -17,15 +17,14 @@ class MyApp extends StatelessWidget { return MultiProvider( // ChangeNotifierProvider 대신 MultiProvider로 변경 providers: [ - ChangeNotifierProvider(create: (context) => LoginViewModel()), + ChangeNotifierProvider(create: (context) => LoginVM()), ChangeNotifierProvider( - create: (context) => SignupViewModel()), // 추가: SignupViewModel 제공 - ChangeNotifierProvider( - create: (context) => AccountRecoveryViewModel()), + create: (context) => SignupVM()), // 추가: SignupViewModel 제공 + ChangeNotifierProvider(create: (context) => AccountRecoveryVM()), ], child: MaterialApp( debugShowCheckedModeBanner: false, - home: NewLoignMain(), + home: LoginScreen(), ), ); } diff --git a/lib/viewmodels/AccountRecovery_viewmodel.dart b/lib/viewmodels/AccountRecoveryVM.dart similarity index 94% rename from lib/viewmodels/AccountRecovery_viewmodel.dart rename to lib/viewmodels/AccountRecoveryVM.dart index 0b92b54..1b12018 100644 --- a/lib/viewmodels/AccountRecovery_viewmodel.dart +++ b/lib/viewmodels/AccountRecoveryVM.dart @@ -1,12 +1,11 @@ import 'package:flutter/material.dart'; -class AccountRecoveryViewModel extends ChangeNotifier { +class AccountRecoveryVM extends ChangeNotifier { String _id = ''; String _password = ''; String _email = ''; String _validationCode = ''; - bool _idError = false; bool _pwError = false; bool _emailError = false; @@ -20,7 +19,6 @@ class AccountRecoveryViewModel extends ChangeNotifier { TextEditingController pwMatchController = TextEditingController(); TextEditingController ValidationCodeController = TextEditingController(); - bool get idError => _idError; bool get pwError => _pwError; bool get emailError => _emailError; @@ -78,7 +76,7 @@ class AccountRecoveryViewModel extends ChangeNotifier { bool validateEmail(String value) { final RegExp emailRegExp = - RegExp(r'^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$'); + RegExp(r'^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$'); _isEmailValid = emailRegExp.hasMatch(value); notifyListeners(); return _isEmailValid; @@ -90,11 +88,11 @@ class AccountRecoveryViewModel extends ChangeNotifier { // String email = _email; print('eamil: $email'); - } } + Future Search_PW() async { - if(validateEmail(_email)&& !_idError) { + if (validateEmail(_email) && !_idError) { // 이메일 및 ID 검증 // 인증코드 전송 및 검증 String id = _id; @@ -106,4 +104,4 @@ class AccountRecoveryViewModel extends ChangeNotifier { print('validationCode = $validationCode'); } } -} \ No newline at end of file +} diff --git a/lib/viewmodels/login_viewmodel.dart b/lib/viewmodels/LoginVM.dart similarity index 93% rename from lib/viewmodels/login_viewmodel.dart rename to lib/viewmodels/LoginVM.dart index 42b2fba..908c7af 100644 --- a/lib/viewmodels/login_viewmodel.dart +++ b/lib/viewmodels/LoginVM.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -class LoginViewModel extends ChangeNotifier { +class LoginVM extends ChangeNotifier { String _userid = ''; String _userpw = ''; diff --git a/lib/viewmodels/signup_viewmodel.dart b/lib/viewmodels/SignupVM.dart similarity index 98% rename from lib/viewmodels/signup_viewmodel.dart rename to lib/viewmodels/SignupVM.dart index 2ad25bc..96eb6c2 100644 --- a/lib/viewmodels/signup_viewmodel.dart +++ b/lib/viewmodels/SignupVM.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -class SignupViewModel extends ChangeNotifier { +class SignupVM extends ChangeNotifier { String _id = ''; String _password = ''; String _email = ''; diff --git a/lib/views/Login_page_changePW.dart b/lib/views/ChangePasswordScreen.dart similarity index 94% rename from lib/views/Login_page_changePW.dart rename to lib/views/ChangePasswordScreen.dart index ccd8420..3dc087b 100644 --- a/lib/views/Login_page_changePW.dart +++ b/lib/views/ChangePasswordScreen.dart @@ -1,21 +1,19 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; +import 'package:suwon/viewmodels/AccountRecoveryVM.dart'; -import 'package:suwon/views/login_screen.dart'; +import 'package:suwon/views/LoginScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; -class ChangePW extends StatelessWidget { +class ChangePasswordScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @override Widget build(BuildContext context) { - final accountRecoveryViewModel = - Provider.of(context); + final accountRecoveryViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), @@ -37,7 +35,7 @@ class ChangePW extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => const NewLoignMain()), + builder: (context) => const LoginScreen()), ); }, ), diff --git a/lib/views/CustomDrawerScreen.dart b/lib/views/CustomDrawerScreen.dart index dc51878..05aac55 100644 --- a/lib/views/CustomDrawerScreen.dart +++ b/lib/views/CustomDrawerScreen.dart @@ -4,7 +4,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:suwon/views/EditProfileDrawerScreen.dart'; import 'package:suwon/views/TermsConditionsDrawerScreen.dart'; import 'package:suwon/views/FeedbackDrawerScreen.dart'; -import 'package:suwon/views/login_screen.dart'; +import 'package:suwon/views/LoginScreen.dart'; import 'package:suwon/views/widgets/CancelAndActionAlertDialogWidget.dart'; class CustomDrawerScreen extends StatelessWidget { @@ -31,7 +31,7 @@ class CustomDrawerScreen extends StatelessWidget { Navigator.of(context).pop(); }, icon: Image.asset( - 'asstes/close.png', + 'assets/close.png', scale: 4.sp, ), ) @@ -52,7 +52,7 @@ class CustomDrawerScreen extends StatelessWidget { children: [ CircleAvatar( backgroundColor: Colors.white, - backgroundImage: AssetImage('asstes/Group.png'), + backgroundImage: AssetImage('assets/Group.png'), ), SizedBox(height: 8), Text( @@ -88,7 +88,7 @@ class CustomDrawerScreen extends StatelessWidget { SizedBox(height: 20), ListTile_main( text: '프로필 수정', - Menu_Icon: 'asstes/profile.svg', + Menu_Icon: 'assets/profile.svg', onTap: () { Navigator.push( context, @@ -101,7 +101,7 @@ class CustomDrawerScreen extends StatelessWidget { SizedBox(height: 20), ListTile_main( text: '이용약관', - Menu_Icon: 'asstes/policy.svg', + Menu_Icon: 'assets/policy.svg', onTap: () { Navigator.push( context, @@ -114,7 +114,7 @@ class CustomDrawerScreen extends StatelessWidget { SizedBox(height: 20), ListTile_main( text: ' 피드백', - Menu_Icon: 'asstes/feedback.svg', + Menu_Icon: 'assets/feedback.svg', onTap: () { Navigator.push( context, @@ -127,7 +127,7 @@ class CustomDrawerScreen extends StatelessWidget { SizedBox(height: 20), ListTile_main( text: '로그아웃', - Menu_Icon: 'asstes/logout.svg', + Menu_Icon: 'assets/logout.svg', onTap: () { CancelAndActionAlertDialogWidget( title: "로그아웃 하시겠습니까?", @@ -136,7 +136,7 @@ class CustomDrawerScreen extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => NewLoignMain()), + builder: (context) => LoginScreen()), ); }, onCancel: () {}) @@ -179,7 +179,7 @@ class ListTile_main extends StatelessWidget { ), // 제목 SizedBox(width: 20.sp), Image.asset( - 'asstes/Vector6.png', + 'assets/Vector6.png', scale: 4.sp, ) ], diff --git a/lib/views/EditProfileDrawerScreen.dart b/lib/views/EditProfileDrawerScreen.dart index 53cb255..490fd13 100644 --- a/lib/views/EditProfileDrawerScreen.dart +++ b/lib/views/EditProfileDrawerScreen.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/views/Main_page.dart'; -import 'package:suwon/views/signup_creen.dart'; +import 'package:suwon/views/HomeScreen.dart'; +import 'package:suwon/views/SignUpScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; -import 'package:suwon/viewmodels/signup_viewmodel.dart'; +import 'package:suwon/viewmodels/SignupVM.dart'; import 'package:provider/provider.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/widgets/TextFontWidget.dart'; @@ -13,7 +13,7 @@ class EditProfileDrawerScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final signupViewModel = Provider.of(context); + final signupViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), builder: (context, child) => Scaffold( @@ -35,7 +35,7 @@ class EditProfileDrawerScreen extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => MainPage(), + builder: (context) => HomeScreen(), ), ); }, diff --git a/lib/views/Main_page.dart b/lib/views/HomeScreen.dart similarity index 95% rename from lib/views/Main_page.dart rename to lib/views/HomeScreen.dart index 8d82fd1..c2e22fd 100644 --- a/lib/views/Main_page.dart +++ b/lib/views/HomeScreen.dart @@ -2,10 +2,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:suwon/views/CustomDrawerScreen.dart'; -import 'package:suwon/views/matching_loding.dart'; +import 'package:suwon/views/MatchingLoadingScreen.dart'; -class MainPage extends StatelessWidget { - const MainPage({super.key}); +class HomeScreen extends StatelessWidget { + const HomeScreen({super.key}); @override Widget build(BuildContext context) { @@ -34,7 +34,7 @@ class MainPage extends StatelessWidget { width: 15.w, ), Image.asset( - 'asstes/SUCHAT.png', + 'assets/SUCHAT.png', width: 76.w, height: 20.h, ) @@ -51,7 +51,7 @@ class MainPage extends StatelessWidget { onPressed: () { _scaffoldKey.currentState?.openEndDrawer(); }, - icon: SvgPicture.asset('asstes/onclikmenu.svg', + icon: SvgPicture.asset('assets/onclikmenu.svg', width: 28.w, height: 20.h), )), SizedBox( @@ -93,7 +93,7 @@ class MainPage extends StatelessWidget { offset: const Offset(0, -60), child: ClipRect( child: Image.asset( - 'asstes/bubble_main.PNG', + 'assets/bubble_main.PNG', fit: BoxFit.fill, ), ), @@ -109,7 +109,7 @@ class MainPage extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => MatchingLoading()), + builder: (context) => MatchingLoadingScreen()), ); }, ), diff --git a/lib/views/login_screen.dart b/lib/views/LoginScreen.dart similarity index 91% rename from lib/views/login_screen.dart rename to lib/views/LoginScreen.dart index 1980c29..1d63afd 100644 --- a/lib/views/login_screen.dart +++ b/lib/views/LoginScreen.dart @@ -1,22 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/views/Login_page_changePW.dart'; -import 'package:suwon/views/Login_page_searchID.dart'; -import 'package:suwon/views/Main_page.dart'; +import 'package:suwon/views/ChangePasswordScreen.dart'; +import 'package:suwon/views/SearchIdScreen.dart'; +import 'package:suwon/views/HomeScreen.dart'; import 'package:suwon/views/Signup_creen.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/viewmodels/login_viewmodel.dart'; +import 'package:suwon/viewmodels/LoginVM.dart'; import 'package:suwon/views/widgets/TextFontWidget.dart'; -import 'Login_page_searchPW.dart'; +import 'SearchPasswordScreen.dart'; -class NewLoignMain extends StatelessWidget { - const NewLoignMain({super.key}); +class LoginScreen extends StatelessWidget { + const LoginScreen({super.key}); @override Widget build(BuildContext context) { - final loginViewModel = Provider.of(context); + final loginViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), builder: (context, child) => Scaffold( @@ -30,7 +30,7 @@ class NewLoignMain extends StatelessWidget { margin: EdgeInsets.only(left: 32.w), child: Image( fit: BoxFit.fill, - image: AssetImage('asstes/bubble.PNG'), + image: AssetImage('assetes/bubble.PNG'), ), ), SizedBox(height: 32.h), @@ -70,7 +70,7 @@ class NewLoignMain extends StatelessWidget { */ Navigator.push( context, - MaterialPageRoute(builder: (context) => MainPage()), + MaterialPageRoute(builder: (context) => HomeScreen()), ); }), Row( @@ -81,7 +81,7 @@ class NewLoignMain extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => const SearchID()), + builder: (context) => const SearchIdScreen()), ); }, child: TextFontWidget.fontRegular( @@ -95,7 +95,7 @@ class NewLoignMain extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => SearchPW()), + builder: (context) => SearchPasswordScreen()), ); }, child: TextFontWidget.fontRegular( diff --git a/lib/views/matching_loding.dart b/lib/views/MatchingLoadingScreen.dart similarity index 91% rename from lib/views/matching_loding.dart rename to lib/views/MatchingLoadingScreen.dart index 1814033..6fb741d 100644 --- a/lib/views/matching_loding.dart +++ b/lib/views/MatchingLoadingScreen.dart @@ -2,17 +2,17 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/views/Main_page.dart'; +import 'package:suwon/views/HomeScreen.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; -class MatchingLoading extends StatefulWidget { - const MatchingLoading({Key? key}) : super(key: key); +class MatchingLoadingScreen extends StatefulWidget { + const MatchingLoadingScreen({Key? key}) : super(key: key); @override _MatchingLoadingState createState() => _MatchingLoadingState(); } -class _MatchingLoadingState extends State { +class _MatchingLoadingState extends State { StreamController dotStreamController = StreamController(); int numDots = 0; @@ -95,7 +95,7 @@ class _MatchingLoadingState extends State { onPressed: () { Navigator.push( context, - MaterialPageRoute(builder: (context) => MainPage()), + MaterialPageRoute(builder: (context) => HomeScreen()), ); }, color: Color(0xffFFFFFF), diff --git a/lib/views/Login_page_searchID.dart b/lib/views/SearchIdScreen.dart similarity index 91% rename from lib/views/Login_page_searchID.dart rename to lib/views/SearchIdScreen.dart index ed06774..e1ab2f2 100644 --- a/lib/views/Login_page_searchID.dart +++ b/lib/views/SearchIdScreen.dart @@ -1,22 +1,21 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; -import 'package:suwon/viewmodels/signup_viewmodel.dart'; -import 'package:suwon/views/login_screen.dart'; +import 'package:suwon/viewmodels/AccountRecoveryVM.dart'; +import 'package:suwon/viewmodels/SignupVM.dart'; +import 'package:suwon/views/LoginScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; import 'package:provider/provider.dart'; -class SearchID extends StatelessWidget { - const SearchID({super.key}); +class SearchIdScreen extends StatelessWidget { + const SearchIdScreen({super.key}); @override Widget build(BuildContext context) { final GlobalKey _formKey = GlobalKey(); - final accountRecoveryViewModel = - Provider.of(context); + final accountRecoveryViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), @@ -38,7 +37,7 @@ class SearchID extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => const NewLoignMain()), + builder: (context) => const LoginScreen()), ); }, ), @@ -119,7 +118,7 @@ class SearchID extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => NewLoignMain(), + builder: (context) => LoginScreen(), ), ); }, diff --git a/lib/views/Login_page_searchPW.dart b/lib/views/SearchPasswordScreen.dart similarity index 94% rename from lib/views/Login_page_searchPW.dart rename to lib/views/SearchPasswordScreen.dart index d141f39..0968583 100644 --- a/lib/views/Login_page_searchPW.dart +++ b/lib/views/SearchPasswordScreen.dart @@ -1,22 +1,20 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:provider/provider.dart'; -import 'package:suwon/viewmodels/AccountRecovery_viewmodel.dart'; -import 'package:suwon/views/login_screen.dart'; +import 'package:suwon/viewmodels/AccountRecoveryVM.dart'; +import 'package:suwon/views/LoginScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; import 'package:suwon/views/widgets/IdTextFieldWidget.dart'; -class SearchPW extends StatelessWidget { +class SearchPasswordScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); - SearchPW({super.key}); + SearchPasswordScreen({super.key}); @override Widget build(BuildContext context) { - final accountRecoveryViewModel = - Provider.of(context); + final accountRecoveryViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), @@ -40,7 +38,7 @@ class SearchPW extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => const NewLoignMain()), + builder: (context) => const LoginScreen()), ); }, ), diff --git a/lib/views/setprofile.dart b/lib/views/SetProfileScreen.dart similarity index 97% rename from lib/views/setprofile.dart rename to lib/views/SetProfileScreen.dart index 4e88672..29d4f43 100644 --- a/lib/views/setprofile.dart +++ b/lib/views/SetProfileScreen.dart @@ -1,18 +1,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/views/signup_creen.dart'; +import 'package:suwon/views/SignUpScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; -import 'package:suwon/viewmodels/signup_viewmodel.dart'; +import 'package:suwon/viewmodels/SignupVM.dart'; import 'package:provider/provider.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/widgets/TextFontWidget.dart'; -class SetProfile extends StatelessWidget { +class SetProfileScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @override Widget build(BuildContext context) { - final signupViewModel = Provider.of(context); + final signupViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), builder: (context, child) => Scaffold( @@ -34,7 +34,7 @@ class SetProfile extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => SignupScreen(), + builder: (context) => SignUpScreen(), ), ); }, diff --git a/lib/views/signup_done.dart b/lib/views/SignUpDoneScreen.dart similarity index 96% rename from lib/views/signup_done.dart rename to lib/views/SignUpDoneScreen.dart index d20d354..392ee46 100644 --- a/lib/views/signup_done.dart +++ b/lib/views/SignUpDoneScreen.dart @@ -2,16 +2,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/widgets/NormalAlertDialogWidget.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; -import 'package:suwon/views/login_screen.dart'; +import 'package:suwon/views/LoginScreen.dart'; -class SignUpDone extends StatefulWidget { - const SignUpDone({super.key}); +class SignUpDoneScreen extends StatefulWidget { + const SignUpDoneScreen({super.key}); @override _SignUpDoneState createState() => _SignUpDoneState(); } -class _SignUpDoneState extends State { +class _SignUpDoneState extends State { bool showCheck = false; @override @@ -99,7 +99,7 @@ class _SignUpDoneState extends State { Navigator.push( context, MaterialPageRoute( - builder: (context) => NewLoignMain(), + builder: (context) => LoginScreen(), ), ); }, diff --git a/lib/views/signup_creen.dart b/lib/views/SignUpScreen.dart similarity index 95% rename from lib/views/signup_creen.dart rename to lib/views/SignUpScreen.dart index b8a2bc1..4c14b3d 100644 --- a/lib/views/signup_creen.dart +++ b/lib/views/SignUpScreen.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:suwon/views/login_screen.dart'; -import 'package:suwon/views/signup_done.dart'; +import 'package:suwon/views/LoginScreen.dart'; +import 'package:suwon/views/SignUpDoneScreen.dart'; import 'package:suwon/views/widgets/SuchatAppBarWidget.dart'; -import 'package:suwon/viewmodels/signup_viewmodel.dart'; +import 'package:suwon/viewmodels/SignupVM.dart'; import 'package:provider/provider.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:suwon/views/widgets/EmailTextFieldWidget.dart'; import 'package:suwon/views/widgets/TextFontWidget.dart'; -class SignupScreen extends StatelessWidget { +class SignUpScreen extends StatelessWidget { final GlobalKey _formKey = GlobalKey(); @override Widget build(BuildContext context) { - final signupViewModel = Provider.of(context); + final signupViewModel = Provider.of(context); return ScreenUtilInit( designSize: Size(390, 844), builder: (context, child) => Scaffold( @@ -38,7 +38,7 @@ class SignupScreen extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => NewLoignMain(), + builder: (context) => LoginScreen(), ), ); }, @@ -101,7 +101,8 @@ class SignupScreen extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => SignUpDone()), + builder: (context) => + SignUpDoneScreen()), ); }), SizedBox( @@ -163,7 +164,7 @@ class SignupScreen extends StatelessWidget { class IdInputFD extends StatelessWidget { @override Widget build(BuildContext context) { - final signupViewModel = Provider.of(context); + final signupViewModel = Provider.of(context); return Column( children: [ Row( diff --git a/lib/views/widgets/DrawerAppBarWidget.dart b/lib/views/widgets/DrawerAppBarWidget.dart index 15ad629..0c1f8dc 100644 --- a/lib/views/widgets/DrawerAppBarWidget.dart +++ b/lib/views/widgets/DrawerAppBarWidget.dart @@ -40,7 +40,7 @@ class DrawerAppBarWidget extends StatelessWidget { IconButton( onPressed: onPressed, icon: Image.asset( - 'asstes/close.png', + 'assets/close.png', scale: iconScale, ), ), diff --git a/lib/views/widgets/appbar.dart b/lib/views/widgets/appbar.dart deleted file mode 100644 index 6c50e1f..0000000 --- a/lib/views/widgets/appbar.dart +++ /dev/null @@ -1,68 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; - -class SuchatAppBar extends StatelessWidget { - final String text; - final VoidCallback onPressed; - - const SuchatAppBar({ - required this.text, - required this.onPressed, - }); - - @override - Widget build(BuildContext context) { - return Container( - //상단 회원가입+뒤로가기 버튼 - width: double.maxFinite, - - height: 60.h, - child: Row( - children: [ - SizedBox( - child: IconButton( - onPressed: onPressed, - icon: Icon( - Icons.arrow_back_ios_outlined, - size: 18.sp, - )), - ), - Container( - alignment: Alignment.center, - width: 259.w, - child: Text( - text, - style: TextStyle( - fontFamily: 'Pretendard-Regular', - fontSize: 18.sp, - fontWeight: FontWeight.w600), - ), - ), - ], - ), - ); - } -} - -/*Container( - color: Colors.red, - child: IconButton( - onPressed: onPressed, - icon: Icon( - Icons.arrow_back_ios_outlined, - size: 18.sp, - )), - ), - ), - Container( - alignment: Alignment.center, - color: Colors.blue, - child: Text( - text, - style: TextStyle( - fontFamily: 'Pretendard-Regular', - fontSize: 18.sp, - fontWeight: FontWeight.w600), - ), - ), -*/ \ No newline at end of file diff --git a/lib/views/widgets/csbutton.dart b/lib/views/widgets/csbutton.dart deleted file mode 100644 index 5b6b268..0000000 --- a/lib/views/widgets/csbutton.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; - -class CustomButton extends StatelessWidget { - final String text; - final Color backgroundColor; - final VoidCallback onPressed; - final Border? border; - final Color color; - - const CustomButton({ - required this.text, - required this.backgroundColor, - required this.onPressed, - required this.color, - this.border, - }); - - @override - Widget build(BuildContext context) { - return Container( - height: 60.h, - width: double.maxFinite, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: backgroundColor, - border: border, - ), - child: TextButton( - onPressed: onPressed, - child: Text( - text, - style: TextStyle( - color: color, - fontSize: 18.sp, - fontWeight: FontWeight.w800, - fontFamily: 'Pretendard-Bold', - ), - ), - ), - ); - } -} diff --git a/lib/views/widgets/emailfield.dart b/lib/views/widgets/emailfield.dart deleted file mode 100644 index 6dc668c..0000000 --- a/lib/views/widgets/emailfield.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:suwon/views/widgets/font.dart'; - -class EmailFD extends StatelessWidget { - final TextEditingController? controller; - final ValueChanged? onChanged; - - const EmailFD({ - required this.controller, - required this.onChanged, - }); - - @override - Widget build(BuildContext context) { - return Column( - children: [ - Container( - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 2, - color: Color(0xFFBFBFBF), - ), - ), - ), - child: TextFormField( - maxLength: 20, - controller: controller, - onChanged: onChanged, - decoration: InputDecoration( - labelStyle: TextStyle( - fontFamily: 'Pretendard-Light', - fontSize: 16, - fontWeight: FontWeight.w400, - color: Color(0xFF989898), - ), - suffix: TextFont.fontRegular( - text: '@ suwon.ac.kr', - fontSize: 16, - color: Color(0xFF000000)), - hintText: ' 포털 이메일 입력', - counterText: '', // 입력 길이 카운터 텍스트를 빈 문자열로 설정하여 표시하지 않음 - errorStyle: TextStyle(height: 0), // 에러 메시지 표시 공간을 없앰 - ), - ), - ), - ], - ); - } -} diff --git a/lib/views/widgets/font.dart b/lib/views/widgets/font.dart deleted file mode 100644 index 6c93f7e..0000000 --- a/lib/views/widgets/font.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; - -class TextFont { - static Widget fontRegular({ - required String text, - required double fontSize, - required Color color, - }) { - return Text( - text, - style: TextStyle( - fontFamily: 'Pretendard-Regular', - fontSize: fontSize, - color: color, - fontWeight: FontWeight.w400, - ), - ); - } - - static Widget fontSemiBold({ - required String text, - required double fontSize, - required Color color, - }) { - return Text( - text, - style: TextStyle( - fontFamily: 'Pretendard-SemiBold', // 여기에 원하는 폰트 설정 - fontSize: fontSize, - color: color, - fontWeight: FontWeight.w600, - ), - ); - } -} diff --git a/lib/views/widgets/idfield.dart b/lib/views/widgets/idfield.dart deleted file mode 100644 index f377490..0000000 --- a/lib/views/widgets/idfield.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:suwon/views/widgets/font.dart'; - -class IdFD extends StatelessWidget { - final TextEditingController? controller; - final ValueChanged? onChanged; - - const IdFD({ - required this.controller, - required this.onChanged, -}); - - @override - Widget build(BuildContext context) { - return Column( - children: [ - Container( - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 2, - color: Color(0xFFBFBFBF), - ), - ), - ), - child: TextFormField( - maxLength: 20, - controller: controller, - onChanged: onChanged, - decoration: InputDecoration( - labelStyle: TextStyle( - fontFamily: 'Pretendard', - fontSize: 16, - fontWeight: FontWeight.w400, - color: Color(0xFF989898), - ), - - hintText: ' 아이디 입력', - counterText: '', // 입력 길이 카운터 텍스트를 빈 문자열로 설정하여 표시하지 않음 - errorStyle: TextStyle(height: 0), // 에러 메시지 표시 공간을 없앰 - ), - ), - ), - ], - ); - } -} From 2212b201bd487c4a157700df4268ed386f1c9d1e Mon Sep 17 00:00:00 2001 From: shin seung jae Date: Sat, 11 Nov 2023 12:12:34 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/views/LoginScreen.dart | 6 +- lib/views/screens/LoginScreen.dart | 178 +++++++++++++++++++++++++++++ pubspec.lock | 38 +++--- pubspec.yaml | 23 ++-- 4 files changed, 210 insertions(+), 35 deletions(-) create mode 100644 lib/views/screens/LoginScreen.dart diff --git a/lib/views/LoginScreen.dart b/lib/views/LoginScreen.dart index 1d63afd..e2434ca 100644 --- a/lib/views/LoginScreen.dart +++ b/lib/views/LoginScreen.dart @@ -3,7 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:suwon/views/ChangePasswordScreen.dart'; import 'package:suwon/views/SearchIdScreen.dart'; import 'package:suwon/views/HomeScreen.dart'; -import 'package:suwon/views/Signup_creen.dart'; +import 'package:suwon/views/SignUpScreen.dart'; import 'package:suwon/views/widgets/CustomButtonWidget.dart'; import 'package:provider/provider.dart'; import 'package:suwon/viewmodels/LoginVM.dart'; @@ -30,7 +30,7 @@ class LoginScreen extends StatelessWidget { margin: EdgeInsets.only(left: 32.w), child: Image( fit: BoxFit.fill, - image: AssetImage('assetes/bubble.PNG'), + image: AssetImage('assets/bubble.PNG'), ), ), SizedBox(height: 32.h), @@ -139,7 +139,7 @@ class LoginScreen extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => SignupScreen()), + builder: (context) => SignUpScreen()), ); }), ], diff --git a/lib/views/screens/LoginScreen.dart b/lib/views/screens/LoginScreen.dart new file mode 100644 index 0000000..60f5466 --- /dev/null +++ b/lib/views/screens/LoginScreen.dart @@ -0,0 +1,178 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:suwon/views/ChangePasswordScreen.dart'; +import 'package:suwon/views/SearchIdScreen.dart'; +import 'package:suwon/views/HomeScreen.dart'; +import 'package:suwon/views/SignUpScreen.dart'; +import 'package:suwon/views/widgets/CustomButtonWidget.dart'; +import 'package:provider/provider.dart'; +import 'package:suwon/viewmodels/LoginVM.dart'; +import 'package:suwon/views/widgets/TextFontWidget.dart'; + +import 'SearchPasswordScreen.dart'; + +class LoginScreen extends StatelessWidget { + const LoginScreen({super.key}); + + @override + Widget build(BuildContext context) { + final loginViewModel = Provider.of(context); + return ScreenUtilInit( + designSize: Size(390, 844), + builder: (context, child) => Scaffold( + resizeToAvoidBottomInset: false, + body: Container( + margin: EdgeInsets.only(top: 63.h), + child: Column(children: [ + Container( + height: 268.h, + width: double.infinity, + margin: EdgeInsets.only(left: 32.w), + child: Image( + fit: BoxFit.fill, + image: AssetImage('assetes/bubble.PNG'), + ), + ), + SizedBox(height: 32.h), + Container( + margin: EdgeInsets.symmetric(horizontal: 32.w), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InputFD( + //ID 입력창 + onChanged: (value) => loginViewModel.setUserid(value), + hintText: 'ID'), + SizedBox( + height: 10.h, + ), + InputFD( + // PW 입력창 + onChanged: (value) => loginViewModel.setUserpw(value), + hintText: 'PW', + obscureText: true), + SizedBox(height: 24.h), + CustomButtonWidget( + // 로그인 버튼 + text: '로그인', + color: Colors.white, + backgroundColor: Color(0xff2d63d8), + onPressed: () async { + /*bool success = await loginViewModel.login(); + if (success) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => MainPage()), + ); + } else { + // 로그인 실패 처리 + } + */ + Navigator.push( + context, + MaterialPageRoute(builder: (context) => HomeScreen()), + ); + }), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const SearchIdScreen()), + ); + }, + child: TextFontWidget.fontRegular( + text: '아이디 찾기', + fontSize: 14.sp, + color: Color(0xFF232323))), + TextFontWidget.fontRegular( + text: '/', fontSize: 16.sp, color: Color(0xFFBFBFBF)), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SearchPasswordScreen()), + ); + }, + child: TextFontWidget.fontRegular( + text: '비밀번호 찾기', + fontSize: 14.sp, + color: Color(0xFF232323))), + ], + ), + SizedBox( + height: 20.h, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SizedBox( + width: 90.w, + child: Divider( + thickness: 1, + color: Colors.grey, + )), + TextFontWidget.fontRegular( + text: '계정이 없으신가요?', + fontSize: 14.sp, + color: Color(0xFF767676)), + SizedBox( + width: 90.w, + child: Divider( + thickness: 1, + color: Colors.grey, + )), + ], + ), + SizedBox( + height: 18.h, + ), + CustomButtonWidget( + text: '회원가입', + color: Colors.white, + backgroundColor: Color(0xFF111111), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SignUpScreen()), + ); + }), + ], + ), + ), + ]), + ), + ), + ); + } + + Widget InputFD({ + required ValueChanged onChanged, + required String hintText, + bool obscureText = false, + }) { + return SizedBox( + height: 55.h, + width: double.maxFinite, + child: TextFormField( + onChanged: onChanged, + obscureText: obscureText, + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + ), + labelStyle: TextStyle( + fontFamily: 'Pretendard-Regular', + fontSize: 14.sp, + ), + hintText: hintText, + ), + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index 0b95113..101c1db 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" cupertino_icons: dependency: "direct main" description: @@ -99,14 +99,6 @@ packages: description: flutter source: sdk version: "0.0.0" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" lints: dependency: transitive description: @@ -119,18 +111,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -188,10 +180,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -228,10 +220,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" vector_graphics: dependency: transitive description: @@ -264,6 +256,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" xml: dependency: transitive description: @@ -273,5 +273,5 @@ packages: source: hosted version: "6.3.0" sdks: - dart: ">=3.0.3 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml index 940e218..8b75cd3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: suwon description: flag project # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev +publish_to: "none" # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 @@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: '>=3.0.3 <4.0.0' + sdk: ">=3.0.3 <4.0.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -30,12 +30,10 @@ environment: dependencies: flutter_svg: ^2.0.7 flutter_screenutil: ^5.8.4 - + flutter: sdk: flutter provider: ^6.0.5 - - # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. @@ -57,7 +55,6 @@ dev_dependencies: # The following section is specific to Flutter packages. flutter: - # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. @@ -65,9 +62,9 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - asstes/bubble.PNG - - asstes/SUCHAT.png - - asstes/ + - assets/bubble.PNG + - assets/SUCHAT.png + - assets/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware @@ -83,19 +80,19 @@ flutter: fonts: - family: KCCChassam fonts: - - asset: asstes/font/KCC-Chassam.ttf + - asset: assets/font/KCC-Chassam.ttf style: normal - family: Pretendard-Light fonts: - - asset: asstes/font/Pretendard-Light.ttf + - asset: assets/font/Pretendard-Light.ttf style: normal - family: Pretendard-SemiBold fonts: - - asset: asstes/font/Pretendard-SemiBold.ttf + - asset: assets/font/Pretendard-SemiBold.ttf style: normal - family: Pretendard-Regular fonts: - - asset: asstes/font/Pretendard-Regular.ttf + - asset: assets/font/Pretendard-Regular.ttf style: normal #