Merge pull request #421 from ThibG/glitch-soc/features/custom-emoji-api
[Glitch] retrieve custom emoji list via API instead of before page loadmaster
commit
8f1ec48cbe
@ -0,0 +1,37 @@ |
||||
import api from 'flavours/glitch/util/api'; |
||||
|
||||
export const CUSTOM_EMOJIS_FETCH_REQUEST = 'CUSTOM_EMOJIS_FETCH_REQUEST'; |
||||
export const CUSTOM_EMOJIS_FETCH_SUCCESS = 'CUSTOM_EMOJIS_FETCH_SUCCESS'; |
||||
export const CUSTOM_EMOJIS_FETCH_FAIL = 'CUSTOM_EMOJIS_FETCH_FAIL'; |
||||
|
||||
export function fetchCustomEmojis() { |
||||
return (dispatch, getState) => { |
||||
dispatch(fetchCustomEmojisRequest()); |
||||
|
||||
api(getState).get('/api/v1/custom_emojis').then(response => { |
||||
dispatch(fetchCustomEmojisSuccess(response.data)); |
||||
}).catch(error => { |
||||
dispatch(fetchCustomEmojisFail(error)); |
||||
}); |
||||
}; |
||||
}; |
||||
|
||||
export function fetchCustomEmojisRequest() { |
||||
return { |
||||
type: CUSTOM_EMOJIS_FETCH_REQUEST, |
||||
}; |
||||
}; |
||||
|
||||
export function fetchCustomEmojisSuccess(custom_emojis) { |
||||
return { |
||||
type: CUSTOM_EMOJIS_FETCH_SUCCESS, |
||||
custom_emojis, |
||||
}; |
||||
}; |
||||
|
||||
export function fetchCustomEmojisFail(error) { |
||||
return { |
||||
type: CUSTOM_EMOJIS_FETCH_FAIL, |
||||
error, |
||||
}; |
||||
}; |
@ -1,16 +1,15 @@ |
||||
import { List as ImmutableList } from 'immutable'; |
||||
import { STORE_HYDRATE } from 'flavours/glitch/actions/store'; |
||||
import { List as ImmutableList, fromJS as ConvertToImmutable } from 'immutable'; |
||||
import { CUSTOM_EMOJIS_FETCH_SUCCESS } from 'flavours/glitch/actions/custom_emojis'; |
||||
import { search as emojiSearch } from 'flavours/glitch/util/emoji/emoji_mart_search_light'; |
||||
import { buildCustomEmojis } from 'flavours/glitch/util/emoji'; |
||||
|
||||
const initialState = ImmutableList(); |
||||
const initialState = ImmutableList([]); |
||||
|
||||
export default function custom_emojis(state = initialState, action) { |
||||
switch(action.type) { |
||||
case STORE_HYDRATE: |
||||
emojiSearch('', { custom: buildCustomEmojis(action.state.get('custom_emojis', [])) }); |
||||
return action.state.get('custom_emojis'); |
||||
default: |
||||
return state; |
||||
if(action.type === CUSTOM_EMOJIS_FETCH_SUCCESS) { |
||||
state = ConvertToImmutable(action.custom_emojis); |
||||
emojiSearch('', { custom: buildCustomEmojis(state) }); |
||||
} |
||||
|
||||
return state; |
||||
}; |
||||
|
Loading…
Reference in new issue