feat: Refactor folder tree management to use FoldersManager and remove onToggle functionality
This commit is contained in:
@@ -2,14 +2,12 @@ import { useMemo } from 'react';
|
||||
import type { DragEvent } from 'react';
|
||||
import type { Identifier } from '../types/identifiers';
|
||||
|
||||
type FolderToggleHandler = (folderId: Identifier) => void | Promise<void>;
|
||||
type FolderDropHandler = (
|
||||
event: DragEvent<HTMLElement>,
|
||||
folderId: Identifier,
|
||||
) => void | Promise<void>;
|
||||
|
||||
interface FolderClickHandlers {
|
||||
onToggle: FolderToggleHandler;
|
||||
onSelect: (folderId: Identifier | null) => void;
|
||||
onDrop: FolderDropHandler;
|
||||
onDragOver: (event: DragEvent<HTMLElement>, folderId: Identifier) => void;
|
||||
@@ -30,7 +28,6 @@ interface UseSidebarPropsArgs {
|
||||
}
|
||||
|
||||
interface SidebarHookResult {
|
||||
onToggle: FolderClickHandlers['onToggle'];
|
||||
onSelect: FolderClickHandlers['onSelect'];
|
||||
onDrop: FolderClickHandlers['onDrop'];
|
||||
onDragOver: FolderClickHandlers['onDragOver'];
|
||||
@@ -45,44 +42,23 @@ interface SidebarHookResult {
|
||||
creatingFolder: boolean;
|
||||
}
|
||||
|
||||
const useSidebarProps = ({
|
||||
folderClickHandlers,
|
||||
handleFolderDelete,
|
||||
handleFolderRename,
|
||||
selectedFolder,
|
||||
handleFolderDragStart,
|
||||
handleFolderDragEnd,
|
||||
draggedFolderId,
|
||||
handlePromptCreateFolder,
|
||||
creatingFolder,
|
||||
}: UseSidebarPropsArgs): SidebarHookResult =>
|
||||
const useSidebarProps = (args: UseSidebarPropsArgs): SidebarHookResult =>
|
||||
useMemo(
|
||||
() => ({
|
||||
onToggle: folderClickHandlers.onToggle,
|
||||
onSelect: folderClickHandlers.onSelect,
|
||||
onDrop: folderClickHandlers.onDrop,
|
||||
onDragOver: folderClickHandlers.onDragOver,
|
||||
onDragLeave: folderClickHandlers.onDragLeave,
|
||||
onDeleteFolder: handleFolderDelete,
|
||||
onRenameFolder: handleFolderRename,
|
||||
selectedFolder,
|
||||
onFolderDragStart: handleFolderDragStart,
|
||||
onFolderDragEnd: handleFolderDragEnd,
|
||||
draggedFolderId,
|
||||
onCreateFolder: (parentId) => handlePromptCreateFolder?.(parentId),
|
||||
creatingFolder,
|
||||
onSelect: args.folderClickHandlers.onSelect,
|
||||
onDrop: args.folderClickHandlers.onDrop,
|
||||
onDragOver: args.folderClickHandlers.onDragOver,
|
||||
onDragLeave: args.folderClickHandlers.onDragLeave,
|
||||
onDeleteFolder: args.handleFolderDelete,
|
||||
onRenameFolder: args.handleFolderRename,
|
||||
selectedFolder: args.selectedFolder,
|
||||
onFolderDragStart: args.handleFolderDragStart,
|
||||
onFolderDragEnd: args.handleFolderDragEnd,
|
||||
draggedFolderId: args.draggedFolderId,
|
||||
onCreateFolder: (parentId) => args.handlePromptCreateFolder?.(parentId),
|
||||
creatingFolder: args.creatingFolder,
|
||||
}),
|
||||
[
|
||||
creatingFolder,
|
||||
folderClickHandlers,
|
||||
handleFolderDragEnd,
|
||||
handleFolderDragStart,
|
||||
handleFolderDelete,
|
||||
handleFolderRename,
|
||||
handlePromptCreateFolder,
|
||||
draggedFolderId,
|
||||
selectedFolder,
|
||||
],
|
||||
[args],
|
||||
);
|
||||
|
||||
export default useSidebarProps;
|
||||
|
||||
Reference in New Issue
Block a user