web: Use tsx for save manager rows and use more accurate check for SOL #18515
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 includes a few vaguely related changes:
Many functions that relate to the save manager and don't rely on any parts of the
InnerPlayer
have been pulled out into external functions, taking a queue from already existing external functions likeparseBoolean
andparseAllowScriptAccess
. These functions includesaveFile
,base64ToArray
(which has also been slightly simplified),base64ToBlob
, andisB64SOL
.isB64SOL
has been changed to more accurately check for SOL data, using logic from https://www.sans.org/blog/local-shared-objects-aka-flash-cookies/Each row of the save table has been changed to a tsx component called SaveRow, instead of using so much direct DOM manipulation.