Skip to content

Commit 12ad4e3

Browse files
committed
reference grid to ag grid
1 parent febf422 commit 12ad4e3

File tree

2 files changed

+161
-159
lines changed

2 files changed

+161
-159
lines changed

packages/sn-controls-react/src/fieldcontrols/reference-grid/picker-advanced.tsx

Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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'
33
import Button from '@material-ui/core/Button'
44
import SvgIcon from '@material-ui/core/SvgIcon'
55
import TreeItem from '@material-ui/lab/TreeItem'
@@ -13,7 +13,6 @@ import { Query, QueryExpression, QueryOperators } from '@sensenet/query'
1313
import { ColDef } from 'ag-grid-community'
1414
import { AgGridReact } from 'ag-grid-react'
1515
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react'
16-
import { renderIconDefault } from '../icon'
1716

1817
// Icons
1918
function 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(() =>
162158
type 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

Comments
 (0)