This repository has been archived by the owner on Jan 16, 2024. It is now read-only.
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.
This PR introduces lazy load for certain types of widgets (
PopupWidgetTypes
at the moment, but can be extended later), i.e. the data and row meta will not be fetched until those widgets are explicitly opened throughshowViewPopup
dispatch.If lazy widget shares business component with some non-lazy widget (either directly or through ancestors chaing), than it continues to be fetched.
bcFetchDataEpic
which tends to be overbloated with various loosely connected functionality: hierarchies, pagination, cancellation, cursors change, data fetch, row meta fetch, children fetch... Unit tests and tsdoc coverage should document current behaviorwidgetName
instead ofbcName
prone to collisions. Work in progress.<PickListField />
and<MultivalueField />
no longer show spinners while row meta for their corresponding business components if fetched; it was an ad hoc protection to prevent fetching data on popup open when the initial data is still fetched. With lazy load there is no initial fetch => no race condition, though it is still possible in a case when multiple popup fields share the same business component. Probably there is still work to do here.WidgetMeta
now hasurl
field (it was always there, just missing from the interface)redux-observable
to1.*.*
due to backward-compatibility support, tests forObservable.race
are omitted and epic implementations return flows intended to check manually