···95959696 // End of network when:
9797 // 1. API returns null cursor (no more pages)
9898- // 2. API returns fewer posts than requested (last page)
9999- // 3. No new posts were added (duplicates or empty response)
9898+ // 2. API returned posts but all were duplicates (prevents infinite loops)
9999+ // Note: Don't check posts.isEmpty - empty page with cursor means more exist
100100 final isEndOfNetwork =
101101 result.cursor == null ||
102102- result.posts.length < ProfileFeedState.fetchLimit ||
103103- (currentState != null &&
104104- currentState.allPosts.length == allPosts.length);
102102+ (result.posts.isNotEmpty && newPosts.isEmpty);
105103106104 return ProfileFeedState(
107105 loadedPosts: allPosts,
···89899090 // End of network when:
9191 // 1. API returns null cursor (no more pages)
9292- // 2. API returns fewer posts than requested (last page)
9393- // 3. No new posts were added (duplicates or empty response)
9292+ // 2. API returned posts but all were duplicates (prevents infinite loops)
9393+ // Note: Don't check posts.isEmpty - empty page with cursor means more exist
9494 final isEndOfNetwork =
9595 result.cursor == null ||
9696- result.posts.length < ProfileFeedState.fetchLimit ||
9797- (currentState != null &&
9898- currentState.allPosts.length == allPosts.length);
9696+ (result.posts.isNotEmpty && newPosts.isEmpty);
999710098 return ProfileFeedState(
10199 loadedPosts: allPosts,
···89899090 // End of network when:
9191 // 1. API returns null cursor (no more pages)
9292- // 2. API returns fewer posts than requested (last page)
9393- // 3. No new posts were added (duplicates or empty response)
9292+ // 2. API returned posts but all were duplicates (prevents infinite loops)
9393+ // Note: Don't check posts.isEmpty - empty page with cursor means more exist
9494 final isEndOfNetwork =
9595 result.cursor == null ||
9696- result.posts.length < ProfileFeedState.fetchLimit ||
9797- (currentState != null &&
9898- currentState.allPosts.length == allPosts.length);
9696+ (result.posts.isNotEmpty && newPosts.isEmpty);
999710098 return ProfileFeedState(
10199 loadedPosts: allPosts,