forked from mattermost/mattermost-webapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
local_storage_store.jsx
54 lines (43 loc) · 2.05 KB
/
local_storage_store.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {Constants} from 'utils/constants.jsx';
const getPreviousTeamIdKey = (userId) => ['user_prev_team', userId].join(':');
const getPreviousChannelNameKey = (userId, teamId) => ['user_team_prev_channel', userId, teamId].join(':');
const getPenultimateChannelNameKey = (userId, teamId) => ['user_team_penultimate_channel', userId, teamId].join(':');
// LocalStorageStore exposes an interface for accessing entries in the localStorage.
//
// Note that this excludes keys managed by redux-persist. The latter cannot currently be used for
// key/value storage that persists beyond logout. Ideally, we could purge all but certain parts
// of the Redux store so as to allow them to be used on re-login.
class LocalStorageStoreClass {
getPreviousChannelName(userId, teamId) {
return localStorage.getItem(getPreviousChannelNameKey(userId, teamId)) || Constants.DEFAULT_CHANNEL;
}
setPreviousChannelName(userId, teamId, channelName) {
localStorage.setItem(getPreviousChannelNameKey(userId, teamId), channelName);
}
getPenultimateChannelName(userId, teamId) {
return localStorage.getItem(getPenultimateChannelNameKey(userId, teamId)) || Constants.DEFAULT_CHANNEL;
}
setPenultimateChannelName(userId, teamId, channelName) {
localStorage.setItem(getPenultimateChannelNameKey(userId, teamId), channelName);
}
getPreviousTeamId(userId) {
return localStorage.getItem(getPreviousTeamIdKey(userId));
}
setPreviousTeamId(userId, teamId) {
localStorage.setItem(getPreviousTeamIdKey(userId), teamId);
}
setWasLoggedIn(wasLoggedIn) {
if (wasLoggedIn) {
localStorage.setItem('was_logged_in', 'true');
} else {
localStorage.setItem('was_logged_in', 'false');
}
}
getWasLoggedIn() {
return localStorage.getItem('was_logged_in') === 'true';
}
}
const LocalStorageStore = new LocalStorageStoreClass();
export default LocalStorageStore;