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

Select Component - dropdown with fuzzy search and multi-select capability #507

Merged
merged 10 commits into from
Oct 5, 2024

Conversation

Atikpui007
Copy link
Collaborator

@Atikpui007 Atikpui007 commented Mar 25, 2024

Summary

This pull request is aimed at introducing a new component / library which solves the problem of having searchable select dropdowns

  • installed react-select library which comes with predefined features such as multi-select, searchable select dropdown, etc
  • implemented form functionality for the Select dropdown and can correctly pass information to the backend
  • implemented rules for the form functionality to ensure only valid data is sent through
  • Added more custom functionality to the select component (returns only the value field to the form now)
  • Replaced select dropdowns for Ride modal
  • Replaced select dropdowns for Student modal
  • Replaced select dropdowns for other modals

The goal is to ensure that all the dropdowns make use of this component

Test Plan

To test the functionality of react-select

  1. Open the Add / Edit Ride modal
  2. Under the Rider Info section the pickup and dropoff location make use of React-Select
Screen.Recording.2024-03-27.at.1.07.45.PM.mov

Notes

Read on the react-select component here

React-select library requires a specific type of options to work

options = {
value
label
}

~~So it is necessary to transform the datalist into a supportable type for the Select component ~~
Fixed the react-select component to return only the value

Breaking Changes

Bug with the transforming of options - results in multiple options having the same keys. Causes the website to build a map that is arbitrarily large.
Squashed bug by introducing dependency array into the useEffect hook in the riderInfo.tsx file. Issue was with the constant updating of the dropdown menu causing performance and web crashes

@Atikpui007 Atikpui007 requested a review from a team as a code owner March 25, 2024 03:29
@dti-github-bot
Copy link
Member

dti-github-bot commented Mar 25, 2024

[diff-counting] Significant lines: 381.

@Atikpui007 Atikpui007 self-assigned this Mar 25, 2024
@Atikpui007 Atikpui007 changed the title Select Component - dropdown with fuzzy search [WIP] Select Component - dropdown with fuzzy search Mar 27, 2024
@Atikpui007 Atikpui007 changed the title Select Component - dropdown with fuzzy search Select Component - dropdown with fuzzy search and multi-select capability Mar 27, 2024
@Atikpui007 Atikpui007 changed the title Select Component - dropdown with fuzzy search and multi-select capability [WIP]Select Component - dropdown with fuzzy search and multi-select capability May 6, 2024
@Atikpui007 Atikpui007 changed the title [WIP]Select Component - dropdown with fuzzy search and multi-select capability Select Component - dropdown with fuzzy search and multi-select capability Oct 5, 2024
@namanhboi
Copy link
Contributor

Great work on incorporating the react-select library. It works as expected and allows for easy multi select dropdown boxes. However, now we have to fix some styling issues:
Cheese_Sat-05Oct24_11 25

Cheese_Sat-05Oct24_11 25_000
Here, the dropdown for disablility filter takes up the whole width of screen

Cheese_Sat-05Oct24_11 26
I'll work on this part next

Copy link
Contributor

@namanhboi namanhboi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Atikpui007 Atikpui007 merged commit 5eb347e into master Oct 5, 2024
5 checks passed
@Atikpui007 Atikpui007 deleted the dka34/select branch October 5, 2024 15:30
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.

4 participants