mirror of
https://github.com/sasjs/server.git
synced 2026-01-03 21:10:05 +00:00
fix(drive):when page is refreshed or reloaded show expand file tree according to filePath in url
This commit is contained in:
@@ -90,7 +90,11 @@ const Drive = () => {
|
|||||||
return (
|
return (
|
||||||
<Box sx={{ display: 'flex' }}>
|
<Box sx={{ display: 'flex' }}>
|
||||||
<CssBaseline />
|
<CssBaseline />
|
||||||
<SideBar directoryData={directoryData} handleSelect={handleSelect} />
|
<SideBar
|
||||||
|
selectedFilePath={selectedFilePath}
|
||||||
|
directoryData={directoryData}
|
||||||
|
handleSelect={handleSelect}
|
||||||
|
/>
|
||||||
<Main
|
<Main
|
||||||
selectedFilePath={selectedFilePath}
|
selectedFilePath={selectedFilePath}
|
||||||
removeFileFromTree={removeFileFromTree}
|
removeFileFromTree={removeFileFromTree}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React from 'react'
|
import React, { useMemo } from 'react'
|
||||||
|
|
||||||
import { makeStyles } from '@mui/styles'
|
import { makeStyles } from '@mui/styles'
|
||||||
|
|
||||||
@@ -30,13 +30,27 @@ const useStyles = makeStyles(() => ({
|
|||||||
const drawerWidth = 240
|
const drawerWidth = 240
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
selectedFilePath: string
|
||||||
directoryData: TreeNode | null
|
directoryData: TreeNode | null
|
||||||
handleSelect: (node: TreeNode) => void
|
handleSelect: (node: TreeNode) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const SideBar = ({ directoryData, handleSelect }: Props) => {
|
const SideBar = ({ selectedFilePath, directoryData, handleSelect }: Props) => {
|
||||||
const classes = useStyles()
|
const classes = useStyles()
|
||||||
|
|
||||||
|
const defaultExpanded = useMemo(() => {
|
||||||
|
const splittedPath = selectedFilePath.split('/')
|
||||||
|
const arr = ['']
|
||||||
|
let nodeId = ''
|
||||||
|
splittedPath.forEach((path) => {
|
||||||
|
if (path !== '') {
|
||||||
|
nodeId += '/' + path
|
||||||
|
arr.push(nodeId)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr
|
||||||
|
}, [selectedFilePath])
|
||||||
|
|
||||||
const renderTree = (nodes: TreeNode) => (
|
const renderTree = (nodes: TreeNode) => (
|
||||||
<TreeItem
|
<TreeItem
|
||||||
classes={{ root: classes.root }}
|
classes={{ root: classes.root }}
|
||||||
@@ -72,7 +86,8 @@ const SideBar = ({ directoryData, handleSelect }: Props) => {
|
|||||||
<TreeView
|
<TreeView
|
||||||
defaultCollapseIcon={<ExpandMoreIcon />}
|
defaultCollapseIcon={<ExpandMoreIcon />}
|
||||||
defaultExpandIcon={<ChevronRightIcon />}
|
defaultExpandIcon={<ChevronRightIcon />}
|
||||||
defaultExpanded={[directoryData.relativePath]}
|
defaultExpanded={defaultExpanded}
|
||||||
|
selected={defaultExpanded.slice(-1)}
|
||||||
>
|
>
|
||||||
{renderTree(directoryData)}
|
{renderTree(directoryData)}
|
||||||
</TreeView>
|
</TreeView>
|
||||||
|
|||||||
Reference in New Issue
Block a user