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

Function TreeNodeTitleInner

src/renderer/src/components/common/TreeView.tsx:119–184  ·  view source on GitHub ↗
({
  id,
  title,
  isHighlighted,
  treeNode,
  onDoubleClick,
  getContextMenuItems,
  onCreateItemInFolder,
  createItemLabel
}: TreeNodeTitleProps<TItem, TFolder>)

Source from the content-addressed store, hash-verified

117
118// 使用泛型的 memo 组件
119const TreeNodeTitleInner = <TItem extends ItemLike, TFolder extends FolderLike>({
120 id,
121 title,
122 isHighlighted,
123 treeNode,
124 onDoubleClick,
125 getContextMenuItems,
126 onCreateItemInFolder,
127 createItemLabel
128}: TreeNodeTitleProps<TItem, TFolder>): React.JSX.Element => {
129 // 延迟计算菜单项 - 只在 Dropdown 展开时才计算
130 const [menuItems, setMenuItems] = useState<MenuProps['items']>(undefined)
131
132 const handleOpenChange = useCallback(
133 (open: boolean) => {
134 if (open && !menuItems) {
135 setMenuItems(getContextMenuItems(treeNode))
136 }
137 },
138 [getContextMenuItems, treeNode, menuItems]
139 )
140
141 return (
142 <Dropdown
143 {...getStandardDropdownProps({ items: menuItems })}
144 trigger={['contextMenu']}
145 onOpenChange={handleOpenChange}
146 >
147 <span
148 className="tree-view-title"
149 onDoubleClick={() => onDoubleClick?.(id, treeNode.isFolder)}
150 >
151 <span className={`tree-view-title-text ${isHighlighted ? 'is-highlighted' : ''}`}>
152 {title}
153 </span>
154 {treeNode.isFolder && onCreateItemInFolder && (
155 <Tooltip title={createItemLabel || '新建项目'}>
156 <Button
157 type="text"
158 size="small"
159 icon={<PlusOutlined />}
160 className="tree-view-title-add"
161 onClick={(e) => {
162 e.stopPropagation()
163 onCreateItemInFolder(id)
164 }}
165 />
166 </Tooltip>
167 )}
168 <Dropdown
169 {...getStandardDropdownProps({ items: menuItems })}
170 trigger={['click']}
171 onOpenChange={handleOpenChange}
172 >
173 <Button
174 type="text"
175 size="small"
176 icon={<MoreOutlined />}

Callers

nothing calls this directly

Calls 2

getStandardDropdownPropsFunction · 0.90
getContextMenuItemsFunction · 0.70

Tested by

no test coverage detected