重构SidebarMenu组件,移除不必要的useEffect,优化消息列表和联系人组件的加载逻辑,合并样式文件以提升代码可读性和维护性。
This commit is contained in:
@@ -15,6 +15,7 @@ export const useMessageStore = create<MessageState>()(
|
||||
refreshing: false,
|
||||
refreshTrigger: 0,
|
||||
lastRefreshTime: null,
|
||||
hasLoadedOnce: false,
|
||||
|
||||
setLoading: (loading: boolean) => set({ loading }),
|
||||
setRefreshing: (refreshing: boolean) => set({ refreshing }),
|
||||
@@ -23,6 +24,14 @@ export const useMessageStore = create<MessageState>()(
|
||||
refreshTrigger: get().refreshTrigger + 1,
|
||||
lastRefreshTime: new Date().toISOString(),
|
||||
}),
|
||||
setHasLoadedOnce: (loaded: boolean) => set({ hasLoadedOnce: loaded }),
|
||||
resetLoadState: () =>
|
||||
set({
|
||||
hasLoadedOnce: false,
|
||||
loading: false,
|
||||
refreshing: false,
|
||||
refreshTrigger: 0,
|
||||
}),
|
||||
|
||||
// ==================== 保留原有接口(向后兼容) ====================
|
||||
messageList: [],
|
||||
@@ -42,6 +51,7 @@ export const useMessageStore = create<MessageState>()(
|
||||
partialize: state => ({
|
||||
// 只持久化必要的状态,不持久化数据
|
||||
lastRefreshTime: state.lastRefreshTime,
|
||||
hasLoadedOnce: state.hasLoadedOnce,
|
||||
// 保留原有持久化字段(向后兼容)
|
||||
messageList: [],
|
||||
currentMessage: null,
|
||||
@@ -99,3 +109,15 @@ export const setRefreshing = (refreshing: boolean) =>
|
||||
* 触发刷新(通知组件重新查询数据库)
|
||||
*/
|
||||
export const triggerRefresh = () => useMessageStore.getState().triggerRefresh();
|
||||
|
||||
/**
|
||||
* 设置已加载标识
|
||||
* @param loaded 是否已加载
|
||||
*/
|
||||
export const setHasLoadedOnce = (loaded: boolean) =>
|
||||
useMessageStore.getState().setHasLoadedOnce(loaded);
|
||||
|
||||
/**
|
||||
* 重置加载状态(用于登出或切换用户)
|
||||
*/
|
||||
export const resetLoadState = () => useMessageStore.getState().resetLoadState();
|
||||
|
||||
Reference in New Issue
Block a user