diff --git a/lib/views/components/article_widget.dart b/lib/views/components/article_widget.dart index a90c7e8b..04e0ddae 100644 --- a/lib/views/components/article_widget.dart +++ b/lib/views/components/article_widget.dart @@ -79,7 +79,7 @@ class _ArticleWidgetState extends State{ InkWell( onTap: (){ showDialog(context: context, builder: (builder){ - return BoardDialog(context: context, board: widget.board, memberDetails: widget.memberDetails,); + return BoardDialog(context: context, board: widget.board, memberDetails: widget.memberDetails, boardCategory: "일반게시판",); }); }, child: Padding( diff --git a/lib/views/components/block_dialog_widget.dart b/lib/views/components/block_dialog_widget.dart index 6a92f5c1..f846bb81 100644 --- a/lib/views/components/block_dialog_widget.dart +++ b/lib/views/components/block_dialog_widget.dart @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart'; import 'dart:io' show Platform; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:web_socket_channel/status.dart'; import '../../apis/apis.dart'; @@ -29,12 +30,12 @@ class _BlockDialogState extends State{ @override Widget build(BuildContext context) { if(Platform.isAndroid) - return androidReport(); + return androidBlock(); else - return androidReport(); + return iosBlock(); } - Widget androidReport(){ + Widget androidBlock(){ return AlertDialog( title: Text('chatting-block2'.tr(), style: TextStyle( fontWeight: FontWeight.bold @@ -56,5 +57,62 @@ class _BlockDialogState extends State{ ], ); } + + Widget iosBlock(){ + return Dialog( + elevation: 0, + backgroundColor: Color(0xffffffff), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20.0).w, + ), + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 20).r, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox(height: 10,), + Text('chatting-block2'.tr(), style: TextStyle( + fontWeight: FontWeight.bold + ),), + SizedBox(height: 10,), + Text('chatting-block3'.tr(), + style: TextStyle( + color: Color(0xff888888) + ),), + SizedBox(height: 20,), + Divider( + height: 2.w,), + Container( + height: 60.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded(child: InkWell( + child: Center(child: Text('cancle'.tr())), + onTap: () { + Navigator.of(context).pop(); + }, + ),), + VerticalDivider( + width: 2.w, + ), + Expanded( + child: InkWell( + child: Center(child: Text("chatting-block1".tr())), + onTap: () async { + if(await APIs.blockPartner(widget.partner)){ + Navigator.of(context).pushNamedAndRemoveUntil('/loading', (Route route) => false); + } + }, + ), + ) + ], + ), + ) + ], + ), + ), + ); + } } diff --git a/lib/views/components/board_dialog_widget.dart b/lib/views/components/board_dialog_widget.dart index ba23a81a..85463f22 100644 --- a/lib/views/components/board_dialog_widget.dart +++ b/lib/views/components/board_dialog_widget.dart @@ -21,8 +21,9 @@ class BoardDialog extends StatelessWidget{ final BuildContext context; final Board board; final MemberDetails memberDetails; + final String boardCategory; - const BoardDialog({Key? key, required this.context, required this.board, required this.memberDetails}) : super(key:key); + const BoardDialog({Key? key, required this.context, required this.board, required this.memberDetails, required this.boardCategory}) : super(key:key); @override Widget build(BuildContext context) { @@ -71,6 +72,8 @@ class BoardDialog extends StatelessWidget{ ), ), ), + + SizedBox(height: 25.h,), memberDetails.email == board.member!.email ? InkWell( onTap: (){ showDialog( @@ -90,7 +93,22 @@ class BoardDialog extends StatelessWidget{ WidgetsBinding.instance!.addPostFrameCallback((_) { Navigator.pop(context); Navigator.pop(context); - boardProvider.getArticles(board.category!); + switch (boardCategory) { + case '전체게시판': + boardProvider.getAllArticles(); + break; + case '일반게시판': + boardProvider.getArticles(board.category!); + break; + case '나의 게시글': + boardProvider.getArticles(board.category!); + break; + case '좋아하는 게시글': + boardProvider.getLikedList(); + break; + default: + } + //boardProvider.getArticles(board.category!); }); return Container( child: Image( @@ -139,7 +157,7 @@ class BoardDialog extends StatelessWidget{ Navigator.pop(context); showDialog( context: context, - builder: (builder) => iOSReportDialog()); + builder: (builder) => iOSReportDialog(memberId: board.member!.memberId!,)); }, child: Container( height: 80.h, @@ -177,7 +195,22 @@ class BoardDialog extends StatelessWidget{ WidgetsBinding.instance!.addPostFrameCallback((_) { Navigator.pop(context); Navigator.pop(context); - boardProvider.getArticles(board.category!); + switch (boardCategory) { + case '전체게시판': + boardProvider.getAllArticles(); + break; + case '일반게시판': + boardProvider.getArticles(board.category!); + break; + case '나의 게시글': + boardProvider.getArticles(board.category!); + break; + case '좋아하는 게시글': + boardProvider.getLikedList(); + break; + default: + } + //boardProvider.getArticles(board.category!); }); return Container( child: Image( diff --git a/lib/views/components/chat_dialog_widget.dart b/lib/views/components/chat_dialog_widget.dart index 66cd3ecc..92c70a74 100644 --- a/lib/views/components/chat_dialog_widget.dart +++ b/lib/views/components/chat_dialog_widget.dart @@ -2,11 +2,13 @@ import 'package:aliens/models/partner_model.dart'; import 'package:aliens/models/screenArgument.dart'; import 'package:aliens/views/components/block_dialog_widget.dart'; import 'package:aliens/views/components/report_dialog_widget.dart'; +import 'package:aliens/views/components/report_iOS_dialog_widget.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; import 'dart:io' show Platform; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; class ChatDialog extends StatelessWidget{ @@ -102,7 +104,64 @@ class ChatDialog extends StatelessWidget{ } Widget iOSDialog(){ - return Container(); + return Dialog( + elevation: 0, + backgroundColor: Color(0xffffffff), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20.0).r, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + InkWell( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(20.0), + topRight: Radius.circular(20.0), + ).r, + onTap: () { + Navigator.pop(context); + showDialog( + context: context, + builder: (builder) => iOSReportDialog(memberId: partner!.memberId!,)); + }, + child: Container( + height: 80.h, + alignment: Alignment.center, + child: Text( + 'chatting-report1'.tr(), + style: TextStyle( + fontSize: 16.0.spMin, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + InkWell( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20.0), + bottomRight: Radius.circular(20.0), + ).r, + onTap: () { + Navigator.pop(context); + showDialog(context: context, builder: (context){ + return BlockDialog(partner: partner, context: context); + }); + }, + child: Container( + height: 80.h, + alignment: Alignment.center, + child: Text( + 'chatting-block1'.tr(), + style: TextStyle( + fontSize: 16.0.spMin, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ], + ) + ); } } diff --git a/lib/views/components/comment_dialog_widget.dart b/lib/views/components/comment_dialog_widget.dart index 3943d4b7..160e6833 100644 --- a/lib/views/components/comment_dialog_widget.dart +++ b/lib/views/components/comment_dialog_widget.dart @@ -232,7 +232,7 @@ class CommentDialog extends StatelessWidget{ Navigator.pop(context); showDialog( context: context, - builder: (builder) => iOSReportDialog()); + builder: (builder) => iOSReportDialog(memberId: comment.member!.memberId!,)); }, child: Container( height: 80, diff --git a/lib/views/components/home_widget.dart b/lib/views/components/home_widget.dart index e6e6b028..e762c534 100644 --- a/lib/views/components/home_widget.dart +++ b/lib/views/components/home_widget.dart @@ -102,11 +102,14 @@ class HomeWidget extends StatelessWidget{ recognizer: new TapGestureRecognizer()..onTap = () { showDialog(context: context, builder: (context){ - return InteractiveViewer( - child: Image.asset( - EasyLocalization.of(context)!.locale == Locale.fromSubtags(languageCode: "ko", countryCode: "KR") ? - 'assets/character/${screenArguments.memberDetails!.mbti}_ko.PNG' : - 'assets/character/${screenArguments.memberDetails!.mbti}_en.PNG' + return GestureDetector( + onTap: (){Navigator.pop(context);}, + child: InteractiveViewer( + child: Image.asset( + EasyLocalization.of(context)!.locale == Locale.fromSubtags(languageCode: "ko", countryCode: "KR") ? + 'assets/character/${screenArguments.memberDetails!.mbti}_ko.PNG' : + 'assets/character/${screenArguments.memberDetails!.mbti}_en.PNG' + ), ), ); }); diff --git a/lib/views/components/liked_post_widget.dart b/lib/views/components/liked_post_widget.dart index e56dde11..bf62d78a 100644 --- a/lib/views/components/liked_post_widget.dart +++ b/lib/views/components/liked_post_widget.dart @@ -138,7 +138,7 @@ class _LikedArticleWidgetWidgetState extends State{ context: context, builder: (builder) { return BoardDialog( - context: context, board: widget.board, memberDetails: widget.memberDetails, + context: context, board: widget.board, memberDetails: widget.memberDetails, boardCategory: "좋아하는 게시글", ); }); }, diff --git a/lib/views/components/market_dialog_widget.dart b/lib/views/components/market_dialog_widget.dart index 0e2f8966..ac1887d8 100644 --- a/lib/views/components/market_dialog_widget.dart +++ b/lib/views/components/market_dialog_widget.dart @@ -186,7 +186,7 @@ class MarketBoardDialog extends StatelessWidget{ Navigator.pop(context); showDialog( context: context, - builder: (builder) => iOSReportDialog()); + builder: (builder) => iOSReportDialog(memberId: marketBoard.member!.memberId!,)); }, child: Container( height: 80.h, diff --git a/lib/views/components/marketcomment_dialog.dart b/lib/views/components/marketcomment_dialog.dart index 19a3002c..c5fba348 100644 --- a/lib/views/components/marketcomment_dialog.dart +++ b/lib/views/components/marketcomment_dialog.dart @@ -178,7 +178,7 @@ class MarketCommentDialog extends StatelessWidget{ Navigator.pop(context); showDialog( context: context, - builder: (builder) => iOSReportDialog()); + builder: (builder) => iOSReportDialog(memberId: marketcomment.member!.memberId!,)); }, child: Container( height: 80, diff --git a/lib/views/components/my_article_widget.dart b/lib/views/components/my_article_widget.dart index 29f66642..cf75ad77 100644 --- a/lib/views/components/my_article_widget.dart +++ b/lib/views/components/my_article_widget.dart @@ -13,7 +13,7 @@ import 'package:flutter_svg/svg.dart'; import '../../models/board_model.dart'; import '../pages/board/article_page.dart'; import 'board_dialog_widget.dart'; - +/* class MyArticleWidget extends StatefulWidget { MyArticleWidget({super.key, required this.board, required this.nationCode, required this.memberDetails}); @@ -143,4 +143,6 @@ class _MyArticleWidgetState extends State{ }, ); } -} \ No newline at end of file +} + + */ \ No newline at end of file diff --git a/lib/views/components/report_iOS_dialog_widget.dart b/lib/views/components/report_iOS_dialog_widget.dart index 5e8a8e70..b50bcc14 100644 --- a/lib/views/components/report_iOS_dialog_widget.dart +++ b/lib/views/components/report_iOS_dialog_widget.dart @@ -7,10 +7,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_svg/svg.dart'; +import '../../apis/apis.dart'; import '../../models/message_model.dart'; +import '../../models/partner_model.dart'; class iOSReportDialog extends StatefulWidget { - const iOSReportDialog({super.key}); + const iOSReportDialog({super.key, + required this.memberId,}); + final int memberId; @override State createState() => _iOSReportDialogState(); @@ -149,7 +153,25 @@ class _iOSReportDialogState extends State { Expanded( child: InkWell( child: Center(child: Text("chatting-report1".tr())), - onTap: () { + onTap: ()async { + var reportCategory; + for(int i = 0; i < reportList.length; i ++){ + if(reportList[i][1] == _reportReason){ + reportCategory = reportList[i][0]; + break; + } + } + if(await APIs.reportPartner(reportCategory, _textEditingController.text, widget.memberId)){ + Navigator.pop(context); + showDialog(context: context, builder: (context){ + return AlertDialog( + title: Text('chatting-report8'.tr(), style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold + ),), + ); + }); + } }, ), ) diff --git a/lib/views/components/total_article_widget.dart b/lib/views/components/total_article_widget.dart index dba2e2e2..749ae47b 100644 --- a/lib/views/components/total_article_widget.dart +++ b/lib/views/components/total_article_widget.dart @@ -150,7 +150,7 @@ class _TotalArticleWidgetState extends State{ context: context, builder: (builder) { return BoardDialog( - context: context, board: widget.board, memberDetails: widget.screenArguments.memberDetails!, + context: context, board: widget.board, memberDetails: widget.screenArguments.memberDetails!,boardCategory: "전체게시판", ); }); }, diff --git a/lib/views/pages/board/article_page.dart b/lib/views/pages/board/article_page.dart index abe642bc..c6229944 100644 --- a/lib/views/pages/board/article_page.dart +++ b/lib/views/pages/board/article_page.dart @@ -154,7 +154,7 @@ class _ArticlePageState extends State { InkWell( onTap: (){ showDialog(context: context, builder: (builder){ - return BoardDialog(context: context, board: widget.board, memberDetails: widget.memberDetails); + return BoardDialog(context: context, board: widget.board, memberDetails: widget.memberDetails, boardCategory: "",); }); }, child: Padding( @@ -195,18 +195,30 @@ class _ArticlePageState extends State { itemBuilder: (context, index) { return Row( children: [ - Container( - margin: EdgeInsets.only(right: 10.w), - height: 80.h, - width: 80.h, - decoration: BoxDecoration( - color: Color(0xfff8f8f8), - borderRadius: - BorderRadius.circular(10).r, - image: DecorationImage( - image: NetworkImage(widget.board.imageUrls![index]), - fit: BoxFit.cover, - ) + InkWell( + onTap: (){ + showDialog(context: context, builder: (context){ + return GestureDetector( + onTap: (){Navigator.pop(context);}, + child: InteractiveViewer( + child: Image.network(widget.board.imageUrls![index]), + ), + ); + }); + }, + child: Container( + margin: EdgeInsets.only(right: 10.w), + height: 80.h, + width: 80.h, + decoration: BoxDecoration( + color: Color(0xfff8f8f8), + borderRadius: + BorderRadius.circular(10).r, + image: DecorationImage( + image: NetworkImage(widget.board.imageUrls![index]), + fit: BoxFit.cover, + ) + ), ), ), ], diff --git a/lib/views/pages/board/info_article_page.dart b/lib/views/pages/board/info_article_page.dart index 774000ea..92a55a7d 100644 --- a/lib/views/pages/board/info_article_page.dart +++ b/lib/views/pages/board/info_article_page.dart @@ -138,21 +138,31 @@ class _InfoArticlePageState extends State { itemBuilder: (context, index) { return Row( children: [ - Container( - margin: EdgeInsets.only(right: 10.w), - height: 80.h, - width: 80.h, - decoration: BoxDecoration( - color: Color(0xfff8f8f8), - borderRadius: - BorderRadius.circular(10).r, - image: DecorationImage( - image: NetworkImage(widget.board.imageUrls![index]), - fit: BoxFit.cover - ) + InkWell( + onTap: (){ + showDialog(context: context, builder: (context){ + return GestureDetector( + onTap: (){Navigator.pop(context);}, + child: InteractiveViewer( + child: Image.network(widget.board.imageUrls![index]), + ), + ); + }); + }, + child: Container( + margin: EdgeInsets.only(right: 10.w), + height: 80.h, + width: 80.h, + decoration: BoxDecoration( + color: Color(0xfff8f8f8), + borderRadius: + BorderRadius.circular(10).r, + image: DecorationImage( + image: NetworkImage(widget.board.imageUrls![index]), + fit: BoxFit.cover + ) + ), ), - child: Icon(Icons - .add_photo_alternate_outlined), ), ], ); diff --git a/lib/views/pages/chatting/chatting_page.dart b/lib/views/pages/chatting/chatting_page.dart index 858698b0..0bf36243 100644 --- a/lib/views/pages/chatting/chatting_page.dart +++ b/lib/views/pages/chatting/chatting_page.dart @@ -507,7 +507,7 @@ class _ChattingPageState extends State { }, //아이콘 수정 필요 icon: SvgPicture.asset( - 'assets/icon/icon_more.svg', + 'assets/icon/ICON_more.svg', height: 20, ), )