Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
73 lines
2.0 KiB
JavaScript
73 lines
2.0 KiB
JavaScript
import { disableSwiping } from "flavours/glitch/initial_state";
|
|
|
|
import { openModal } from "./modal";
|
|
|
|
export const LOCAL_SETTING_CHANGE = "LOCAL_SETTING_CHANGE";
|
|
export const LOCAL_SETTING_DELETE = "LOCAL_SETTING_DELETE";
|
|
|
|
export function checkDeprecatedLocalSettings() {
|
|
return (dispatch, getState) => {
|
|
const local_swipe_to_change_columns = getState().getIn(["local_settings", "swipe_to_change_columns"]);
|
|
let changed_settings = [];
|
|
|
|
if (local_swipe_to_change_columns !== null && local_swipe_to_change_columns !== undefined) {
|
|
if (local_swipe_to_change_columns === !disableSwiping) {
|
|
dispatch(deleteLocalSetting(["swipe_to_change_columns"]));
|
|
} else {
|
|
changed_settings.push("user_setting_disable_swiping");
|
|
}
|
|
}
|
|
|
|
if (changed_settings.length > 0) {
|
|
dispatch(openModal({
|
|
modalType: "DEPRECATED_SETTINGS",
|
|
modalProps: {
|
|
settings: changed_settings,
|
|
onConfirm: () => dispatch(clearDeprecatedLocalSettings()),
|
|
},
|
|
}));
|
|
}
|
|
};
|
|
}
|
|
|
|
export function clearDeprecatedLocalSettings() {
|
|
return (dispatch) => {
|
|
dispatch(deleteLocalSetting(["content_warnings", "auto_unfold"]));
|
|
dispatch(deleteLocalSetting(["swipe_to_change_columns"]));
|
|
};
|
|
}
|
|
|
|
export function changeLocalSetting(key, value) {
|
|
return dispatch => {
|
|
dispatch({
|
|
type: LOCAL_SETTING_CHANGE,
|
|
key,
|
|
value,
|
|
});
|
|
|
|
dispatch(saveLocalSettings());
|
|
};
|
|
}
|
|
|
|
export function deleteLocalSetting(key) {
|
|
return dispatch => {
|
|
dispatch({
|
|
type: LOCAL_SETTING_DELETE,
|
|
key,
|
|
});
|
|
|
|
dispatch(saveLocalSettings());
|
|
};
|
|
}
|
|
|
|
// __TODO :__
|
|
// Right now `saveLocalSettings()` doesn't keep track of which user
|
|
// is currently signed in, but it might be better to give each user
|
|
// their *own* local settings.
|
|
export function saveLocalSettings() {
|
|
return (_, getState) => {
|
|
const localSettings = getState().get("local_settings").toJS();
|
|
localStorage.setItem("mastodon-settings", JSON.stringify(localSettings));
|
|
};
|
|
}
|