inblog logo
|
keepgoing
    Project

    [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

    RSS·Powered by Inblog