Merge pull request #6210 from overleaf/ta-file-tree-data-in-context

Remove rootFolder from EditorContext

GitOrigin-RevId: 827b046046265ad2418eb91d5a69eae02aa8b5a4
This commit is contained in:
Timothée Alby
2022-01-11 09:04:56 +00:00
committed by Copybot
parent 392410390e
commit 24bd557485
26 changed files with 202 additions and 179 deletions
@@ -8,7 +8,7 @@ import PropTypes from 'prop-types'
import renderWithContext from '../../helpers/render-with-context'
import FileTreeModalCreateFile from '../../../../../../frontend/js/features/file-tree/components/modals/file-tree-modal-create-file'
import { useFileTreeActionable } from '../../../../../../frontend/js/features/file-tree/contexts/file-tree-actionable'
import { useFileTreeMutable } from '../../../../../../frontend/js/features/file-tree/contexts/file-tree-mutable'
import { useFileTreeData } from '../../../../../../frontend/js/shared/context/file-tree-data-context'
describe('<FileTreeModalCreateFile/>', function () {
beforeEach(function () {
@@ -65,7 +65,7 @@ describe('<FileTreeModalCreateFile/>', function () {
]
renderWithContext(<OpenWithMode mode="doc" />, {
contextProps: { projectRootFolder: rootFolder },
contextProps: { rootFolder },
})
screen.getByRole(
@@ -89,7 +89,7 @@ describe('<FileTreeModalCreateFile/>', function () {
]
renderWithContext(<OpenWithMode mode="doc" />, {
contextProps: { projectRootFolder: rootFolder },
contextProps: { rootFolder },
})
screen.getByText(/This project is approaching the file limit \(\d+\/\d+\)/)
@@ -127,7 +127,7 @@ describe('<FileTreeModalCreateFile/>', function () {
]
renderWithContext(<OpenWithMode mode="doc" />, {
contextProps: { projectRootFolder: rootFolder },
contextProps: { rootFolder },
})
screen.getByText(/This project is approaching the file limit \(\d+\/\d+\)/)
@@ -458,7 +458,7 @@ describe('<FileTreeModalCreateFile/>', function () {
function OpenWithMode({ mode }) {
const { newFileCreateMode, startCreatingFile } = useFileTreeActionable()
const { fileCount } = useFileTreeMutable()
const { fileCount } = useFileTreeData()
// eslint-disable-next-line react-hooks/exhaustive-deps
useEffect(() => startCreatingFile(mode), [])
@@ -19,7 +19,7 @@ describe('<FileTreeDoc/>', function () {
<FileTreeDoc name="foo.tex" id="123abc" isLinkedFile={false} />,
{
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -50,7 +50,7 @@ describe('<FileTreeDoc/>', function () {
it('selects', function () {
renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />, {
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -71,7 +71,7 @@ describe('<FileTreeDoc/>', function () {
it('multi-selects', function () {
renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />, {
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -43,7 +43,7 @@ describe('<FileTreeFolderList/>', function () {
{
contextProps: {
permissionsLevel: 'readOnly',
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -80,7 +80,7 @@ describe('<FileTreeFolderList/>', function () {
<FileTreeFolderList folders={[]} docs={docs} files={[]} />,
{
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -35,7 +35,7 @@ describe('<FileTreeFolder/>', function () {
/>,
{
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -66,7 +66,7 @@ describe('<FileTreeFolder/>', function () {
/>,
{
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -97,7 +97,7 @@ describe('<FileTreeFolder/>', function () {
/>,
{
contextProps: {
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -86,7 +86,7 @@ describe('<FileTreeitemInner />', function () {
{
contextProps: {
rootDocId: '123abc',
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -47,7 +47,7 @@ describe('<FileTreeRoot/>', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -86,7 +86,7 @@ describe('<FileTreeRoot/>', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -128,7 +128,7 @@ describe('<FileTreeRoot/>', function () {
setStartedFreeTrial={() => null}
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -163,7 +163,7 @@ describe('<FileTreeRoot/>', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -219,7 +219,7 @@ describe('<FileTreeRoot/>', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -266,7 +266,7 @@ describe('<FileTreeRoot/>', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
features: {},
@@ -31,7 +31,7 @@ describe('<FileTreeToolbar/>', function () {
renderWithContext(<FileTreeToolbar />, {
contextProps: {
rootDocId: '456def',
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -39,7 +39,7 @@ describe('FileTree Context Menu Flow', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
}
@@ -74,7 +74,7 @@ describe('FileTree Context Menu Flow', function () {
isConnected
/>,
{
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
permissionsLevel: 'readOnly',
@@ -48,7 +48,7 @@ describe('FileTree Create Folder Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
}
)
@@ -110,7 +110,7 @@ describe('FileTree Create Folder Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '789ghi',
}
@@ -182,7 +182,7 @@ describe('FileTree Create Folder Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
}
@@ -243,7 +243,7 @@ describe('FileTree Create Folder Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
rootDocId: '456def',
}
@@ -44,7 +44,7 @@ describe('FileTree Delete Entity Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
}
)
@@ -164,7 +164,7 @@ describe('FileTree Delete Entity Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
}
)
@@ -223,7 +223,7 @@ describe('FileTree Delete Entity Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
}
)
@@ -59,7 +59,7 @@ describe('FileTree Rename Entity Flow', function () {
/>,
{
socket: new MockedSocket(),
projectRootFolder: rootFolder,
rootFolder,
projectId: '123abc',
}
)
@@ -5,7 +5,7 @@ export default (children, options = {}) => {
let { contextProps = {}, ...renderOptions } = options
contextProps = {
projectId: '123abc',
projectRootFolder: [
rootFolder: [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -14,6 +14,7 @@ import { get } from 'lodash'
import { ProjectProvider } from '../../../frontend/js/shared/context/project-context'
import { SplitTestProvider } from '../../../frontend/js/shared/context/split-test-context'
import { CompileProvider } from '../../../frontend/js/shared/context/compile-context'
import { FileTreeDataProvider } from '../../../frontend/js/shared/context/file-tree-data-context'
// these constants can be imported in tests instead of
// using magic strings
@@ -36,8 +37,7 @@ export function EditorProviders({
},
permissionsLevel = 'owner',
children,
rootFolder,
projectRootFolder = [
rootFolder = [
{
_id: 'root-folder-id',
name: 'rootFolder',
@@ -75,10 +75,7 @@ export function EditorProviders({
},
features,
rootDoc_id: rootDocId,
rootFolder: projectRootFolder,
},
rootFolder: rootFolder || {
children: [],
rootFolder,
},
ui,
$watch: (path, callback) => {
@@ -113,13 +110,15 @@ export function EditorProviders({
<IdeProvider ide={window._ide}>
<UserProvider>
<ProjectProvider>
<EditorProvider settings={{}}>
<DetachProvider>
<LayoutProvider>
<CompileProvider>{children}</CompileProvider>
</LayoutProvider>
</DetachProvider>
</EditorProvider>
<FileTreeDataProvider>
<EditorProvider settings={{}}>
<DetachProvider>
<LayoutProvider>
<CompileProvider>{children}</CompileProvider>
</LayoutProvider>
</DetachProvider>
</EditorProvider>
</FileTreeDataProvider>
</ProjectProvider>
</UserProvider>
</IdeProvider>