kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Store settings in IndexedDB even on unsupported backends
rodzic
1588f9c94a
commit
39b92b96fc
|
@ -1,3 +1,4 @@
|
||||||
|
import KVStore from 'soapbox/storage/kv_store';
|
||||||
import { getAuthUserId, getAuthUserUrl } from 'soapbox/utils/auth';
|
import { getAuthUserId, getAuthUserUrl } from 'soapbox/utils/auth';
|
||||||
|
|
||||||
import api from '../api';
|
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) {
|
export function patchMe(params, formData = false) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
dispatch(patchMeRequest());
|
dispatch(patchMeRequest());
|
||||||
|
@ -59,6 +72,7 @@ export function patchMe(params, formData = false) {
|
||||||
return api(getState)
|
return api(getState)
|
||||||
.patch('/api/v1/accounts/update_credentials', params, options)
|
.patch('/api/v1/accounts/update_credentials', params, options)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
persistAuthAccount(response.data, params);
|
||||||
dispatch(patchMeSuccess(response.data));
|
dispatch(patchMeSuccess(response.data));
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch(patchMeFail(error));
|
dispatch(patchMeFail(error));
|
||||||
|
|
|
@ -260,7 +260,16 @@ const importMastodonPreload = (state, data) => {
|
||||||
|
|
||||||
const persistAuthAccount = account => {
|
const persistAuthAccount = account => {
|
||||||
if (account && account.url) {
|
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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue