[Project] 2차 프로젝트 - 신고 탭

김호정's avatar
Oct 25, 2024
[Project] 2차 프로젝트 -  신고 탭
notion image
notion image
내 댓글인 경우 → 수정, 삭제가 보이게
내 댓글이 아닌 경우 → 신고할 수 있게
분기를 아직 못나눠서 이렇게 여러개가 나열 되었다.
 
일단 신고 탭의 코드는 다음과 같다. 운영자가 정해놓은 신고 사유들을 List 에 저장해 놓고 RadioListTile 을 사용하여 하나만 선택할 수 있도록 하였다. 사유가 onChange 될때 선택된 사유의 상태를 바꿈으로써 마지막에 선택된 사유를 저장한다.
class ReportDialog extends StatefulWidget { @override _ReportDialogState createState() => _ReportDialogState(); } class _ReportDialogState extends State<ReportDialog> { String? _selectedReason; final List<String> _reasons = [ '욕설', '스팸', '부적절한 콘텐츠', '혐오 발언', '위협', '기타', ]; @override Widget build(BuildContext context) { return AlertDialog( title: Text('댓글 신고'), content: Column( mainAxisSize: MainAxisSize.min, children: _reasons.map((reason) { return RadioListTile<String>( title: Text(reason), value: reason, groupValue: _selectedReason, onChanged: (value) { setState(() { _selectedReason = value; }); }, ); }).toList(), ), actions: [ TextButton( onPressed: () { Navigator.pop(context); }, child: Text('취소'), ), TextButton( onPressed: () { if (_selectedReason != null) { print('신고 사유: $_selectedReason'); // 여기서 신고 처리를 수행자리. } Navigator.pop(context); }, child: Text('신고'), ), ], ); } }
 
이 신고 탭을 호출하는 부분이다.
void _showReportDialog(BuildContext context) { showDialog( context: context, builder: (BuildContext context) { return ReportDialog(); }, ); }
 
 
따라서 JWT 받아와서 분기 구분이 가능해 지면 _reviewActions 내부에서 분기를 나누면 되겠다.
notion image
리뷰 버튼 부분인데 나중에 JWT 체크해서 주석있는 if 부분에 추가하여 분기를 나누어야 한다!
그렇게 하면 올바른 버튼이 나타나겠지.
Share article

keepgoing