aboutsummaryrefslogtreecommitdiff
path: root/src/boot/after_store.js
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2020-09-07 09:47:17 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2020-09-07 09:47:17 +0300
commitfa2b680855c790ba8ed8d7cc0dbf2a3a2e1dbaf6 (patch)
treeb2868a1c0d2fce025134af4167c824fc8ee49068 /src/boot/after_store.js
parent12519a54b55140a3e5f76e67ac53914654c2a8b0 (diff)
parenta73b09c73202117ffa3fecf7a9185981d6696912 (diff)
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma-fe into develop
Diffstat (limited to 'src/boot/after_store.js')
-rw-r--r--src/boot/after_store.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/boot/after_store.js b/src/boot/after_store.js
index 1796eb1b..00ca74a2 100644
--- a/src/boot/after_store.js
+++ b/src/boot/after_store.js
@@ -20,15 +20,23 @@ 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 = atob(data[request])
+ const decoded = decodeUTF8Base64(data[request])
+ const requestData = JSON.parse(decoded)
return {
ok: true,
- json: () => JSON.parse(requestData),
+ json: () => requestData,
text: () => requestData
}
}
@@ -215,7 +223,6 @@ const getAppSecret = async ({ store }) => {
const resolveStaffAccounts = ({ store, accounts }) => {
const nicknames = accounts.map(uri => uri.split('/').pop())
- nicknames.map(nickname => store.dispatch('fetchUser', nickname))
store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })
}
@@ -231,6 +238,7 @@ const getNodeInfo = async ({ store }) => {
store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })
store.dispatch('setInstanceOption', { name: 'safeDM', value: features.includes('safe_dm_mentions') })
store.dispatch('setInstanceOption', { name: 'chatAvailable', value: features.includes('chat') })
+ store.dispatch('setInstanceOption', { name: 'pleromaChatMessagesAvailable', value: features.includes('pleroma_chat_messages') })
store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: features.includes('gopher') })
store.dispatch('setInstanceOption', { name: 'pollsAvailable', value: features.includes('polls') })
store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })