Merge pull request #15444 from overleaf/td-remove-root-folder-scope-use
Remove use of root folder scope in figure modal GitOrigin-RevId: d07247b644d312ef711f5601d3c10a3274e43416
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { useMemo } from 'react'
|
||||
import { File, FileOrDirectory, filterFolders } from '../utils/file'
|
||||
import { useFileTreeData } from '@/shared/context/file-tree-data-context'
|
||||
import { Folder } from '../../../../../types/folder'
|
||||
import { Doc } from '../../../../../types/doc'
|
||||
import { FileRef } from '../../../../../types/file-ref'
|
||||
|
||||
function docAdapter(doc: Doc): FileOrDirectory {
|
||||
return {
|
||||
id: doc._id,
|
||||
name: doc.name,
|
||||
type: 'doc',
|
||||
}
|
||||
}
|
||||
|
||||
function fileRefAdapter(fileRef: FileRef): FileOrDirectory {
|
||||
return {
|
||||
id: fileRef._id,
|
||||
name: fileRef.name,
|
||||
type: 'file',
|
||||
}
|
||||
}
|
||||
|
||||
function folderAdapter(folder: Folder): FileOrDirectory {
|
||||
return {
|
||||
id: folder._id,
|
||||
name: folder.name,
|
||||
type: 'folder',
|
||||
children: folder.docs
|
||||
.map(docAdapter)
|
||||
.concat(
|
||||
folder.fileRefs.map(fileRefAdapter),
|
||||
folder.folders.map(folderAdapter)
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
export const useCurrentProjectFolders: () => {
|
||||
folders: File[] | undefined
|
||||
rootFile: File
|
||||
rootFolder: FileOrDirectory
|
||||
} = () => {
|
||||
const { fileTreeData } = useFileTreeData()
|
||||
|
||||
return useMemo(() => {
|
||||
const rootFolder = folderAdapter(fileTreeData)
|
||||
const rootFile = { ...rootFolder, path: '' }
|
||||
const folders = filterFolders(rootFolder)
|
||||
return { folders, rootFile, rootFolder }
|
||||
}, [fileTreeData])
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import { useMemo } from 'react'
|
||||
import useScopeValue from '../../../shared/hooks/use-scope-value'
|
||||
import { File, FileOrDirectory, filterFolders } from '../utils/file'
|
||||
|
||||
export const useCurrentProjectFolders: () => [
|
||||
File[] | undefined,
|
||||
File
|
||||
] = () => {
|
||||
const [rootFolder] = useScopeValue<FileOrDirectory>('rootFolder')
|
||||
const rootFile = { ...rootFolder, path: '' }
|
||||
const folders = useMemo(() => filterFolders(rootFolder), [rootFolder])
|
||||
return [folders, rootFile]
|
||||
}
|
||||
Reference in New Issue
Block a user