fix(stage-ui) patch ModelSettings.validateFiles to support utf-8 (#814)
This commit is contained in:
@@ -2,7 +2,23 @@ import type { ModelSettings } from 'pixi-live2d-display/cubism4'
|
||||
|
||||
import JSZip from 'jszip'
|
||||
|
||||
import { Cubism4ModelSettings, ZipLoader } from 'pixi-live2d-display/cubism4'
|
||||
import { Cubism4ModelSettings, ModelSettings as ModelSettingsClass, ZipLoader } from 'pixi-live2d-display/cubism4'
|
||||
|
||||
// TODO: this is a bit hacky, do we have other choice?
|
||||
// NOTICE: Patch to handle UTF-8 encoded file paths in model settings
|
||||
const originalValidateFiles = ModelSettingsClass.prototype.validateFiles
|
||||
ModelSettingsClass.prototype.validateFiles = function (files: string[]): string[] {
|
||||
const normalizedFiles = files.map((f) => {
|
||||
try {
|
||||
return decodeURI(f)
|
||||
}
|
||||
catch {
|
||||
// Not a valid URI, return original string.
|
||||
return f
|
||||
}
|
||||
})
|
||||
return originalValidateFiles.call(this, normalizedFiles)
|
||||
}
|
||||
|
||||
ZipLoader.zipReader = (data: Blob, _url: string) => JSZip.loadAsync(data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user