Skip to content

Commit ce2e330

Browse files
committed
edit view intezo mode for tree
1 parent 6e88eff commit ce2e330

File tree

3 files changed

+48
-18
lines changed

3 files changed

+48
-18
lines changed

apps/sensenet/src/components/tree/Props/StyledTreeItemProps.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ export default interface StyledTreeItemProps extends TreeItemProps {
44
contentvalue: GenericContent
55
activeitempath: string
66
navigate: (item: GenericContent) => void
7+
editMode: boolean
78
}

apps/sensenet/src/components/tree/StyledTreeItem.tsx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import React, { MouseEventHandler, useCallback, useContext, useEffect, useState
66
import { useHistory } from 'react-router'
77
import { ResponsivePersonalSettings } from '../../context'
88
import { useQuery, useSnRoute } from '../../hooks'
9-
import { getPrimaryActionUrl } from '../../services'
9+
import { getPrimaryActionUrl, navigateToAction } from '../../services'
1010
import { ContentContextMenu } from '../context-menu/content-context-menu'
1111
import { Icon } from '../Icon'
1212
import { ExpandItemsContext } from './Contexts/ExpandedItemsProvider'
@@ -59,6 +59,7 @@ export const StyledTreeItem = (props: StyledTreeItemProps) => {
5959
nodeId={innerChild.Id.toString()}
6060
contentvalue={innerChild}
6161
navigate={props.navigate}
62+
editMode={props.editMode}
6263
onContextMenu={(event) => {
6364
event.preventDefault()
6465
event.stopPropagation()
@@ -74,7 +75,7 @@ export const StyledTreeItem = (props: StyledTreeItemProps) => {
7475
//
7576
}
7677
},
77-
[loadChildren, props.activeitempath, props.navigate],
78+
[loadChildren, props.activeitempath, props.navigate, props.editMode],
7879
)
7980

8081
const { navigate, ...restProps } = props
@@ -140,22 +141,31 @@ export const StyledTreeItem = (props: StyledTreeItemProps) => {
140141
history.push(getPrimaryActionUrl({ content: props.contentvalue, repository, uiSettings, location, snRoute }))
141142
return
142143
}
143-
const itemPath = (event.target as HTMLElement).closest('[data-path]')?.getAttribute('data-path')
144-
const itemId = props.contentvalue.Id.toString()
145-
setExpandItems((prevItems) => {
146-
const updatedItems = new Set(prevItems)
147-
if (!expandItems.has(itemId)) {
148-
setIsTreeLoading(true)
149-
updatedItems.add(itemId)
150-
loadCollectionCB(props.contentvalue.Path).finally(() => setIsTreeLoading(false))
151-
} else {
152-
if (itemPath === props.activeitempath) {
153-
updatedItems.delete(itemId)
144+
if (props.editMode) {
145+
navigateToAction({
146+
history,
147+
routeMatch: snRoute.match!,
148+
action: 'edit',
149+
queryParams: { content: props.contentvalue.Path.replace(snRoute.path, '') },
150+
})
151+
} else {
152+
const itemPath = (event.target as HTMLElement).closest('[data-path]')?.getAttribute('data-path')
153+
const itemId = props.contentvalue.Id.toString()
154+
setExpandItems((prevItems) => {
155+
const updatedItems = new Set(prevItems)
156+
if (!expandItems.has(itemId)) {
157+
setIsTreeLoading(true)
158+
updatedItems.add(itemId)
159+
loadCollectionCB(props.contentvalue.Path).finally(() => setIsTreeLoading(false))
160+
} else {
161+
if (itemPath === props.activeitempath) {
162+
updatedItems.delete(itemId)
163+
}
154164
}
155-
}
156-
return updatedItems
157-
})
158-
props.navigate(props.contentvalue)
165+
return updatedItems
166+
})
167+
props.navigate(props.contentvalue)
168+
}
159169
}
160170

161171
const onContextMenu = (event: React.MouseEvent, data: GenericContent) => {

apps/sensenet/src/components/tree/simpletree.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { LinearProgress } from '@material-ui/core'
1+
import { Button, LinearProgress, Switch } from '@material-ui/core'
22
import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'
33
import SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon'
44
import TreeView from '@material-ui/lab/TreeView'
@@ -32,13 +32,20 @@ const useStyles = makeStyles((theme: Theme) =>
3232
root: {
3333
width: '100%',
3434
backgroundColor: theme.palette.background.paper,
35+
borderTop: theme.palette.type === 'light' ? '1px solid #DBDBDB' : '1px solid rgba(255, 255, 255, 0.11)',
3536
},
3637
nested: {
3738
paddingLeft: theme.spacing(4),
3839
},
3940
'& .MuiListItemText-primary.MuiTypography-body1': {
4041
fontSize: '10px!important',
4142
},
43+
btnCont: {
44+
display: 'flex',
45+
gap: '8px',
46+
flexWrap: 'wrap',
47+
justifyContent: 'center',
48+
},
4249
}),
4350
)
4451

@@ -60,6 +67,7 @@ export function SimpleTree(props: SimpleTreeProps) {
6067
left: 0,
6168
})
6269
const [selected, setSelected] = useState<string>('')
70+
const [editMode, setEditMode] = useState<boolean>(false)
6371

6472
const loadRoot = useCallback(async () => {
6573
setIsTreeLoading(true)
@@ -107,6 +115,16 @@ export function SimpleTree(props: SimpleTreeProps) {
107115

108116
return (
109117
<>
118+
<div className={classes.btnCont}>
119+
<Button onClick={() => setEditMode(false)}>View</Button>
120+
<Switch checked={editMode} onChange={() => setEditMode((prev) => !prev)} />
121+
<Button
122+
color={editMode ? 'primary' : 'default'}
123+
variant={editMode ? 'contained' : 'text'}
124+
onClick={() => setEditMode(true)}>
125+
Edit
126+
</Button>
127+
</div>
110128
{isTreeLoading && (
111129
<LinearProgress
112130
style={{ position: 'sticky', top: '0', left: '0', width: '100%', zIndex: '100', marginBottom: '-4px' }}
@@ -126,6 +144,7 @@ export function SimpleTree(props: SimpleTreeProps) {
126144
data-id={rootElement?.Id}
127145
contentvalue={rootElement}
128146
onContextMenu={(event) => onContextMenu(event, rootElement)}
147+
editMode={editMode}
129148
/>
130149
)}
131150
</TreeView>

0 commit comments

Comments
 (0)