Fb optic 1870 investigation: DO NOT MERGE #7389
Open
+390
−59
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 pull request introduces a significant improvement to the stability of the
AppStore
andTabStore
by adding checks for theisAlive
state from themobx-state-tree
library. These changes ensure that operations are not performed on instances that have been destroyed, preventing potential runtime errors. Additionally, theisAlive
check has been applied consistently across views, actions, and flows in both stores.Stability Enhancements:
AppStore
Updates:isAlive
checks to computed properties likeisLabeling
,currentView
, anddataStore
to prevent accessing properties of destroyed instances. [1] [2] [3]startPolling
,setMode
, andremoveAction
withisAlive
checks to ensure they are only executed on valid instances. [1] [2]setTask
,fetchProject
, andfetchUsers
to return early if the instance is no longer alive. [1] [2] [3]TabStore
Updates:isAlive
checks to views likeall
,canClose
, andcolumns
to prevent returning invalid data.setSelected
,deleteView
, andaddView
are only executed when the instance is alive. [1] [2] [3]saveView
,updateViewOrder
, andduplicateView
withisAlive
checks to avoid modifying destroyed instances. [1] [2] [3]These changes collectively enhance the robustness of the application by preventing operations on invalid or destroyed store instances.