Add `manuallyCollapsed` flag to Diff Files
Of course, this means that there's a bunch of logic to coordinate the new flag with the original - `automaticallyCollapsed` - flag. In addition: the UI is updated to use the new flag whenever it's been set, but to continue to fall back to the old flag. This is primarily facilitated by a new helper utility for diff files to do the resolution in a single centralized place. Of note: the diff_file is updated to depend on the global store as the authoritative source of determining whether the file is collapsed or not. The previous version kept a local `isCollapsed` in sync with the global store, which introduced a huge amount of interwoven complexity. The update ingests the resolved collapsed state from the store when various observed properties update instead of inverting that flow. This is a full refactor of file collapsing. Because the previous version was a single flag, then modified with a user preference (file-by-file), there were some issues including a THIRD possible way that collapsing works. This update slightly simplifies how collapsing works by depending more heavily on the two flags stored in state and only modifying them with the user preference when necessary.
Showing
Please register or sign in to comment