MCPcopy Create free account
hub / github.com/experdot/pointer / ConfigTree

Function ConfigTree

src/renderer/src/components/common/ConfigTree.tsx:42–215  ·  view source on GitHub ↗
({
  items,
  folders,
  selectedId,
  onSelect,
  itemIcon,
  itemNameKey,
  isItem,
  batchUpdateItemsOrder,
  createItem,
  updateItem,
  deleteItem,
  copyItem,
  createFolder,
  updateFolder,
  deleteFolder,
  clearFolder,
  toggleFolderExpanded,
  defaultItemId,
  emptyText = '暂无配置',
  addItemText = '新建配置',
  createItemLabel = '新建配置',
  createFolderLabel = '新建文件夹'
}: ConfigTreeProps<T>)

Source from the content-addressed store, hash-verified

40}
41
42export function ConfigTree<T extends ConfigItemBase>({
43 items,
44 folders,
45 selectedId,
46 onSelect,
47 itemIcon,
48 itemNameKey,
49 isItem,
50 batchUpdateItemsOrder,
51 createItem,
52 updateItem,
53 deleteItem,
54 copyItem,
55 createFolder,
56 updateFolder,
57 deleteFolder,
58 clearFolder,
59 toggleFolderExpanded,
60 defaultItemId,
61 emptyText = '暂无配置',
62 addItemText = '新建配置',
63 createItemLabel = '新建配置',
64 createFolderLabel = '新建文件夹'
65}: ConfigTreeProps<T>): React.JSX.Element {
66 const { showDeleteConfirm } = useConfirmDialog()
67 const [multiSelect, setMultiSelect] = useState(false)
68 const [checkedKeys, setCheckedKeys] = useState<string[]>([])
69
70 const handleCreate = (): void => {
71 const item = createItem()
72 onSelect(item.id)
73 }
74
75 const handleCreateFolder = (): void => {
76 const folder = createFolder('新文件夹')
77 onSelect(folder.id)
78 }
79
80 const handleCreateItemInFolder = useCallback(
81 (folderId: string): void => {
82 const item = createItem(folderId)
83 onSelect(item.id)
84 },
85 [createItem, onSelect]
86 )
87
88 const handleCreateSubFolder = useCallback(
89 (parentFolderId: string): void => {
90 const folder = createFolder('新文件夹', parentFolderId)
91 onSelect(folder.id)
92 },
93 [createFolder, onSelect]
94 )
95
96 const handleToggleMultiSelect = (): void => {
97 setMultiSelect(!multiSelect)
98 if (multiSelect) {
99 setCheckedKeys([])

Callers

nothing calls this directly

Calls 5

useConfirmDialogFunction · 0.90
getStandardDropdownPropsFunction · 0.90
createFolderFunction · 0.85
updateFolderFunction · 0.85
getAllKeysFunction · 0.70

Tested by

no test coverage detected