diff --git a/src/components/FolderTree/FolderTree.module.css b/src/components/FolderTree/FolderTree.module.css
index 1530585..b13f1fe 100644
--- a/src/components/FolderTree/FolderTree.module.css
+++ b/src/components/FolderTree/FolderTree.module.css
@@ -6,11 +6,11 @@
.treeNode {
display: flex;
align-items: center;
- padding: 4px 8px;
+ padding: 2px 4px;
cursor: pointer;
border-radius: 4px;
- gap: 6px;
- min-height: 32px;
+ gap: 2px;
+ min-height: 26px;
position: relative;
}
@@ -43,15 +43,15 @@
}
.chevron {
- width: 16px;
- height: 16px;
+ width: 12px;
+ height: 12px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: transform 0.15s ease;
color: var(--color-text-secondary, #666);
- font-size: 10px;
+ font-size: 8px;
}
.chevron.expanded {
@@ -65,7 +65,7 @@
.folderIcon {
flex-shrink: 0;
color: var(--color-text-secondary, #888);
- font-size: 14px;
+ font-size: 13px;
}
.folderName {
@@ -120,7 +120,7 @@
}
.children {
- padding-left: 16px;
+ padding-left: 10px;
}
.rootLabel {
@@ -139,7 +139,7 @@
.fileIcon {
flex-shrink: 0;
- font-size: 12px;
+ font-size: 11px;
}
.fileSize {
diff --git a/src/components/FolderTree/FolderTree.tsx b/src/components/FolderTree/FolderTree.tsx
index 71f31c8..15a4d79 100644
--- a/src/components/FolderTree/FolderTree.tsx
+++ b/src/components/FolderTree/FolderTree.tsx
@@ -12,7 +12,7 @@
*/
import React, { useState, useCallback, useRef, useEffect, useMemo } from 'react';
-import { FaFolder, FaFolderOpen, FaPlus, FaPen, FaTrash, FaChevronRight, FaGlobe, FaSyncAlt, FaDownload } from 'react-icons/fa';
+import { FaFolder, FaFolderOpen, FaPlus, FaPen, FaTrash, FaChevronRight, FaSyncAlt, FaDownload } from 'react-icons/fa';
import { usePrompt, type PromptOptions } from '../../hooks/usePrompt';
import styles from './FolderTree.module.css';
@@ -26,6 +26,9 @@ export interface FolderNode {
parentId: string | null;
fileCount?: number;
children?: FolderNode[];
+ isProtected?: boolean;
+ isReadonly?: boolean;
+ icon?: string;
}
export interface FileNode {
@@ -36,6 +39,8 @@ export interface FileNode {
folderId?: string | null;
scope?: string;
neutralize?: boolean;
+ sysCreatedBy?: string;
+ isReadonly?: boolean;
}
export interface TreeItem {
@@ -236,6 +241,7 @@ function _FileItem({ file, sel }: { file: FileNode; sel: SelectionCtx }) {
}}
onDragEnd={() => setDragging(false)}
>
+