From a3f67cf9620972359df862b3e709b73b155cc9e4 Mon Sep 17 00:00:00 2001 From: sBubshait Date: Sun, 3 Aug 2025 10:20:35 +0300 Subject: [PATCH] feat: remove the more options button from posts --- frontend/lib/screens/create_post_screen.dart | 332 ++++++++++--------- frontend/lib/widgets/posts_list.dart | 8 - 2 files changed, 170 insertions(+), 170 deletions(-) diff --git a/frontend/lib/screens/create_post_screen.dart b/frontend/lib/screens/create_post_screen.dart index 09598bb..a10985d 100644 --- a/frontend/lib/screens/create_post_screen.dart +++ b/frontend/lib/screens/create_post_screen.dart @@ -34,7 +34,7 @@ class _CreatePostScreenState extends State { try { final result = await PostService.createPost(_bodyController.text.trim()); - + if (result['success']) { Navigator.of(context).pop(true); // Return true to indicate success ScaffoldMessenger.of(context).showSnackBar( @@ -73,182 +73,190 @@ class _CreatePostScreenState extends State { return PopScope( canPop: true, // Allow back navigation to go back to feed page only child: Scaffold( - appBar: AppBar( - title: Text('Create Post', style: TextStyle(fontWeight: FontWeight.w600)), - backgroundColor: Colors.white, - foregroundColor: Color(0xFF6A4C93), - elevation: 0, - bottom: PreferredSize( - preferredSize: Size.fromHeight(1), - child: Container(height: 1, color: Colors.grey[200]), - ), - actions: [ - TextButton( - onPressed: _isLoading || isOverLimit || _bodyController.text.trim().isEmpty - ? null - : _createPost, - child: _isLoading - ? SizedBox( - width: 20, - height: 20, - child: CircularProgressIndicator( - strokeWidth: 2, - valueColor: AlwaysStoppedAnimation(Color(0xFF6A4C93)), - ), - ) - : Text( - 'Post', - style: TextStyle( - color: _bodyController.text.trim().isEmpty || isOverLimit - ? Colors.grey - : Color(0xFF6A4C93), - fontWeight: FontWeight.w600, - fontSize: 16, - ), - ), + appBar: AppBar( + title: Text( + 'Create Post', + style: TextStyle(fontWeight: FontWeight.w600), ), - SizedBox(width: 16), - ], - ), - body: Container( - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment.topLeft, - end: Alignment.bottomRight, - colors: [ - Color(0xFF32B0A5).withOpacity(0.05), - Color(0xFF4600B9).withOpacity(0.05), - ], + backgroundColor: Colors.white, + foregroundColor: Color(0xFF6A4C93), + elevation: 0, + bottom: PreferredSize( + preferredSize: Size.fromHeight(1), + child: Container(height: 1, color: Colors.grey[200]), ), - ), - child: Padding( - padding: EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(12), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.05), - blurRadius: 10, - offset: Offset(0, 2), + actions: [ + TextButton( + onPressed: + _isLoading || + isOverLimit || + _bodyController.text.trim().isEmpty + ? null + : _createPost, + child: _isLoading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation( + Color(0xFF6A4C93), + ), + ), + ) + : Text( + 'Post', + style: TextStyle( + color: + _bodyController.text.trim().isEmpty || isOverLimit + ? Colors.grey + : Color(0xFF6A4C93), + fontWeight: FontWeight.w600, + fontSize: 16, + ), ), - ], - ), - child: Padding( - padding: EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "What's on your mind?", - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.w600, - color: Color(0xFF6A4C93), - ), + ), + SizedBox(width: 16), + ], + ), + body: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFF32B0A5).withOpacity(0.05), + Color(0xFF4600B9).withOpacity(0.05), + ], + ), + ), + child: Padding( + padding: EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: Offset(0, 2), ), - SizedBox(height: 16), - TextField( - controller: _bodyController, - maxLines: 6, - decoration: InputDecoration( - hintText: 'Share your thoughts...', - hintStyle: TextStyle(color: Colors.grey[500]), - border: InputBorder.none, - enabledBorder: InputBorder.none, - focusedBorder: InputBorder.none, - ), - style: TextStyle( - fontSize: 16, - height: 1.4, - color: Colors.black87, - ), - onChanged: (text) { - setState(() {}); - }, - ), - SizedBox(height: 16), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - 'Share your thoughts with the community', - style: TextStyle( - color: Colors.grey[600], - fontSize: 12, - ), - ), - Text( - '$remainingChars', - style: TextStyle( - color: isOverLimit ? Colors.red : Colors.grey[600], - fontSize: 12, - fontWeight: FontWeight.w500, - ), - ), - ], - ), - if (isOverLimit) - Padding( - padding: EdgeInsets.only(top: 8), - child: Text( - 'Post is too long. Please keep it under $_maxCharacters characters.', - style: TextStyle( - color: Colors.red, - fontSize: 12, - ), - ), - ), ], ), - ), - ), - SizedBox(height: 24), - Container( - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(12), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.05), - blurRadius: 10, - offset: Offset(0, 2), - ), - ], - ), - child: Padding( - padding: EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.lightbulb_outline, - color: Color(0xFF6A4C93), - size: 20, - ), - SizedBox(width: 12), - Expanded( - child: Text( - 'Keep it friendly and respectful. Your post will be visible to everyone in the community.', + child: Padding( + padding: EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "What's on your mind?", style: TextStyle( - color: Colors.grey[700], - fontSize: 13, - height: 1.3, + fontSize: 18, + fontWeight: FontWeight.w600, + color: Color(0xFF6A4C93), ), ), + SizedBox(height: 16), + TextField( + controller: _bodyController, + maxLines: 6, + decoration: InputDecoration( + hintText: 'Share your thoughts...', + hintStyle: TextStyle(color: Colors.grey[500]), + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + ), + style: TextStyle( + fontSize: 16, + height: 1.4, + color: Colors.black87, + ), + onChanged: (text) { + setState(() {}); + }, + ), + SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Share your thoughts with the community', + style: TextStyle( + color: Colors.grey[600], + fontSize: 12, + ), + ), + Text( + '$remainingChars', + style: TextStyle( + color: isOverLimit + ? Colors.red + : Colors.grey[600], + fontSize: 12, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + if (isOverLimit) + Padding( + padding: EdgeInsets.only(top: 8), + child: Text( + 'Post is too long. Please keep it under $_maxCharacters characters.', + style: TextStyle(color: Colors.red, fontSize: 12), + ), + ), + ], + ), + ), + ), + SizedBox(height: 24), + Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: Offset(0, 2), ), ], ), + child: Padding( + padding: EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.lightbulb_outline, + color: Color(0xFF6A4C93), + size: 20, + ), + SizedBox(width: 12), + Expanded( + child: Text( + 'Keep it friendly and respectful. Your post will be visible to everyone in the community.', + style: TextStyle( + color: Colors.grey[700], + fontSize: 13, + height: 1.3, + ), + ), + ), + ], + ), + ), ), - ), - ], + ], + ), ), ), - ), ), ); } -} \ No newline at end of file +} diff --git a/frontend/lib/widgets/posts_list.dart b/frontend/lib/widgets/posts_list.dart index 0b1ed69..e87731e 100644 --- a/frontend/lib/widgets/posts_list.dart +++ b/frontend/lib/widgets/posts_list.dart @@ -411,14 +411,6 @@ class _PostCardState extends State { ], ), ), - IconButton( - onPressed: () { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('More options pressed')), - ); - }, - icon: Icon(Icons.more_horiz, color: Colors.grey[600]), - ), ], ), SizedBox(height: 12),