fix(workspace): resolve folder lookups against all folders for branch and file tree

This commit is contained in:
xintaofei
2026-04-21 21:44:33 +08:00
parent 256ebb7368
commit 753e312c13
3 changed files with 11 additions and 11 deletions

View File

@@ -24,14 +24,14 @@ export function TabBar() {
toggleTileMode, toggleTileMode,
reorderTabs, reorderTabs,
} = useTabContext() } = useTabContext()
const { folders, branches } = useAppWorkspace() const { allFolders, branches } = useAppWorkspace()
const { mode, activePane } = useWorkspaceContext() const { mode, activePane } = useWorkspaceContext()
const folderIndex = useMemo(() => { const folderIndex = useMemo(() => {
const map = new Map<number, { name: string }>() const map = new Map<number, { name: string }>()
for (const f of folders) map.set(f.id, { name: f.name }) for (const f of allFolders) map.set(f.id, { name: f.name })
return map return map
}, [folders]) }, [allFolders])
const handleRevealInSidebar = useCallback((folderId: number) => { const handleRevealInSidebar = useCallback((folderId: number) => {
window.dispatchEvent( window.dispatchEvent(

View File

@@ -20,14 +20,14 @@ export function useActiveFolder() {
} }
export function ActiveFolderProvider({ children }: { children: ReactNode }) { export function ActiveFolderProvider({ children }: { children: ReactNode }) {
const { folders, activeFolderId } = useAppWorkspace() const { allFolders, activeFolderId } = useAppWorkspace()
const activeFolder = useMemo( const activeFolder = useMemo(
() => () =>
activeFolderId != null activeFolderId != null
? (folders.find((f) => f.id === activeFolderId) ?? null) ? (allFolders.find((f) => f.id === activeFolderId) ?? null)
: null, : null,
[activeFolderId, folders] [activeFolderId, allFolders]
) )
const value = useMemo<ActiveFolderContextValue>( const value = useMemo<ActiveFolderContextValue>(

View File

@@ -135,7 +135,7 @@ export function AppWorkspaceProvider({ children }: AppWorkspaceProviderProps) {
setAllFolders(allList) setAllFolders(allList)
setBranches((prev) => { setBranches((prev) => {
const next = new Map(prev) const next = new Map(prev)
for (const f of openList) { for (const f of allList) {
if (!next.has(f.id)) { if (!next.has(f.id)) {
next.set(f.id, f.git_branch ?? null) next.set(f.id, f.git_branch ?? null)
} }
@@ -175,8 +175,8 @@ export function AppWorkspaceProvider({ children }: AppWorkspaceProviderProps) {
}, [fetchFolders, refreshConversations]) }, [fetchFolders, refreshConversations])
const getFolder = useCallback( const getFolder = useCallback(
(id: number) => folders.find((f) => f.id === id), (id: number) => allFolders.find((f) => f.id === id),
[folders] [allFolders]
) )
const updateConversationLocal = useCallback( const updateConversationLocal = useCallback(
@@ -290,7 +290,7 @@ export function AppWorkspaceProvider({ children }: AppWorkspaceProviderProps) {
useEffect(() => { useEffect(() => {
if (activeFolderId == null) return if (activeFolderId == null) return
const folderId = activeFolderId const folderId = activeFolderId
const folder = folders.find((f) => f.id === folderId) const folder = allFolders.find((f) => f.id === folderId)
if (!folder) return if (!folder) return
let cancelled = false let cancelled = false
@@ -322,7 +322,7 @@ export function AppWorkspaceProvider({ children }: AppWorkspaceProviderProps) {
cancelled = true cancelled = true
if (timer) clearTimeout(timer) if (timer) clearTimeout(timer)
} }
}, [activeFolderId, folders]) }, [activeFolderId, allFolders])
const stats = useMemo( const stats = useMemo(
() => (conversations.length > 0 ? computeStats(conversations) : null), () => (conversations.length > 0 ? computeStats(conversations) : null),