aboutsummaryrefslogtreecommitdiff
path: root/src/modules/users.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2019-10-01 20:14:14 +0300
committerHenry Jameson <me@hjkos.com>2019-10-08 21:38:27 +0300
commit91ca1db7788a0603fd19ae603970f081c63e04c0 (patch)
treecefd624fa19446ddf18a7fba7651793af835e2e1 /src/modules/users.js
parent122323f35c32a4f12a345a8b3f163e9318f5dea3 (diff)
moved emoji stuff away from after-store and into users module since we only need
emoji after login
Diffstat (limited to 'src/modules/users.js')
-rw-r--r--src/modules/users.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/modules/users.js b/src/modules/users.js
index 4d02f8d7..fed948e4 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -60,6 +60,56 @@ const unmuteUser = (store, id) => {
.then((relationship) => store.commit('updateUserRelationship', [relationship]))
}
+const getStaticEmoji = async (store) => {
+ try {
+ const res = await window.fetch('/static/emoji.json')
+ if (res.ok) {
+ const values = await res.json()
+ const emoji = Object.keys(values).map((key) => {
+ return {
+ displayText: key,
+ imageUrl: false,
+ replacement: values[key]
+ }
+ }).sort((a, b) => a.displayText - b.displayText)
+ store.dispatch('setInstanceOption', { name: 'emoji', value: emoji })
+ } else {
+ throw (res)
+ }
+ } catch (e) {
+ console.warn("Can't load static emoji")
+ console.warn(e)
+ }
+}
+
+// This is also used to indicate if we have a 'pleroma backend' or not.
+// Somewhat weird, should probably be somewhere else.
+const getCustomEmoji = async (store) => {
+ try {
+ const res = await window.fetch('/api/pleroma/emoji.json')
+ if (res.ok) {
+ const result = await res.json()
+ const values = Array.isArray(result) ? Object.assign({}, ...result) : result
+ const emoji = Object.entries(values).map(([key, value]) => {
+ const imageUrl = value.image_url
+ return {
+ displayText: key,
+ imageUrl: imageUrl ? store.rootState.instance.server + imageUrl : value,
+ tags: imageUrl ? value.tags.sort((a, b) => a > b ? 1 : 0) : ['utf'],
+ replacement: `:${key}: `
+ }
+ // Technically could use tags but those are kinda useless right now, should have been "pack" field, that would be more useful
+ }).sort((a, b) => a.displayText.toLowerCase() > b.displayText.toLowerCase() ? 1 : 0)
+ store.dispatch('setInstanceOption', { name: 'customEmoji', value: emoji })
+ } else {
+ throw (res)
+ }
+ } catch (e) {
+ console.warn("Can't load custom emojis")
+ console.warn(e)
+ }
+}
+
export const mutations = {
setMuted (state, { user: { id }, muted }) {
const user = state.usersObject[id]
@@ -434,6 +484,9 @@ const users = {
commit('setCurrentUser', user)
commit('addNewUsers', [user])
+ getCustomEmoji(store)
+ getStaticEmoji(store)
+
getNotificationPermission()
.then(permission => commit('setNotificationPermission', permission))