Merge "fix: fix lang local storage after logout"
This commit is contained in:
commit
da98091f53
@ -17,7 +17,7 @@ import { RouterStore } from 'mobx-react-router';
|
||||
import { parse } from 'qs';
|
||||
import client from 'client';
|
||||
import { getQueryString } from 'utils/index';
|
||||
import { setLocalStorageItem } from 'utils/local-storage';
|
||||
import { setLocalStorageItem, clearLocalStorage } from 'utils/local-storage';
|
||||
import { isEmpty, values } from 'lodash';
|
||||
|
||||
export class RootStore {
|
||||
@ -258,8 +258,8 @@ export class RootStore {
|
||||
stores.forEach((store) => {
|
||||
store.clearData();
|
||||
});
|
||||
// clear keystone_token in the local storage
|
||||
localStorage.clear();
|
||||
// clear all local storage expect language
|
||||
clearLocalStorage(['lang']);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,3 +44,16 @@ export const setLocalStorageItem = (
|
||||
);
|
||||
} catch (e) {}
|
||||
};
|
||||
|
||||
export const clearLocalStorage = (expectKeys = []) => {
|
||||
if (!expectKeys.length) {
|
||||
localStorage.clear();
|
||||
return;
|
||||
}
|
||||
const keys = Object.keys(localStorage);
|
||||
keys.forEach((key) => {
|
||||
if (!expectKeys.includes(key)) {
|
||||
localStorage.removeItem(key);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
@ -12,7 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { getLocalStorageItem, setLocalStorageItem } from './local-storage';
|
||||
import {
|
||||
getLocalStorageItem,
|
||||
setLocalStorageItem,
|
||||
clearLocalStorage,
|
||||
} from './local-storage';
|
||||
|
||||
describe('test localstorage', () => {
|
||||
it('getLocalStorageItem', () => {
|
||||
@ -41,4 +45,30 @@ describe('test localstorage', () => {
|
||||
expect(getLocalStorageItem('key')).toBe(null);
|
||||
localStorage.clear();
|
||||
});
|
||||
|
||||
it('clearLocalStorage - clear all', () => {
|
||||
expect(getLocalStorageItem('key1')).toBe(null);
|
||||
expect(getLocalStorageItem('key2')).toBe(null);
|
||||
setLocalStorageItem('key1', 'value1');
|
||||
setLocalStorageItem('key2', 'value2');
|
||||
expect(getLocalStorageItem('key1')).toBe('value1');
|
||||
expect(getLocalStorageItem('key2')).toBe('value2');
|
||||
clearLocalStorage();
|
||||
expect(getLocalStorageItem('key1')).toBe(null);
|
||||
expect(getLocalStorageItem('key2')).toBe(null);
|
||||
localStorage.clear();
|
||||
});
|
||||
|
||||
it('clearLocalStorage - clear with expect', () => {
|
||||
expect(getLocalStorageItem('key1')).toBe(null);
|
||||
expect(getLocalStorageItem('key2')).toBe(null);
|
||||
setLocalStorageItem('key1', 'value1');
|
||||
setLocalStorageItem('key2', 'value2');
|
||||
expect(getLocalStorageItem('key1')).toBe('value1');
|
||||
expect(getLocalStorageItem('key2')).toBe('value2');
|
||||
clearLocalStorage(['key1']);
|
||||
expect(getLocalStorageItem('key1')).toBe('value1');
|
||||
expect(getLocalStorageItem('key2')).toBe(null);
|
||||
localStorage.clear();
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user