Fixes deleting mostRecentProgram in ConfirmDeleteModal #289
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 fixes the nasty bug that corrupts our internal Redux state when you delete what happens to be the
mostRecentProgram
. We do this by adding a check when we delete the sketch: if the sketch's ID matchesmostRecentProgram
, we then update it withsetMostRecentProgram
with either the first item in the new programs list.As a minor impl. note, we don't have to worry about a situation with only one sketch, as the editor component itself handles situations with zero sketches (and doesn't access mostRecentProgram). So, this fix doesn't change the existing bevhaiour in that scenario.
If we add more areas where we delete sketches (i.e. in the classes feature), we should probably make some action that does something to the effect of
deleteSketchAndUpdate
that handles all of these things at once, which reduces our cognitive load!As an aside, we should probably check that
mostRecentProgram
is valid whenever we access it, and/or refactor many of its uses (as we've discussed, the editor depends too much on it).