11/* eslint-disable require-jsdoc */
2- import { Avatar , createStyles , debounce , makeStyles , SvgIconProps , TextField , useTheme } from '@material-ui/core'
2+ import { createStyles , debounce , makeStyles , SvgIconProps , TextField , useTheme } from '@material-ui/core'
33import Button from '@material-ui/core/Button'
44import SvgIcon from '@material-ui/core/SvgIcon'
55import TreeItem from '@material-ui/lab/TreeItem'
@@ -13,7 +13,6 @@ import { Query, QueryExpression, QueryOperators } from '@sensenet/query'
1313import { ColDef } from 'ag-grid-community'
1414import { AgGridReact } from 'ag-grid-react'
1515import React , { useCallback , useContext , useEffect , useRef , useState } from 'react'
16- import { renderIconDefault } from '../icon'
1716
1817// Icons
1918function MinusSquare ( props : SvgIconProps ) {
@@ -129,9 +128,6 @@ const useStyles = makeStyles(() =>
129128 '& span' : {
130129 display : 'flex' ,
131130 } ,
132- '& svg' : {
133- height : '18px' ,
134- } ,
135131 } ,
136132 header : {
137133 display : 'flex' ,
@@ -162,21 +158,13 @@ const useStyles = makeStyles(() =>
162158type TreeNodeProps = {
163159 node : GenericContent
164160 repository : Repository
165- renderIconLocal : ( item : GenericContentWithIsParent | User ) => JSX . Element
161+ renderIcon : ( item : GenericContentWithIsParent | User ) => JSX . Element
166162 path : string
167163 expanded : string [ ]
168164 setExpanded : React . Dispatch < React . SetStateAction < string [ ] > >
169165 onSetCurrentPath : ( path : string ) => void
170166}
171- const TreeNode = ( {
172- node,
173- repository,
174- renderIconLocal,
175- path,
176- expanded,
177- setExpanded,
178- onSetCurrentPath,
179- } : TreeNodeProps ) => {
167+ const TreeNode = ( { node, repository, renderIcon, path, expanded, setExpanded, onSetCurrentPath } : TreeNodeProps ) => {
180168 const classes = useStyles ( )
181169 const [ childNodes , setChildNodes ] = useState < GenericContent [ ] > ( [ ] )
182170 const loadSettings = useContext ( LoadSettingsContext )
@@ -213,7 +201,7 @@ const TreeNode = ({
213201 nodeId = { node . Id . toString ( ) }
214202 label = {
215203 < div style = { { display : 'flex' , alignItems : 'center' , gap : 6 , cursor : 'pointer' } } onClick = { handleNodeClick } >
216- < div className = { classes . treeIcon } > { renderIconLocal ( node ) } </ div >
204+ < div className = { classes . treeIcon } > { renderIcon ( node ) } </ div >
217205 < div className = { classes . treeLabel } > { node . DisplayName } </ div >
218206 </ div >
219207 }
@@ -225,7 +213,7 @@ const TreeNode = ({
225213 key = { childNode . Id }
226214 node = { childNode }
227215 repository = { repository }
228- renderIconLocal = { renderIconLocal }
216+ renderIcon = { renderIcon }
229217 path = { path }
230218 expanded = { expanded }
231219 setExpanded = { setExpanded }
@@ -248,17 +236,17 @@ const sortResults = (results: GenericContent[]): GenericContent[] => {
248236}
249237
250238//Picker
251- interface PickerAdvancedProps < T > {
239+ interface PickerAdvancedProps {
252240 defaultValue ?: GenericContent [ ]
253241 repository : Repository
254242 path : string
255- renderIcon ? : ( name : T ) => JSX . Element
243+ renderIcon : ( item : GenericContentWithIsParent | User ) => JSX . Element
256244 onCancel ?: ( ) => void
257245 onSubmit ?: ( selectedItems : GenericContent [ ] ) => void | undefined
258246 fieldSettings : ReferenceFieldSetting
259247 selectionRoots ?: string [ ]
260248}
261- export const PickerAdvanced : React . FC < PickerAdvancedProps < GenericContentWithIsParent > > = ( {
249+ export const PickerAdvanced : React . FC < PickerAdvancedProps > = ( {
262250 defaultValue,
263251 repository,
264252 path,
@@ -281,30 +269,6 @@ export const PickerAdvanced: React.FC<PickerAdvancedProps<GenericContentWithIsPa
281269
282270 const searchFieldRef = useRef < HTMLInputElement | null > ( null )
283271
284- //Icons
285- const iconName = ( isFolder ?: boolean ) => {
286- if ( isFolder == null ) {
287- return 'arrow_upward'
288- }
289- return isFolder ? 'folder' : 'insert_drive_file'
290- }
291- const renderIconLocal = ( item : GenericContentWithIsParent | User ) =>
292- repository . schemas . isContentFromType < User > ( item , 'User' ) ? (
293- ( item as User ) . Avatar ?. Url ? (
294- < Avatar alt = { item . DisplayName } src = { `${ repository . configuration . repositoryUrl } ${ ( item as User ) . Avatar ! . Url } ` } />
295- ) : (
296- < Avatar alt = { item . DisplayName } >
297- { item . DisplayName ?. split ( ' ' )
298- . map ( ( namePart ) => namePart [ 0 ] )
299- . join ( '.' ) }
300- </ Avatar >
301- )
302- ) : renderIcon ? (
303- renderIcon ( item )
304- ) : (
305- renderIconDefault ( iconName ( item . IsFolder ) )
306- )
307-
308272 //Grid Columns
309273 const addCol : ColDef = {
310274 headerName : '' ,
@@ -339,7 +303,7 @@ export const PickerAdvanced: React.FC<PickerAdvancedProps<GenericContentWithIsPa
339303 field : 'Icon' ,
340304 width : 24 ,
341305 minWidth : 24 ,
342- cellRenderer : ( props : { data : GenericContent } ) => renderIconLocal ( props . data ) ,
306+ cellRenderer : ( props : { data : GenericContent } ) => renderIcon ( props . data ) ,
343307 cellStyle : { padding : 0 } ,
344308 }
345309 const handleAdd = ( item : GenericContent ) => {
@@ -497,7 +461,7 @@ export const PickerAdvanced: React.FC<PickerAdvancedProps<GenericContentWithIsPa
497461 < TreeNode
498462 repository = { repository }
499463 node = { rootElement }
500- renderIconLocal = { renderIconLocal }
464+ renderIcon = { renderIcon }
501465 path = { path }
502466 expanded = { expanded }
503467 setExpanded = { setExpanded }
0 commit comments