1- import { ReactElement , ReactNode } from 'react'
2- import { TreeItem , TreeItemRenderContext } from 'react-complex-tree'
1+ import { Dispatch , ReactElement , ReactNode , SetStateAction } from 'react'
2+ import {
3+ TreeItem ,
4+ TreeItemIndex ,
5+ TreeItemRenderContext ,
6+ } from 'react-complex-tree'
37import { FaPlus } from 'react-icons/fa6'
48
59import { FileNode } from '@/helper/types'
@@ -8,6 +12,7 @@ import { createSample, createAnalysis } from '../structure-btns/templates'
812import { getUniqueFolderName } from '../structure-btns/folderUtils'
913import MoleculeTooltip from './MoleculeTooltip'
1014import ReactionTooltip from './ReactionTooltip'
15+ import { dragNotifications } from '@/utils/dragNotifications'
1116
1217interface RenderItemParams {
1318 children : ReactNode
@@ -37,7 +42,10 @@ const Icon = (
3742 : ICONS . folderPlus
3843}
3944
40- const createRenderItem = ( tree : Record < string , FileNode > ) =>
45+ const createRenderItem = (
46+ tree : Record < string , FileNode > ,
47+ setExpandedItems ?: Dispatch < SetStateAction < TreeItemIndex [ ] > > ,
48+ ) =>
4149 function RenderItem ( {
4250 children,
4351 context,
@@ -88,12 +96,26 @@ const createRenderItem = (tree: Record<string, FileNode>) =>
8896 const handleAddAnalysisToAnalyses = async ( e : React . MouseEvent ) => {
8997 e . stopPropagation ( )
9098 if ( fileNode ) {
99+ const analysisName = getUniqueFolderName (
100+ 'analysis' ,
101+ tree ,
102+ 'analysis' ,
103+ false ,
104+ fileNode . index ,
105+ )
91106 await createAnalysis (
92107 'analysis' ,
93108 fileNode . index ,
94109 tree ,
95110 fileNode . uid || '' ,
96111 )
112+ setExpandedItems ?.( ( prev ) =>
113+ prev . includes ( fileNode . index ) ? prev : [ ...prev , fileNode . index ] ,
114+ )
115+ dragNotifications . showSuccess (
116+ `"${ analysisName } " added to ${ parentNode ?. data || fileNode . data } ` ,
117+ 0 ,
118+ )
97119 }
98120 }
99121
@@ -116,6 +138,13 @@ const createRenderItem = (tree: Record<string, FileNode>) =>
116138 fileNode . uid || undefined ,
117139 'product' ,
118140 )
141+ setExpandedItems ?.( ( prev ) =>
142+ prev . includes ( fileNode . index ) ? prev : [ ...prev , fileNode . index ] ,
143+ )
144+ dragNotifications . showSuccess (
145+ `"${ uniqueSampleName } " added to ${ fileNode . data } ` ,
146+ 0 ,
147+ )
119148 }
120149 }
121150
0 commit comments