Local Mod List Improvements #2 #2032
Open
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.
Local Mod List Improvements
Mods.yml
Primary change
Dropped mods.yml size down from 16139KB to 105KB. This is on a profile with 177 mods.
This was done using the
reducerwhen stringify-ing the content of mods.yml and stripping out theiconkey/value.Secondary effect
This has an added bonus of drastically improving the load times to get to the profiles screen.
Fixing dragging ghost-effect
Prior to this change, when you drag a mod, due to the asynchronous behaviour of the manager, the mod list is treated as being reset before the state has changed. This gave the appearance of the mod jumping back to the original drag position, and then momentarily after being updated to the real position.
There's now a new ref variable which holds the local state and is updated by both the draggable list and the VueX state.
Suspense
I've also introduced a new SkeletonLocalModCard. This is used as a loading placeholder whilst the actual state and dependency calculation is done in the background for mods.
It means that the installed list can be seen far quicker, albeit non-interactive until loaded. Regardless it's still a nice improvement that's been needed for a while.