Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter screens consolidation #3038

Draft
wants to merge 25 commits into
base: master
Choose a base branch
from
Draft

Conversation

rh12
Copy link
Contributor

@rh12 rh12 commented Dec 20, 2024

refs: MBL-18544
affects: Student, Teacher
release note: Improved various filter screens.

TODO

  • Check VoiceOver support
  • Unit tests
  • Previews (may skip for now, because it's not working at the moment)

What's changed

Added SingleSelectionView and MultiSelectionView components (and their viewmodels) to handle selections, typically found on Filter or Preferences screens.

Added OptionItem as the model for these, which is a stripped down, unified model for all option selections.

  • It is intended to be created from and match with the given domain model.
  • Helper types SingleSelectionOptions and MultiSelectionOptions group them together for simplified usage.
  • Kept its id as a String instead of making it generic. For simplicity and because it covers most cases.
  • It has no related protocol like OptionItemConvertible at the moment.

Updated the following screens to use these:

  • Student Assignment List Preferences
  • Teacher Assignment List Preferences
  • Grade List Preferences
  • Smart Search Preferences
  • Calendar Selector
  • Calendar Filter

Consolidated UI in accordance with UX designer (Figma update is WIP)

  • components (RadioButtonCell, CheckboxCell, ListSectionHeader, Divider)
  • unified the above preferences screens (consistent wording, ordering, etc.)

What's not changed

  • List screens are not updated to use the updated components
  • Colors are not following context color yet
  • Navigation Bar (button fonts + colors, title fonts, dynamic text sizes)
  • Grade List Preferences screen Done behaviour:
    • swipe-to-dismiss is not added yet
    • kept "Done" button disabling for now
  • Did not refactor/rework types around the affected screens, tried to draw the line somewhere

Test plan

Verify all the above screens work as before, including the interactions with their List screens.
There is no updated Figma for each of the screens, so please check the screenshots below for UI changes.

Screenshots

BeforeAfter

Checklist

  • A11y checked
  • Tested on phone
  • Tested on tablet
  • Tested in dark mode
  • Tested in light mode
  • Tested on iOS 18
  • Tested on iOS 17

@rh12 rh12 self-assigned this Dec 20, 2024
@inst-danger
Copy link
Contributor

inst-danger commented Dec 20, 2024

Fails
🚫 Build failed, skipping coverage check

Release Note:

Improved various filter screens.

Affected Apps: Student, Teacher

MBL-18544

Generated by 🚫 dangerJS against ad28fb6

@inst-danger
Copy link
Contributor

Teacher Build QR Code:

@inst-danger
Copy link
Contributor

Student Build QR Code:

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.

2 participants