Files
tolaria/src/hooks/useFolderActions.ts
2026-04-22 17:16:56 +02:00

60 lines
1.5 KiB
TypeScript

import type { FolderNode, SidebarSelection, VaultEntry } from '../types'
import type { FolderTab } from './folder-actions/folderActionUtils'
import { useFolderDelete } from './folder-actions/useFolderDelete'
import { useFolderRename } from './folder-actions/useFolderRename'
interface UseFolderActionsInput {
vaultPath: string
selection: SidebarSelection
setSelection: (selection: SidebarSelection) => void
setTabs: React.Dispatch<React.SetStateAction<FolderTab[]>>
activeTabPathRef: React.MutableRefObject<string | null>
handleSwitchTab: (path: string) => void
closeAllTabs: () => void
reloadVault: () => Promise<VaultEntry[]>
reloadFolders: () => Promise<FolderNode[]>
setToastMessage: (message: string | null) => void
}
export function useFolderActions({
vaultPath,
selection,
setSelection,
setTabs,
activeTabPathRef,
handleSwitchTab,
closeAllTabs,
reloadVault,
reloadFolders,
setToastMessage,
}: UseFolderActionsInput) {
const renameActions = useFolderRename({
activeTabPathRef,
handleSwitchTab,
reloadFolders,
reloadVault,
selection,
setSelection,
setTabs,
setToastMessage,
vaultPath,
})
const deleteActions = useFolderDelete({
activeTabPathRef,
clearFolderRename: renameActions.cancelFolderRename,
closeAllTabs,
reloadFolders,
reloadVault,
selection,
setSelection,
setTabs,
setToastMessage,
vaultPath,
})
return {
...renameActions,
...deleteActions,
}
}