From 709818c33c26a2b8b7dcb470c185ffe6d483f531 Mon Sep 17 00:00:00 2001 From: Gongchaeyeon Date: Thu, 23 May 2024 22:23:50 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[remove]=20=EB=92=A4=EB=A1=9C=EA=B0=80?= =?UTF-8?q?=EA=B8=B0=20=EC=97=90=EB=9F=AC=EB=A1=9C=20provider=20index=20?= =?UTF-8?q?=EC=A7=80=EC=A0=95=20=EC=A0=9C=EA=B1=B0=20#306?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/lib/screen/chat_screen.dart | 56 +++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/frontend/lib/screen/chat_screen.dart b/frontend/lib/screen/chat_screen.dart index cb215c46c1..1232a384c7 100644 --- a/frontend/lib/screen/chat_screen.dart +++ b/frontend/lib/screen/chat_screen.dart @@ -95,13 +95,6 @@ class _ChatScreenState extends State { @override Widget build(BuildContext context) { - final selectedIndexProvider = Provider.of(context); - - // selectedIndex 설정을 addPostFrameCallback 내에서 호출 - SchedulerBinding.instance.addPostFrameCallback((_) { - selectedIndexProvider.selectedIndex = 2; - }); - stompClient = Provider.of(context); return Scaffold( @@ -216,8 +209,9 @@ class _ChatScreenState extends State { for (var chat in chats) { String sender = chat['userInfo']['nickname']; String message = chat['content']; - String date = chat['datetime'].substring(0, 13); - String time = chat['datetime'].substring(14, 19); + String datetime = _applyTimeZoneOffset(chat['datetime']); + String date = datetime.substring(0, 13); + String time = datetime.substring(14, 19); if (date != lastDate) { // If the date changes, add ChatDate widget @@ -296,4 +290,48 @@ class _ChatScreenState extends State { _sendingMsgController.clear(); super.dispose(); } + + String _applyTimeZoneOffset(String dateString) { + // String -> DateTime + DateTime parsedDate = _parseDateString(dateString); + + // 현재 디바이스의 시간대 오프셋 가져오기 + DateTime now = DateTime.now(); + Duration offset = now.timeZoneOffset; + + // 시간대 오프셋을 적용하여 새로운 DateTime 생성 + DateTime adjustedDate = parsedDate.add(offset); + + // DateTime -> String + String formattedDateString = _formatDateString(adjustedDate); + + return formattedDateString; + } + + DateTime _parseDateString(String dateString) { + // 예: '2024년 05월 22일/20:10' -> DateTime + List dateAndTime = dateString.split('/'); + List dateParts = dateAndTime[0].split(' '); + List timeParts = dateAndTime[1].split(':'); + + int year = int.parse(dateParts[0].replaceAll('년', '')); + int month = int.parse(dateParts[1].replaceAll('월', '')); + int day = int.parse(dateParts[2].replaceAll('일', '')); + int hour = int.parse(timeParts[0]); + int minute = int.parse(timeParts[1]); + + return DateTime(year, month, day, hour, minute); + } + + // DateTime -> String('yyyy년 MM월 dd일/HH:mm' 형식) + String _formatDateString(DateTime date) { + // 예: DateTime -> '2024년 05월 22일/20:10' + String year = date.year.toString(); + String month = date.month.toString().padLeft(2, '0'); + String day = date.day.toString().padLeft(2, '0'); + String hour = date.hour.toString().padLeft(2, '0'); + String minute = date.minute.toString().padLeft(2, '0'); + + return '$year년 $month월 $day일/$hour:$minute'; + } } From a9e8dcf84479db193b09382388c9585564394b7d Mon Sep 17 00:00:00 2001 From: Gongchaeyeon Date: Thu, 23 May 2024 22:27:02 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[remove]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0=20#306?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/lib/widgets/choose_purpose.dart | 3 +- frontend/lib/widgets/user_item.dart | 37 ++++++------------------ 2 files changed, 10 insertions(+), 30 deletions(-) diff --git a/frontend/lib/widgets/choose_purpose.dart b/frontend/lib/widgets/choose_purpose.dart index 7d81fefd8c..910e955fa5 100644 --- a/frontend/lib/widgets/choose_purpose.dart +++ b/frontend/lib/widgets/choose_purpose.dart @@ -104,8 +104,7 @@ class _ChoosePurposeState extends State { return; } - Map response = - await matchRequest(senderId, receiverId, _selectedIndex!); + matchRequest(senderId, receiverId, _selectedIndex!); Navigator.of(context).pop(); Navigator.of(context).pop(); selectedIndexProvider.selectedIndex = 1; diff --git a/frontend/lib/widgets/user_item.dart b/frontend/lib/widgets/user_item.dart index 629c748316..02dabde5b9 100644 --- a/frontend/lib/widgets/user_item.dart +++ b/frontend/lib/widgets/user_item.dart @@ -88,12 +88,12 @@ class UserItem extends StatelessWidget { borderRadius: const BorderRadius.all(Radius.circular(10))), child: Row( children: [ - (company == '') - ? const ProfileImgMedium( + (company == '무소속') + ? const ProfileImgSmall( isLocal: true, logoUrl: "assets/coffee_bean.png", ) - : ProfileImgMedium( + : ProfileImgSmall( isLocal: true, logoUrl: "assets/$company-logo.png", ), @@ -104,10 +104,12 @@ class UserItem extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - nickname, - overflow: TextOverflow.ellipsis, - ), + Text(nickname, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + )), Text( "$company / $position", overflow: TextOverflow.ellipsis, @@ -252,7 +254,6 @@ class ReceivedReqDialog extends StatelessWidget { context, MaterialPageRoute( builder: (context) => ChatScreen( - // chatroomId: response["data"]["chatroomId"], matchId: matchId, nickname: nickname, logoUrl: logoUrl, @@ -260,28 +261,8 @@ class ReceivedReqDialog extends StatelessWidget { ), ), ); - // 오프라인으로 전환 autoOfflineService.autoOffline(); - - // 커피챗 진행중 여부 true로, 매칭정보 가져오기 - Map userDetail = await getUserDetail(); - getMatchingInfo(userDetail["data"]["userId"]).then((value) { - matchingInfo.setIsMatching(value["isMatching"]); - - // 커피챗 진행중이면 상대방 정보도 가져오기 - if (value["isMatching"]) { - matchingInfo.setMatching( - matchId: value["matchId"], - myId: value["myId"], - myNickname: value["myNickname"], - myCompany: value["myCompany"], - partnerId: value["partnerId"], - partnerCompany: value["partnerCompany"], - partnerNickname: value["partnerNickname"], - ); - } - }); }, handleSecondClick: () async { onReject?.call(); // onReject 함수 호출