diff options
| author | Shpuld Shpludson <shp@cock.li> | 2020-07-09 09:29:20 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2020-07-09 09:29:20 +0000 |
| commit | d2f0e4e7d515afe4b15d4e6a0e52d9fee2349c4a (patch) | |
| tree | c10e03aa8c1eb4a530cad68eb2bf93cc78f26596 | |
| parent | 2b3c4ccfaeddb6a05c7a97e669daa17c2058727c (diff) | |
| parent | 905de12980ceda8982fb24b4f715677065974528 (diff) | |
Merge branch '888-fix-utf8-base64-decoding' into 'develop'
After Store: Correctly decode UTF-8 encoded base64 strings.
Closes #888
See merge request pleroma/pleroma-fe!1176
| -rw-r--r-- | src/boot/after_store.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 302b278c..8b722c5c 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -20,12 +20,20 @@ const parsedInitialResults = () => { return staticInitialResults } +const decodeUTF8Base64 = (data) => { + const rawData = atob(data) + const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0))) + const text = new TextDecoder().decode(array) + return text +} + const preloadFetch = async (request) => { const data = parsedInitialResults() if (!data || !data[request]) { return window.fetch(request) } - const requestData = JSON.parse(atob(data[request])) + const decoded = decodeUTF8Base64(data[request]) + const requestData = JSON.parse(decoded) return { ok: true, json: () => requestData, |
