130 lines
3.3 KiB
JavaScript
130 lines
3.3 KiB
JavaScript
import { useMemo } from 'react';
|
|
import { TAG_FILTER_UNTAGGED } from '../app/appLayoutUtils';
|
|
|
|
const useSidebarProps = ({
|
|
folderNodes,
|
|
folderClickHandlers,
|
|
handleFolderDelete,
|
|
handleFolderRename,
|
|
selectedFolder,
|
|
handleFolderDragStart,
|
|
handleFolderDragEnd,
|
|
draggedFolderId,
|
|
handlePromptCreateFolder,
|
|
creatingFolder,
|
|
tags,
|
|
activeTagFilters,
|
|
toggleTagFilter,
|
|
handleTagCreate,
|
|
correspondents,
|
|
activeCorrespondentFilters,
|
|
toggleCorrespondentFilter,
|
|
handleCorrespondentCreate,
|
|
appStatus,
|
|
loading,
|
|
previewActive,
|
|
searchQuery,
|
|
handleSearchChange,
|
|
handleSearchSubmit,
|
|
clearFilters,
|
|
isFilterActive,
|
|
handleLogout,
|
|
status,
|
|
tenantName,
|
|
tenantOptions,
|
|
currentTenantId,
|
|
handleTenantSelect,
|
|
openSettings,
|
|
handleFileSelection,
|
|
}) =>
|
|
useMemo(
|
|
() => ({
|
|
folderNodes,
|
|
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: handlePromptCreateFolder,
|
|
creatingFolder,
|
|
tags,
|
|
untaggedFilterId: TAG_FILTER_UNTAGGED,
|
|
activeTagIds: activeTagFilters,
|
|
onToggleTagFilter: toggleTagFilter,
|
|
onCreateTag: (label) => handleTagCreate({ label }),
|
|
correspondents,
|
|
activeCorrespondentIds: activeCorrespondentFilters,
|
|
onToggleCorrespondentFilter: toggleCorrespondentFilter,
|
|
onCreateCorrespondent: (name) => handleCorrespondentCreate({ name }),
|
|
appStatus,
|
|
loading,
|
|
previewActive,
|
|
searchQuery,
|
|
onSearchChange: handleSearchChange,
|
|
onSearchSubmit: handleSearchSubmit,
|
|
onSearchClear: clearFilters,
|
|
isFilterActive,
|
|
onLogout: handleLogout,
|
|
status,
|
|
tenantName,
|
|
tenants: tenantOptions,
|
|
activeTenantId: currentTenantId,
|
|
onSelectTenant: handleTenantSelect,
|
|
onOpenSettings: openSettings,
|
|
onUploadFiles: (files, targetFolderId) => {
|
|
if (!handleFileSelection) {
|
|
return;
|
|
}
|
|
if (!files || files.length === 0) {
|
|
return;
|
|
}
|
|
const folderId = targetFolderId ?? selectedFolder ?? 'root';
|
|
handleFileSelection(files, folderId);
|
|
},
|
|
}),
|
|
[
|
|
handleFileSelection,
|
|
activeCorrespondentFilters,
|
|
activeTagFilters,
|
|
appStatus,
|
|
clearFilters,
|
|
correspondents,
|
|
creatingFolder,
|
|
currentTenantId,
|
|
folderClickHandlers,
|
|
folderNodes,
|
|
handleCorrespondentCreate,
|
|
handleFolderDragEnd,
|
|
handleFolderDragStart,
|
|
handleFolderDelete,
|
|
handleFolderRename,
|
|
handleLogout,
|
|
handlePromptCreateFolder,
|
|
handleSearchChange,
|
|
handleSearchSubmit,
|
|
handleTagCreate,
|
|
handleTenantSelect,
|
|
isFilterActive,
|
|
loading,
|
|
openSettings,
|
|
previewActive,
|
|
searchQuery,
|
|
draggedFolderId,
|
|
selectedFolder,
|
|
status,
|
|
tags,
|
|
tenantName,
|
|
tenantOptions,
|
|
toggleCorrespondentFilter,
|
|
toggleTagFilter,
|
|
],
|
|
);
|
|
|
|
export default useSidebarProps;
|