@@ -164,6 +164,7 @@ import { appLanguages } from './i18n/app-languages';
164164import { themeColors } from './UI/theme-colors' ;
165165import { getCommandMenuActions } from './UI/command-menu-actions' ;
166166import { createLanguageMenus , createProcessorItem } from './UI/create-language-menus' ;
167+ import { hasJsx } from './editor/ts-compiler-options' ;
167168
168169// declare global dependencies
169170declare global {
@@ -370,8 +371,9 @@ const loadModuleTypes = async (
370371 ...config . types ,
371372 ...config . customSettings . types ,
372373 } ;
374+ const reactImport = hasJsx . includes ( scriptLanguage ) ? `import React from 'react';\n` : '' ;
373375 const libs = await typeLoader . load (
374- getConfig ( ) . script . content + '\n' + getConfig ( ) . markup . content ,
376+ reactImport + getConfig ( ) . script . content + '\n' + getConfig ( ) . markup . content ,
375377 configTypes ,
376378 loadAll ,
377379 force ,
@@ -649,6 +651,7 @@ const showMode = (mode?: Config['mode'], view?: Config['view']) => {
649651 document . body . classList . toggle ( 'focus-mode' , mode === 'focus' ) ;
650652 document . body . classList . toggle ( 'lite-mode' , mode === 'lite' ) ;
651653 document . body . classList . toggle ( 'result' , mode === 'result' ) ;
654+ document . body . classList . toggle ( 'no-result' , mode === 'editor' || mode === 'codeblock' ) ;
652655 if ( ( mode === 'full' || mode === 'simple' ) && ! split ) {
653656 split = createSplitPanes ( ) ;
654657 }
@@ -4798,7 +4801,7 @@ const handleDropFiles = () => {
47984801 } ) ;
47994802} ;
48004803
4801- const handleResultMode = ( ) => {
4804+ const handleResultModeDrawer = ( ) => {
48024805 const drawer = UI . getResultModeDrawer ( ) ;
48034806 const drawerLink = drawer . querySelector ( 'a' ) as HTMLAnchorElement ;
48044807 const closeBtn = drawer . querySelector ( '#drawer-close' ) as HTMLButtonElement ;
@@ -5059,15 +5062,9 @@ const extraHandlers = async () => {
50595062 showConsoleMessage ( ) ;
50605063} ;
50615064
5062- const configureEmbed = ( config : Config , eventsManager : EventsManager ) => {
5065+ const configureEmbed = ( eventsManager : EventsManager ) => {
50635066 document . body . classList . add ( 'embed' ) ;
5064- if ( config . mode === 'result' ) {
5065- document . body . classList . add ( 'result' ) ;
5066- handleResultMode ( ) ;
5067- }
5068- if ( config . mode === 'editor' || config . mode === 'codeblock' ) {
5069- document . body . classList . add ( 'no-result' ) ;
5070- }
5067+ handleResultModeDrawer ( ) ;
50715068
50725069 const logoLink = UI . getLogoLink ( ) ;
50735070 logoLink . title = window . deps . translateString ( 'generic.embed.logoHint' , 'Edit on LiveCodes 🡕' ) ;
@@ -5122,7 +5119,7 @@ const configureModes = ({
51225119 configureLite ( ) ;
51235120 }
51245121 if ( isEmbed || config . mode === 'result' ) {
5125- configureEmbed ( config , eventsManager ) ;
5122+ configureEmbed ( eventsManager ) ;
51265123 }
51275124 if ( config . mode === 'simple' ) {
51285125 configureSimpleMode ( config ) ;
@@ -5661,6 +5658,7 @@ const initEmbed = async (config: Partial<Config>, baseUrl: string) => {
56615658 } ) ;
56625659 return createApi ( ) ;
56635660} ;
5661+
56645662const initHeadless = async ( config : Partial < Config > , baseUrl : string ) => {
56655663 window . deps = {
56665664 showMode : ( ) => undefined ,
0 commit comments