catstodon/app/javascript/flavours/glitch/util/initial_state.js
David Yip 2dc4fbbd1a
When pulling out max_toot_chars, handle nulls
flavours/glitch/util/initial_state is used in places where we want to
exhibit different behavior based on user preferences.  This means that
it's used in places where no preference is defined, i.e. on an
unauthenticated access.  All values exported from that module must
therefore expect that case; previously, the max chars value didn't.

Addresses #306.
2018-01-08 09:45:59 -06:00

23 lines
873 B
JavaScript

const element = document.getElementById('initial-state');
const initialState = element && function () {
const result = JSON.parse(element.textContent);
try {
result.local_settings = JSON.parse(localStorage.getItem('mastodon-settings'));
} catch (e) {
result.local_settings = {};
}
return result;
}();
const getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop];
export const reduceMotion = getMeta('reduce_motion');
export const autoPlayGif = getMeta('auto_play_gif');
export const unfollowModal = getMeta('unfollow_modal');
export const boostModal = getMeta('boost_modal');
export const favouriteModal = getMeta('favourite_modal');
export const deleteModal = getMeta('delete_modal');
export const me = getMeta('me');
export const maxChars = (initialState && initialState.max_toot_chars) || 500;
export default initialState;