|
@@ -14,6 +14,7 @@ import { LocalCompileProvider } from '@/shared/context/local-compile-context'
|
|
|
import { DetachCompileProvider } from '@/shared/context/detach-compile-context'
|
|
import { DetachCompileProvider } from '@/shared/context/detach-compile-context'
|
|
|
import { ProjectSettingsProvider } from '@/features/editor-left-menu/context/project-settings-context'
|
|
import { ProjectSettingsProvider } from '@/features/editor-left-menu/context/project-settings-context'
|
|
|
import { FileTreePathProvider } from '@/features/file-tree/contexts/file-tree-path'
|
|
import { FileTreePathProvider } from '@/features/file-tree/contexts/file-tree-path'
|
|
|
|
|
+import { UserSettingsProvider } from '@/shared/context/user-settings-context'
|
|
|
|
|
|
|
|
// these constants can be imported in tests instead of
|
|
// these constants can be imported in tests instead of
|
|
|
// using magic strings
|
|
// using magic strings
|
|
@@ -22,6 +23,20 @@ export const PROJECT_NAME = 'project-name'
|
|
|
export const USER_ID = '123abd'
|
|
export const USER_ID = '123abd'
|
|
|
export const USER_EMAIL = 'testuser@example.com'
|
|
export const USER_EMAIL = 'testuser@example.com'
|
|
|
|
|
|
|
|
|
|
+const defaultUserSettings = {
|
|
|
|
|
+ pdfViewer: 'pdfjs',
|
|
|
|
|
+ fontSize: 12,
|
|
|
|
|
+ fontFamily: 'monaco',
|
|
|
|
|
+ lineHeight: 'normal',
|
|
|
|
|
+ editorTheme: 'textmate',
|
|
|
|
|
+ overallTheme: '',
|
|
|
|
|
+ mode: 'default',
|
|
|
|
|
+ autoComplete: true,
|
|
|
|
|
+ autoPairDelimiters: true,
|
|
|
|
|
+ trackChanges: true,
|
|
|
|
|
+ syntaxValidation: false,
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
export function EditorProviders({
|
|
export function EditorProviders({
|
|
|
user = { id: USER_ID, email: USER_EMAIL },
|
|
user = { id: USER_ID, email: USER_EMAIL },
|
|
|
projectId = PROJECT_ID,
|
|
projectId = PROJECT_ID,
|
|
@@ -71,12 +86,17 @@ export function EditorProviders({
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
|
|
+ userSettings = {},
|
|
|
providers = {},
|
|
providers = {},
|
|
|
}) {
|
|
}) {
|
|
|
window.user = user || window.user
|
|
window.user = user || window.user
|
|
|
window.gitBridgePublicBaseUrl = 'https://git.overleaf.test'
|
|
window.gitBridgePublicBaseUrl = 'https://git.overleaf.test'
|
|
|
window.project_id = projectId != null ? projectId : window.project_id
|
|
window.project_id = projectId != null ? projectId : window.project_id
|
|
|
window.isRestrictedTokenMember = isRestrictedTokenMember
|
|
window.isRestrictedTokenMember = isRestrictedTokenMember
|
|
|
|
|
+ window.metaAttributesCache.set(
|
|
|
|
|
+ 'ol-userSettings',
|
|
|
|
|
+ merge({}, defaultUserSettings, userSettings)
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
const $scope = merge(
|
|
const $scope = merge(
|
|
|
{
|
|
{
|
|
@@ -126,6 +146,7 @@ export function EditorProviders({
|
|
|
ProjectSettingsProvider,
|
|
ProjectSettingsProvider,
|
|
|
SplitTestProvider,
|
|
SplitTestProvider,
|
|
|
UserProvider,
|
|
UserProvider,
|
|
|
|
|
+ UserSettingsProvider,
|
|
|
...providers,
|
|
...providers,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -133,25 +154,27 @@ export function EditorProviders({
|
|
|
<Providers.SplitTestProvider>
|
|
<Providers.SplitTestProvider>
|
|
|
<Providers.IdeAngularProvider ide={window._ide}>
|
|
<Providers.IdeAngularProvider ide={window._ide}>
|
|
|
<Providers.UserProvider>
|
|
<Providers.UserProvider>
|
|
|
- <Providers.ProjectProvider>
|
|
|
|
|
- <Providers.FileTreeDataProvider>
|
|
|
|
|
- <Providers.FileTreePathProvider>
|
|
|
|
|
- <Providers.DetachProvider>
|
|
|
|
|
- <Providers.EditorProvider>
|
|
|
|
|
- <Providers.ProjectSettingsProvider>
|
|
|
|
|
- <Providers.LayoutProvider>
|
|
|
|
|
- <Providers.LocalCompileProvider>
|
|
|
|
|
- <Providers.DetachCompileProvider>
|
|
|
|
|
- {children}
|
|
|
|
|
- </Providers.DetachCompileProvider>
|
|
|
|
|
- </Providers.LocalCompileProvider>
|
|
|
|
|
- </Providers.LayoutProvider>
|
|
|
|
|
- </Providers.ProjectSettingsProvider>
|
|
|
|
|
- </Providers.EditorProvider>
|
|
|
|
|
- </Providers.DetachProvider>
|
|
|
|
|
- </Providers.FileTreePathProvider>
|
|
|
|
|
- </Providers.FileTreeDataProvider>
|
|
|
|
|
- </Providers.ProjectProvider>
|
|
|
|
|
|
|
+ <Providers.UserSettingsProvider>
|
|
|
|
|
+ <Providers.ProjectProvider>
|
|
|
|
|
+ <Providers.FileTreeDataProvider>
|
|
|
|
|
+ <Providers.FileTreePathProvider>
|
|
|
|
|
+ <Providers.DetachProvider>
|
|
|
|
|
+ <Providers.EditorProvider>
|
|
|
|
|
+ <Providers.ProjectSettingsProvider>
|
|
|
|
|
+ <Providers.LayoutProvider>
|
|
|
|
|
+ <Providers.LocalCompileProvider>
|
|
|
|
|
+ <Providers.DetachCompileProvider>
|
|
|
|
|
+ {children}
|
|
|
|
|
+ </Providers.DetachCompileProvider>
|
|
|
|
|
+ </Providers.LocalCompileProvider>
|
|
|
|
|
+ </Providers.LayoutProvider>
|
|
|
|
|
+ </Providers.ProjectSettingsProvider>
|
|
|
|
|
+ </Providers.EditorProvider>
|
|
|
|
|
+ </Providers.DetachProvider>
|
|
|
|
|
+ </Providers.FileTreePathProvider>
|
|
|
|
|
+ </Providers.FileTreeDataProvider>
|
|
|
|
|
+ </Providers.ProjectProvider>
|
|
|
|
|
+ </Providers.UserSettingsProvider>
|
|
|
</Providers.UserProvider>
|
|
</Providers.UserProvider>
|
|
|
</Providers.IdeAngularProvider>
|
|
</Providers.IdeAngularProvider>
|
|
|
</Providers.SplitTestProvider>
|
|
</Providers.SplitTestProvider>
|