mirror of
https://github.com/funamitech/mastodon
synced 2024-12-16 23:59:11 +09:00
956321b863
Reactions will be backported to the vanilla flavour, which requires all related settings to be accessible from the vanilla settings page rather than the glitch specific settings modal.
81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
// Package imports.
|
|
import { Map as ImmutableMap } from 'immutable';
|
|
|
|
// Our imports.
|
|
import { LOCAL_SETTING_CHANGE, LOCAL_SETTING_DELETE } from 'flavours/glitch/actions/local_settings';
|
|
import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
|
|
|
|
const initialState = ImmutableMap({
|
|
layout : 'auto',
|
|
stretch : true,
|
|
side_arm : 'none',
|
|
side_arm_reply_mode : 'keep',
|
|
show_reply_count : false,
|
|
always_show_spoilers_field: false,
|
|
confirm_missing_media_description: false,
|
|
confirm_boost_missing_media_description: false,
|
|
confirm_before_clearing_draft: true,
|
|
prepend_cw_re: true,
|
|
preselect_on_reply: true,
|
|
inline_preview_cards: true,
|
|
hicolor_privacy_icons: false,
|
|
show_content_type_choice: false,
|
|
tag_misleading_links: true,
|
|
rewrite_mentions: 'no',
|
|
content_warnings : ImmutableMap({
|
|
filter : null,
|
|
media_outside: false,
|
|
shared_state : false,
|
|
}),
|
|
collapsed : ImmutableMap({
|
|
enabled : true,
|
|
auto : ImmutableMap({
|
|
all : false,
|
|
notifications : true,
|
|
lengthy : true,
|
|
reblogs : false,
|
|
replies : false,
|
|
media : false,
|
|
height : 400,
|
|
}),
|
|
backgrounds : ImmutableMap({
|
|
user_backgrounds : false,
|
|
preview_images : false,
|
|
}),
|
|
show_action_bar : true,
|
|
}),
|
|
media : ImmutableMap({
|
|
letterbox : true,
|
|
fullwidth : true,
|
|
reveal_behind_cw : false,
|
|
pop_in_player : true,
|
|
pop_in_position : 'right',
|
|
}),
|
|
notifications : ImmutableMap({
|
|
favicon_badge : false,
|
|
tab_badge : true,
|
|
}),
|
|
status_icons : ImmutableMap({
|
|
language: true,
|
|
reply: true,
|
|
local_only: true,
|
|
media: true,
|
|
visibility: true,
|
|
}),
|
|
});
|
|
|
|
const hydrate = (state, localSettings) => state.mergeDeep(localSettings);
|
|
|
|
export default function localSettings(state = initialState, action) {
|
|
switch(action.type) {
|
|
case STORE_HYDRATE:
|
|
return hydrate(state, action.state.get('local_settings'));
|
|
case LOCAL_SETTING_CHANGE:
|
|
return state.setIn(action.key, action.value);
|
|
case LOCAL_SETTING_DELETE:
|
|
return state.deleteIn(action.key);
|
|
default:
|
|
return state;
|
|
}
|
|
}
|