The continuation and new home of
yarn add @procore/labs-filters
react are listed as external peer dependencies. The package will not bundle the code, and requires the app client to provide it as a
dependency. The external peer dep is to assure React Context is consistent in a client's React tree, the child consumers can reference the correct parent provider. If the package uses latest features or bug fixes and a new minimum version of core-react is required, it should be considered a breaking change as the peer dependency version must be met.
@particles/filters in Procore, it was found to have several design and implementation issues that needed to be addressed, which resulted in code duplication within the micro-frontend architecture.
labs-filters main goal is to eliminate code duplication within the app, but it also addresses other issues of
@particles/filters, such as:
@particles/filtersimplicitly provides controlled and uncontrolled ways of using it, which violates interface segregation principle
onChangemethod is only provided with an unordered list of selected filters, making persistance of selected filters a problem
onChangeis overloaded with unnecessary concerns, such as handling "filter unfocused" events
- Filters are not displayed in the correct order when used via controlled API