From db9e04bc0aed2a32d1b98a198dc54f4de188e298 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 4 Feb 2025 17:15:30 -0800 Subject: [PATCH] special case on literal var --- reflex/components/datadisplay/code.py | 28 +++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/reflex/components/datadisplay/code.py b/reflex/components/datadisplay/code.py index 6cc5beb2c..ec14599e3 100644 --- a/reflex/components/datadisplay/code.py +++ b/reflex/components/datadisplay/code.py @@ -518,6 +518,17 @@ class CodeBlock(Component, MarkdownComponentMap): language_in_there = Var.create(typing.get_args(LiteralCodeLanguage)).contains( language_var ) + async_load = """ +(async () => {{ + try {{ + const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{{language_var!s}}}`); + SyntaxHighlighter.registerLanguage({language_var!s}, module.default); + }} catch (error) {{ + console.error(`Language ${{{language_var!s}}} is not supported for code blocks inside of markdown: `, error); + throw new Er + }} +}})(); +""" return Var( f""" if ({language_var!s}) {{ @@ -525,18 +536,15 @@ class CodeBlock(Component, MarkdownComponentMap): console.warn(`Language \\`${{{language_var!s}}}\\` is not supported for code blocks inside of markdown.`); {language_var!s} = ''; }} else {{ - (async () => {{ - try {{ - const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{{language_var!s}}}`); - SyntaxHighlighter.registerLanguage({language_var!s}, module.default); - }} catch (error) {{ - console.error(`Language ${{{language_var!s}}} is not supported for code blocks inside of markdown: `, error); - throw new Er - }} - }})(); + {async_load!s} }} }} -""", +""" + if not isinstance(language_var, LiteralVar) + else f""" +if ({language_var!s}) {{ + {async_load!s} +}}""", _var_data=VarData( imports={ cls.__fields__["library"].default: [