[REF-2117]:rx.color_mode_cond
to work in f-strings (#2775)
This commit is contained in:
parent
fbc6e7eba3
commit
8a2b92f2e9
@ -206,7 +206,7 @@ def color_mode_cond(light: Any, dark: Any = None) -> Var | Component:
|
|||||||
The conditional component or prop.
|
The conditional component or prop.
|
||||||
"""
|
"""
|
||||||
return cond(
|
return cond(
|
||||||
color_mode == LIGHT_COLOR_MODE,
|
color_mode == Var.create(LIGHT_COLOR_MODE, _var_is_string=True),
|
||||||
light,
|
light,
|
||||||
dark,
|
dark,
|
||||||
)
|
)
|
||||||
|
@ -387,9 +387,9 @@ class CodeBlock(Component):
|
|||||||
merged_imports = imports.merge_imports(
|
merged_imports = imports.merge_imports(
|
||||||
merged_imports,
|
merged_imports,
|
||||||
{
|
{
|
||||||
f"react-syntax-highlighter/dist/cjs/styles/prism/{theme}": {
|
f"react-syntax-highlighter/dist/cjs/styles/prism/{self.convert_theme_name(theme)}": {
|
||||||
ImportVar(
|
ImportVar(
|
||||||
tag=format.to_camel_case(theme),
|
tag=format.to_camel_case(self.convert_theme_name(theme)),
|
||||||
is_default=True,
|
is_default=True,
|
||||||
install=False,
|
install=False,
|
||||||
)
|
)
|
||||||
@ -451,13 +451,7 @@ class CodeBlock(Component):
|
|||||||
# react-syntax-highlighter doesnt have an explicit "light" or "dark" theme so we use one-light and one-dark
|
# react-syntax-highlighter doesnt have an explicit "light" or "dark" theme so we use one-light and one-dark
|
||||||
# themes respectively to ensure code compatibility.
|
# themes respectively to ensure code compatibility.
|
||||||
if "theme" in props and not isinstance(props["theme"], Var):
|
if "theme" in props and not isinstance(props["theme"], Var):
|
||||||
props["theme"] = (
|
props["theme"] = cls.convert_theme_name(props["theme"])
|
||||||
"one-light"
|
|
||||||
if props["theme"] == "light"
|
|
||||||
else "one-dark"
|
|
||||||
if props["theme"] == "dark"
|
|
||||||
else props["theme"]
|
|
||||||
)
|
|
||||||
|
|
||||||
if can_copy:
|
if can_copy:
|
||||||
code = children[0]
|
code = children[0]
|
||||||
@ -511,3 +505,17 @@ class CodeBlock(Component):
|
|||||||
if self.code is not None:
|
if self.code is not None:
|
||||||
out.special_props.add(Var.create_safe(f"children={str(self.code)}"))
|
out.special_props.add(Var.create_safe(f"children={str(self.code)}"))
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def convert_theme_name(theme) -> str:
|
||||||
|
"""Convert theme names to appropriate names.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
theme: The theme name.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The right theme name.
|
||||||
|
"""
|
||||||
|
if theme in ["light", "dark"]:
|
||||||
|
return f"one-{theme}"
|
||||||
|
return theme
|
||||||
|
@ -1110,3 +1110,5 @@ class CodeBlock(Component):
|
|||||||
The text component.
|
The text component.
|
||||||
"""
|
"""
|
||||||
...
|
...
|
||||||
|
@staticmethod
|
||||||
|
def convert_theme_name(theme) -> str: ...
|
||||||
|
Loading…
Reference in New Issue
Block a user