import 'package:flutter/material.dart'; import '../create_post_screen.dart'; import '../../services/post_service.dart'; import '../../widgets/posts_list.dart'; class FeedPage extends StatefulWidget { @override _FeedPageState createState() => _FeedPageState(); } class _FeedPageState extends State { final GlobalKey _postsListKey = GlobalKey(); @override Widget build(BuildContext context) { return PopScope( canPop: false, // Prevent back navigation from feed page onPopInvoked: (bool didPop) { // Prevent any pop behavior, including iOS back gesture if (!didPop) { // Do nothing - stay on feed page } }, child: Scaffold( appBar: AppBar( title: Text('Feed', 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]), ), automaticallyImplyLeading: false, actions: [ IconButton( onPressed: () => _postsListKey.currentState?.refreshPosts(), icon: Icon(Icons.refresh), tooltip: 'Refresh', ), ], ), body: PostsList( key: _postsListKey, fetchPosts: ({bool forceRefresh = false}) => PostService.getAllPosts(forceRefresh: forceRefresh), emptyStateTitle: 'Nothing here..', emptyStateSubtitle: 'Create the first post!', showRefreshIndicator: true, ), floatingActionButton: FloatingActionButton( onPressed: _navigateToCreatePost, backgroundColor: Color(0xFF6A4C93), child: Icon(Icons.edit, color: Colors.white), ), ), ); } Future _navigateToCreatePost() async { final result = await Navigator.push( context, MaterialPageRoute(builder: (context) => CreatePostScreen()), ); // If post was created successfully, refresh the feed if (result == true) { _postsListKey.currentState?.refreshPosts(); } } }