部分联系人信息和会话模块
This commit is contained in:
@@ -6,6 +6,10 @@ const TOKEN_KEY = 'token'
|
||||
const USER_ID_KEY = 'user_id'
|
||||
const USER_INFO_KEY = 'user_info'
|
||||
const REMEMBER_KEY = 'remember'
|
||||
const CURRENT_TAB_KEY = 'current_tab'
|
||||
const CONTACT_LEFT_PANEL_MODE_KEY = 'contact_left_panel_mode'
|
||||
const CONTACT_LIST_TAB_KEY = 'contact_list_tab'
|
||||
const SELECTED_CONVERSATION_KEY = 'selected_conversation'
|
||||
|
||||
export const storage = {
|
||||
// Token
|
||||
@@ -57,12 +61,55 @@ export const storage = {
|
||||
return localStorage.getItem(REMEMBER_KEY) === 'true'
|
||||
},
|
||||
|
||||
// Current Tab (chat/contact)
|
||||
setCurrentTab(tab: 'chat' | 'contact') {
|
||||
localStorage.setItem(CURRENT_TAB_KEY, tab)
|
||||
},
|
||||
|
||||
getCurrentTab(): 'chat' | 'contact' {
|
||||
const tab = localStorage.getItem(CURRENT_TAB_KEY)
|
||||
return (tab === 'chat' || tab === 'contact') ? tab : 'chat'
|
||||
},
|
||||
|
||||
// Contact Left Panel Mode
|
||||
setContactLeftPanelMode(mode: string) {
|
||||
localStorage.setItem(CONTACT_LEFT_PANEL_MODE_KEY, mode)
|
||||
},
|
||||
|
||||
getContactLeftPanelMode(): string {
|
||||
return localStorage.getItem(CONTACT_LEFT_PANEL_MODE_KEY) || 'default'
|
||||
},
|
||||
|
||||
// Contact List Tab
|
||||
setContactListTab(tab: 'friends' | 'groups') {
|
||||
localStorage.setItem(CONTACT_LIST_TAB_KEY, tab)
|
||||
},
|
||||
|
||||
getContactListTab(): 'friends' | 'groups' {
|
||||
const tab = localStorage.getItem(CONTACT_LIST_TAB_KEY)
|
||||
return (tab === 'friends' || tab === 'groups') ? tab : 'friends'
|
||||
},
|
||||
|
||||
// Selected Conversation
|
||||
setSelectedConversation(targetId: string | null) {
|
||||
if (targetId) {
|
||||
localStorage.setItem(SELECTED_CONVERSATION_KEY, targetId)
|
||||
} else {
|
||||
localStorage.removeItem(SELECTED_CONVERSATION_KEY)
|
||||
}
|
||||
},
|
||||
|
||||
getSelectedConversation(): string | null {
|
||||
return localStorage.getItem(SELECTED_CONVERSATION_KEY)
|
||||
},
|
||||
|
||||
// Clear all
|
||||
clear() {
|
||||
this.removeToken()
|
||||
this.removeUserId()
|
||||
this.removeUserInfo()
|
||||
this.setRemember(false)
|
||||
// 不清除 UI 状态,让用户刷新后保持界面状态
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user