Skip to content

Ananya/SortButton#482

Open
ananyadua27 wants to merge 6 commits intomasterfrom
Ananya/SortButton
Open

Ananya/SortButton#482
ananyadua27 wants to merge 6 commits intomasterfrom
Ananya/SortButton

Conversation

@ananyadua27
Copy link
Collaborator

@ananyadua27 ananyadua27 commented Nov 22, 2025

This PR adds a sorting feature to the list view on the Home screen. Users can now choose how they want the list to be sorted. A new reusable sort menu component was added so this feature can be used later within the app.

Changes included

  • Added a reusable sort menu view (BMSortMenuView)

  • Added a reusable sorting option enum (BMSortOption)

  • Added a generic sorting engine (BMSortEngine)

  • Updated BMHomeSectionListView to support sorting

  • Added a sort button above the list
    Sorting modes:
    1. Name (A to Z)
    2. Name (Z to A)
    3. Closest
    4. Furthest
    5. Open Times
    6. Close Times

  • Updated the Home section list (dining, fitness and study) to use a generic type that works with the sort engine

  • Note: Since we do not display open/close for fitness/study, for now the sort has only 4 options (all but open/close).

  • Once we're able to integrate that, we can add the last 2 sort options in as well

  • Maintained existing iOS version behavior

Testing

  • Built and ran the app in the iOS simulator
  • Verified that:
    • Sorting updates the list immediately
    • All sorting modes behave correctly
    • The sort menu UI displays correctly and does not break layout
    • No unintended changes to navigation or list rendering

Linked Issue
Closes #459

Screenshot 2025-11-21 at 4 27 40 PM Screenshot 2025-11-21 at 4 27 49 PM Screenshot 2025-11-21 at 4 28 13 PM Screenshot 2025-11-21 at 4 50 06 PM Screenshot 2025-11-21 at 4 50 22 PM

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.

Add Sort Button To Dining Halls

1 participant