diff --git a/client/components/codeEditor/codeEditor.jsx b/client/components/codeEditor/codeEditor.jsx index 25bf4f88e..f5cfc694a 100644 --- a/client/components/codeEditor/codeEditor.jsx +++ b/client/components/codeEditor/codeEditor.jsx @@ -1,4 +1,4 @@ -/* eslint max-lines: ["error", { "max": 405 }] */ +/* eslint max-lines: ["error", { "max": 410 }] */ import './codeEditor.less'; import React, { useEffect, useRef, forwardRef, useImperativeHandle } from 'react'; @@ -88,6 +88,7 @@ const CodeEditor = forwardRef( onChange = ()=>{}, onCursorChange = ()=>{}, onViewChange = ()=>{}, + onThemeChange = ()=>{}, editorTheme = 'default', style, renderer, @@ -308,6 +309,9 @@ const CodeEditor = forwardRef( view.dispatch({ effects : themeCompartment.reconfigure(themeExtension), }); + + const isDark = view.state.facet(EditorView.darkTheme); + onThemeChange(isDark); }, [editorTheme, tab]); useEffect(()=>{ diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 92ce0b78c..f4f1e001a 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -2,6 +2,7 @@ import './editor.less'; import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from 'react'; import dedent from 'dedent'; +import { EditorView } from '@codemirror/view'; import CodeEditor from '@components/codeEditor/codeEditor.jsx'; import SnippetBar from './snippetbar/snippetbar.jsx'; @@ -72,6 +73,7 @@ const Editor = forwardRef( const [currentEditorTheme, setEditorTheme] = useState(editorTheme); const [view, setView] = useState('text'); // 'text', 'style', 'meta', 'snippet' const [snippetBarHeight, setSnippetBarHeight] = useState(26); + const [isDark, setIsDark] = useState(false); const editor = useRef(null); const codeEditor = useRef(null); @@ -225,6 +227,7 @@ const Editor = forwardRef( onCursorChange={(page)=>updateCurrentCursorPage(page)} onViewChange={(page)=>updateCurrentViewPage(page)} editorTheme={currentEditorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - ${snippetBarHeight}px)` }} /> @@ -243,6 +246,7 @@ const Editor = forwardRef( value={brew.style ?? DEFAULT_STYLE_TEXT} onChange={onBrewChange('style')} editorTheme={currentEditorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - ${snippetBarHeight}px)` }} /> @@ -265,6 +269,7 @@ const Editor = forwardRef( onChange={onBrewChange('snippets')} enableFolding={true} editorTheme={currentEditorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - 25px)` }} /> @@ -274,7 +279,7 @@ const Editor = forwardRef( if(isMeta()) { return ( <> - + +