mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
01439641ca
React IDE page: working editor GitOrigin-RevId: 3ba8cb787a6f7f8435686d8962adb7444d09acb5
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import FileTreeRoot from '@/features/file-tree/components/file-tree-root'
|
|
import React, { useCallback, useState } from 'react'
|
|
import { useUserContext } from '@/shared/context/user-context'
|
|
import { useReferencesContext } from '@/features/ide-react/context/references-context'
|
|
import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context'
|
|
import { useConnectionContext } from '@/features/ide-react/context/connection-context'
|
|
import { FileTreeSelectHandler } from '@/features/ide-react/types/file-tree'
|
|
import { RefProviders } from '../../../../../types/user'
|
|
|
|
type FileTreeProps = {
|
|
onInit: () => void
|
|
onSelect: FileTreeSelectHandler
|
|
}
|
|
|
|
export function FileTree({ onInit, onSelect }: FileTreeProps) {
|
|
const user = useUserContext()
|
|
const { indexAllReferences } = useReferencesContext()
|
|
const { setStartedFreeTrial } = useIdeReactContext()
|
|
const { isConnected } = useConnectionContext()
|
|
|
|
const [refProviders, setRefProviders] = useState<RefProviders>(
|
|
() => user.refProviders || {}
|
|
)
|
|
|
|
function reindexReferences() {
|
|
indexAllReferences(true)
|
|
}
|
|
|
|
const setRefProviderEnabled = useCallback(
|
|
(provider: keyof RefProviders, value = true) => {
|
|
setRefProviders(refProviders => ({ ...refProviders, [provider]: value }))
|
|
},
|
|
[]
|
|
)
|
|
|
|
return (
|
|
<div className="file-tree">
|
|
<FileTreeRoot
|
|
refProviders={refProviders}
|
|
reindexReferences={reindexReferences}
|
|
setRefProviderEnabled={setRefProviderEnabled}
|
|
setStartedFreeTrial={setStartedFreeTrial}
|
|
isConnected={isConnected}
|
|
onInit={onInit}
|
|
onSelect={onSelect}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|