Reduce browse definition requests on simple item page #3701
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
References
Description
Current behavior: each
ItemPageFieldComponent
on a simple item page sends a request to retrieve the relevant browse definition.New behavior: each
ItemPageFieldComponent
retrieves the list of all browse definitions from the cache (which has already been requested for the navbar) and searches for the relevant browse definition.Instructions for Reviewers
List of changes in this PR
ItemPageFieldComponent.browseDefinition
modified to retrieve all browse definitions by invokingbrowseService.getBrowseDefinitions()
, and then finding the relevant browse definition.BrowseDefinition
and subclasses modified to have themetadataKeys
field inBrowseDefinition
, rather than in its subclasses.Reproducing pre-PR behavior
Open a simple item page and observe that that several requests are being made to
/server/api/discover/browses/search/byFields
.Testing the PR
Open a simple item page and observe that only one request is made to
/server/api/discover/browses
, and that the behavior of the page is otherwise unchanged.Checklist
main
branch of code (unless it is a backport or is fixing an issue specific to an older branch).npm run lint
npm run check-circ-deps
)package.json
), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.