some validations

This commit is contained in:
Elijah 2024-10-01 15:33:43 +00:00
parent 8eff3423f9
commit b1aff7147e
2 changed files with 11 additions and 1 deletions

View File

@ -18,7 +18,6 @@ from reflex.utils.imports import ImportDict, ImportVar
from reflex.vars.base import LiteralVar, Var, VarData from reflex.vars.base import LiteralVar, Var, VarData
LiteralCodeLanguage = Literal[ LiteralCodeLanguage = Literal[
"ts",
"abap", "abap",
"abnf", "abnf",
"actionscript", "actionscript",

View File

@ -4,6 +4,7 @@ from typing import Any, Literal, Optional, Union
from reflex.base import Base from reflex.base import Base
from reflex.components.component import Component, ComponentNamespace from reflex.components.component import Component, ComponentNamespace
from reflex.components.lucide.icon import Icon from reflex.components.lucide.icon import Icon
from reflex.components.core.cond import color_mode_cond
from reflex.components.radix.themes.components.button import Button from reflex.components.radix.themes.components.button import Button
from reflex.components.radix.themes.layout.box import Box from reflex.components.radix.themes.layout.box import Box
from reflex.event import set_clipboard from reflex.event import set_clipboard
@ -368,6 +369,14 @@ class ShikiCodeBlock(Component):
) -> Component: ) -> Component:
props["code"] = children[0] props["code"] = children[0]
if "theme" not in props:
# Default color scheme responds to global color mode.
# TODO: we can use themes arg for this
props["theme"] = color_mode_cond(
light="one-light",
dark="one-dark-pro",
)
if can_copy: if can_copy:
code = children[0] code = children[0]
copy_button = ( # type: ignore copy_button = ( # type: ignore
@ -412,6 +421,8 @@ class ShikiCodeBlock(Component):
@classmethod @classmethod
def create_transformer(cls, library: str, fns: list[str]) -> ShikiBaseTransformers: def create_transformer(cls, library: str, fns: list[str]) -> ShikiBaseTransformers:
if any(not isinstance(fn_name, str) for fn_name in fns):
raise ValueError(f"the function names should be str names of functions in the specified transformer: {library!r}")
return ShikiBaseTransformers( return ShikiBaseTransformers(
library=library, fns=[FunctionStringVar.create(fn) for fn in fns] library=library, fns=[FunctionStringVar.create(fn) for fn in fns]
) )