部分联系人信息和会话模块

This commit is contained in:
2025-12-04 09:46:29 +08:00
parent 07a219a183
commit 47fac373b7
6 changed files with 104 additions and 25 deletions

View File

@@ -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 状态,让用户刷新后保持界面状态
},
}