mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-20 23:21:06 +02:00
refactor: remove metadata viewing functionality from FolderNode, FolderTreeView, and DocumentsSidebar components
This commit is contained in:
parent
388811194e
commit
8171605fae
3 changed files with 1 additions and 46 deletions
|
|
@ -80,7 +80,6 @@ interface FolderNodeProps {
|
||||||
isWatched?: boolean;
|
isWatched?: boolean;
|
||||||
onRescan?: (folder: FolderDisplay) => void;
|
onRescan?: (folder: FolderDisplay) => void;
|
||||||
onStopWatching?: (folder: FolderDisplay) => void;
|
onStopWatching?: (folder: FolderDisplay) => void;
|
||||||
onViewMetadata?: (folder: FolderDisplay) => void;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDropZone(
|
function getDropZone(
|
||||||
|
|
@ -122,7 +121,6 @@ export const FolderNode = React.memo(function FolderNode({
|
||||||
isWatched,
|
isWatched,
|
||||||
onRescan,
|
onRescan,
|
||||||
onStopWatching,
|
onStopWatching,
|
||||||
onViewMetadata,
|
|
||||||
}: FolderNodeProps) {
|
}: FolderNodeProps) {
|
||||||
const [renameValue, setRenameValue] = useState(folder.name);
|
const [renameValue, setRenameValue] = useState(folder.name);
|
||||||
const inputRef = useRef<HTMLInputElement>(null);
|
const inputRef = useRef<HTMLInputElement>(null);
|
||||||
|
|
@ -258,13 +256,7 @@ export const FolderNode = React.memo(function FolderNode({
|
||||||
isOver && !canDrop && "cursor-not-allowed"
|
isOver && !canDrop && "cursor-not-allowed"
|
||||||
)}
|
)}
|
||||||
style={{ paddingLeft: `${depth * 16 + 4}px` }}
|
style={{ paddingLeft: `${depth * 16 + 4}px` }}
|
||||||
onClick={(e) => {
|
onClick={() => {
|
||||||
if ((e.ctrlKey || e.metaKey) && onViewMetadata) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
onViewMetadata(folder);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
onToggleExpand(folder.id);
|
onToggleExpand(folder.id);
|
||||||
}}
|
}}
|
||||||
onKeyDown={(e) => {
|
onKeyDown={(e) => {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,6 @@ interface FolderTreeViewProps {
|
||||||
watchedFolderIds?: Set<number>;
|
watchedFolderIds?: Set<number>;
|
||||||
onRescanFolder?: (folder: FolderDisplay) => void;
|
onRescanFolder?: (folder: FolderDisplay) => void;
|
||||||
onStopWatchingFolder?: (folder: FolderDisplay) => void;
|
onStopWatchingFolder?: (folder: FolderDisplay) => void;
|
||||||
onViewFolderMetadata?: (folder: FolderDisplay) => void;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function groupBy<T>(items: T[], keyFn: (item: T) => string | number): Record<string | number, T[]> {
|
function groupBy<T>(items: T[], keyFn: (item: T) => string | number): Record<string | number, T[]> {
|
||||||
|
|
@ -82,7 +81,6 @@ export function FolderTreeView({
|
||||||
watchedFolderIds,
|
watchedFolderIds,
|
||||||
onRescanFolder,
|
onRescanFolder,
|
||||||
onStopWatchingFolder,
|
onStopWatchingFolder,
|
||||||
onViewFolderMetadata,
|
|
||||||
}: FolderTreeViewProps) {
|
}: FolderTreeViewProps) {
|
||||||
const foldersByParent = useMemo(() => groupBy(folders, (f) => f.parentId ?? "root"), [folders]);
|
const foldersByParent = useMemo(() => groupBy(folders, (f) => f.parentId ?? "root"), [folders]);
|
||||||
|
|
||||||
|
|
@ -247,7 +245,6 @@ export function FolderTreeView({
|
||||||
isWatched={watchedFolderIds?.has(f.id)}
|
isWatched={watchedFolderIds?.has(f.id)}
|
||||||
onRescan={onRescanFolder}
|
onRescan={onRescanFolder}
|
||||||
onStopWatching={onStopWatchingFolder}
|
onStopWatching={onStopWatchingFolder}
|
||||||
onViewMetadata={onViewFolderMetadata}
|
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ import type { FolderDisplay } from "@/components/documents/FolderNode";
|
||||||
import { FolderPickerDialog } from "@/components/documents/FolderPickerDialog";
|
import { FolderPickerDialog } from "@/components/documents/FolderPickerDialog";
|
||||||
import { FolderTreeView } from "@/components/documents/FolderTreeView";
|
import { FolderTreeView } from "@/components/documents/FolderTreeView";
|
||||||
import { VersionHistoryDialog } from "@/components/documents/version-history";
|
import { VersionHistoryDialog } from "@/components/documents/version-history";
|
||||||
import { JsonMetadataViewer } from "@/components/json-metadata-viewer";
|
|
||||||
import { EXPORT_FILE_EXTENSIONS } from "@/components/shared/ExportMenuItems";
|
import { EXPORT_FILE_EXTENSIONS } from "@/components/shared/ExportMenuItems";
|
||||||
import {
|
import {
|
||||||
AlertDialog,
|
AlertDialog,
|
||||||
|
|
@ -97,10 +96,6 @@ export function DocumentsSidebar({
|
||||||
const [activeTypes, setActiveTypes] = useState<DocumentTypeEnum[]>([]);
|
const [activeTypes, setActiveTypes] = useState<DocumentTypeEnum[]>([]);
|
||||||
const [watchedFolderIds, setWatchedFolderIds] = useState<Set<number>>(new Set());
|
const [watchedFolderIds, setWatchedFolderIds] = useState<Set<number>>(new Set());
|
||||||
|
|
||||||
const [metadataFolder, setMetadataFolder] = useState<FolderDisplay | null>(null);
|
|
||||||
const [metadataJson, setMetadataJson] = useState<Record<string, unknown> | null>(null);
|
|
||||||
const [metadataLoading, setMetadataLoading] = useState(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const api = typeof window !== "undefined" ? window.electronAPI : null;
|
const api = typeof window !== "undefined" ? window.electronAPI : null;
|
||||||
if (!api?.getWatchedFolders) return;
|
if (!api?.getWatchedFolders) return;
|
||||||
|
|
@ -333,20 +328,6 @@ export function DocumentsSidebar({
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleViewFolderMetadata = useCallback(async (folder: FolderDisplay) => {
|
|
||||||
setMetadataFolder(folder);
|
|
||||||
setMetadataLoading(true);
|
|
||||||
try {
|
|
||||||
const fullFolder = await foldersApiService.getFolder(folder.id);
|
|
||||||
setMetadataJson((fullFolder.metadata as Record<string, unknown>) ?? {});
|
|
||||||
} catch (err) {
|
|
||||||
console.error("[DocumentsSidebar] Failed to fetch folder metadata:", err);
|
|
||||||
setMetadataJson({ error: "Failed to load folder metadata" });
|
|
||||||
} finally {
|
|
||||||
setMetadataLoading(false);
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handleRenameFolder = useCallback(async (folder: FolderDisplay, newName: string) => {
|
const handleRenameFolder = useCallback(async (folder: FolderDisplay, newName: string) => {
|
||||||
try {
|
try {
|
||||||
await foldersApiService.updateFolder(folder.id, { name: newName });
|
await foldersApiService.updateFolder(folder.id, { name: newName });
|
||||||
|
|
@ -836,25 +817,10 @@ export function DocumentsSidebar({
|
||||||
watchedFolderIds={watchedFolderIds}
|
watchedFolderIds={watchedFolderIds}
|
||||||
onRescanFolder={handleRescanFolder}
|
onRescanFolder={handleRescanFolder}
|
||||||
onStopWatchingFolder={handleStopWatching}
|
onStopWatchingFolder={handleStopWatching}
|
||||||
onViewFolderMetadata={handleViewFolderMetadata}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<JsonMetadataViewer
|
|
||||||
title={metadataFolder?.name ?? "Folder"}
|
|
||||||
metadata={metadataJson}
|
|
||||||
loading={metadataLoading}
|
|
||||||
open={!!metadataFolder}
|
|
||||||
onOpenChange={(open) => {
|
|
||||||
if (!open) {
|
|
||||||
setMetadataFolder(null);
|
|
||||||
setMetadataJson(null);
|
|
||||||
setMetadataLoading(false);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{versionDocId !== null && (
|
{versionDocId !== null && (
|
||||||
<VersionHistoryDialog
|
<VersionHistoryDialog
|
||||||
open
|
open
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue