fix(workspace): resolve folder lookups against all folders for branch and file tree
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
@@ -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>(
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user