You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The goal of this issue is to refactor the panel to not add/retrieve data to/from contentNodesMap as well as to/from previousStepsMap/nextStepsMap but rather move towards using a more local state that will be cleared after a user stops using it.
Background
We accumulate content nodes data in contentNode/state from various Studio features of the channelEdit app and there is no mechanism for clearing them which causes memory leaks. This issue is part of a larger group of issues (see Improve Studio's performance when navigating and editing channels' content (channelEdit app) #3363) that aim to refactor problematic features away from using Vuex global state towards private in-components state or state that’s shared between more components but is cleared at some point and optimized performance-wise in general.
Ultimately, we want to get rid of globally stored content nodes data completely, however, this will be implemented incrementally, and therefore it’s fine to use mixed sources of data in the transition stage as long as all features continue working well from the user-point of view. Using composables is not required in all cases but is recommended as it has proven to be useful for state management across our products and it is flexible enough to allow us to keep using Vuex partially during the transition stage.
Acceptance criteria
No content nodes are added/retrieved to/from contentNodesMap and previousStepsMap/nextStepsMap when using the panel (applies to all sub-components if there are any)
The new implementation avoids the pitfalls of our current implementation that are described in the “Background” section and is optimized performance-wise overall
Summary
When using the resource panel (note that this component is used at more places like clipboard, import from channels, move modal etc.):
content nodes are added to
contentNodesMapVuex state:studio/contentcuration/contentcuration/frontend/channelEdit/vuex/contentNode/index.js
Line 15 in d6f06c2
and content nodes ids to
previousStepsMap/nextStepsMap:studio/contentcuration/contentcuration/frontend/channelEdit/vuex/contentNode/index.js
Line 58 in d6f06c2
studio/contentcuration/contentcuration/frontend/channelEdit/vuex/contentNode/index.js
Line 45 in d6f06c2
Example:
studio/contentcuration/contentcuration/frontend/channelEdit/components/ResourcePanel.vue
Line 561 in 0c46585
The goal of this issue is to refactor the panel to not add/retrieve data to/from
contentNodesMapas well as to/frompreviousStepsMap/nextStepsMapbut rather move towards using a more local state that will be cleared after a user stops using it.Background
contentNode/statefrom various Studio features of thechannelEditapp and there is no mechanism for clearing them which causes memory leaks. This issue is part of a larger group of issues (see Improve Studio's performance when navigating and editing channels' content (channelEditapp) #3363) that aim to refactor problematic features away from using Vuex global state towards private in-components state or state that’s shared between more components but is cleared at some point and optimized performance-wise in general.Acceptance criteria
contentNodesMapandpreviousStepsMap/nextStepsMapwhen using the panel (applies to all sub-components if there are any)Blocked by
Blocking