Skip to content

Refactor ListProposalsViewController into VM, filters, and coordinator#133

Open
bigjermaine wants to merge 1 commit into
EVOlution-App:developmentfrom
bigjermaine:refactor/split-list-proposals-view-controller
Open

Refactor ListProposalsViewController into VM, filters, and coordinator#133
bigjermaine wants to merge 1 commit into
EVOlution-App:developmentfrom
bigjermaine:refactor/split-list-proposals-view-controller

Conversation

@bigjermaine

Copy link
Copy Markdown
Contributor

Summary

  • Split ListProposalsViewController (~634 → ~400 lines) into ProposalListViewModel (store/fetch/filter/search/people), pure ProposalListFiltering + ProposalPeopleBuilder helpers, and ProposalsCoordinator (detail/profile/settings/deep links via existing Routes/Navigation).
  • Move UI updates onto the main thread after fetch and keep AppDelegate people cache in sync from the view model.
  • Add unit tests for filter/search ordering, implemented-version filtering, people indexing, and view-model composition.

Test plan

  • Build and run the app; confirm proposals list loads and pull-to-refresh works
  • Toggle status/language filters and search; confirm results match prior behavior
  • Tap a proposal row, author, and implementation link; confirm navigation still works
  • Open an evo://proposal/... and evo://profile/... deep link
  • On iPad, confirm split detail auto-selects the first proposal after load
  • Run ProposalListFilteringTests in Xcode

Made with Cursor

…ordinator.

Split list fetch/filter/search and people caching out of the fat controller so filter logic is unit-testable and navigation reuses Routes/Navigation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant