generated from google-gemini/aistudio-repository-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.tsx
More file actions
40 lines (37 loc) · 1.44 KB
/
index.tsx
File metadata and controls
40 lines (37 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';
import PythonConsoleApp from './components/PythonConsoleApp';
import { LoggerProvider } from './contexts/LoggerContext';
import { ThemeProvider } from './contexts/ThemeContext';
import { IconProvider } from './contexts/IconContext';
import { createScriptPreviewBridge } from './preview/createScriptPreviewBridge';
const params = new URLSearchParams(window.location.search);
const isPythonConsole = params.get('python-console') === '1';
const runIdParam = params.get('runId') ?? '';
const consoleThemeParam = params.get('theme') === 'light' ? 'light' : 'dark';
const enableScriptPreview = params.get('script-preview') === '1';
if (enableScriptPreview && !window.__DOCFORGE_SCRIPT_PREVIEW__) {
window.__DOCFORGE_SCRIPT_PREVIEW__ = createScriptPreviewBridge();
}
const container = document.getElementById('root');
if (container) {
const root = createRoot(container);
root.render(
<React.StrictMode>
<LoggerProvider>
<ThemeProvider>
<IconProvider value={{ iconSet: 'heroicons' }}>
{isPythonConsole ? (
<PythonConsoleApp runId={runIdParam} theme={consoleThemeParam} />
) : (
<App />
)}
</IconProvider>
</ThemeProvider>
</LoggerProvider>
</React.StrictMode>
);
} else {
console.error('Fatal: Could not find root element to mount the application.');
}