Merge branch 'mastodon-settings' into 'next'

Store settings in IndexedDB even on unsupported backends

See merge request soapbox-pub/soapbox-fe!1279
next
Alex Gleason 2 years ago
commit 4765db5ef3

@ -1,3 +1,4 @@
import KVStore from 'soapbox/storage/kv_store';
import { getAuthUserId, getAuthUserUrl } from 'soapbox/utils/auth';
import api from '../api';
@ -46,6 +47,18 @@ export function fetchMe() {
};
}
/** Update the auth account in IndexedDB for Mastodon, etc. */
const persistAuthAccount = (account, params) => {
if (account && account.url) {
if (!account.pleroma) account.pleroma = {};
if (!account.pleroma.settings_store) {
account.pleroma.settings_store = params.pleroma_settings_store || {};
}
KVStore.setItem(`authAccount:${account.url}`, account).catch(console.error);
}
};
export function patchMe(params, formData = false) {
return (dispatch, getState) => {
dispatch(patchMeRequest());
@ -59,6 +72,7 @@ export function patchMe(params, formData = false) {
return api(getState)
.patch('/api/v1/accounts/update_credentials', params, options)
.then(response => {
persistAuthAccount(response.data, params);
dispatch(patchMeSuccess(response.data));
}).catch(error => {
dispatch(patchMeFail(error));

@ -260,7 +260,16 @@ const importMastodonPreload = (state, data) => {
const persistAuthAccount = account => {
if (account && account.url) {
KVStore.setItem(`authAccount:${account.url}`, account).catch(console.error);
const key = `authAccount:${account.url}`;
if (!account.pleroma) account.pleroma = {};
KVStore.getItem(key).then(oldAccount => {
const settings = oldAccount?.pleroma?.settings_store || {};
if (!account.pleroma.settings_store) {
account.pleroma.settings_store = settings;
}
KVStore.setItem(key, account);
})
.catch(console.error);
}
};

Loading…
Cancel
Save