Hide the built with reflex badge for localhost
This commit is contained in:
parent
c6d874ae99
commit
41cb50770b
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
from reflex.components.component import ComponentNamespace
|
from reflex.components.component import ComponentNamespace
|
||||||
from reflex.components.core.colors import color
|
from reflex.components.core.colors import color
|
||||||
from reflex.components.core.cond import color_mode_cond
|
from reflex.components.core.cond import color_mode_cond, cond
|
||||||
|
from reflex.components.core.responsive import tablet_and_desktop
|
||||||
from reflex.components.el.elements.inline import A
|
from reflex.components.el.elements.inline import A
|
||||||
from reflex.components.el.elements.media import Path, Rect, Svg
|
from reflex.components.el.elements.media import Path, Rect, Svg
|
||||||
from reflex.components.radix.themes.typography.text import Text
|
from reflex.components.radix.themes.typography.text import Text
|
||||||
|
from reflex.experimental.client_state import ClientStateVar
|
||||||
from reflex.style import Style
|
from reflex.style import Style
|
||||||
|
from reflex.vars.base import Var, VarData
|
||||||
|
|
||||||
|
|
||||||
class StickyLogo(Svg):
|
class StickyLogo(Svg):
|
||||||
@ -52,7 +55,7 @@ class StickyLabel(Text):
|
|||||||
Returns:
|
Returns:
|
||||||
The sticky label.
|
The sticky label.
|
||||||
"""
|
"""
|
||||||
return super().create("Built with Reflex!")
|
return super().create("Built with Reflex")
|
||||||
|
|
||||||
def add_style(self):
|
def add_style(self):
|
||||||
"""Add the style to the component.
|
"""Add the style to the component.
|
||||||
@ -63,17 +66,17 @@ class StickyLabel(Text):
|
|||||||
return Style(
|
return Style(
|
||||||
{
|
{
|
||||||
"color": color("slate", 1),
|
"color": color("slate", 1),
|
||||||
"font-weight": "600",
|
"font_weight": "600",
|
||||||
"font-family": "'Instrument Sans', sans-serif",
|
"font_family": "'Instrument Sans', sans-serif",
|
||||||
"font-size": "0.875rem",
|
"font_size": "0.875rem",
|
||||||
"line-height": "1rem",
|
"line_height": "1rem",
|
||||||
"letter-spacing": "-0.00656rem",
|
"letter_spacing": "-0.00656rem",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class StickyBadge(A):
|
class StickyBadge(A):
|
||||||
"""A badge that displays the Reflex sticky."""
|
"""A badge that displays the Reflex sticky logo."""
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls):
|
def create(cls):
|
||||||
@ -84,7 +87,7 @@ class StickyBadge(A):
|
|||||||
"""
|
"""
|
||||||
return super().create(
|
return super().create(
|
||||||
StickyLogo.create(),
|
StickyLogo.create(),
|
||||||
StickyLabel.create(),
|
tablet_and_desktop(StickyLabel.create()),
|
||||||
href="https://reflex.dev",
|
href="https://reflex.dev",
|
||||||
target="_blank",
|
target="_blank",
|
||||||
width="auto",
|
width="auto",
|
||||||
@ -99,12 +102,36 @@ class StickyBadge(A):
|
|||||||
Returns:
|
Returns:
|
||||||
The style of the component.
|
The style of the component.
|
||||||
"""
|
"""
|
||||||
|
is_localhost_cs = ClientStateVar.create(
|
||||||
|
"is_localhost",
|
||||||
|
default=True,
|
||||||
|
global_ref=False,
|
||||||
|
)
|
||||||
|
localhost_hostnames = Var.create(
|
||||||
|
["localhost", "127.0.0.1", "[::1]"]
|
||||||
|
).guess_type()
|
||||||
|
is_localhost_expr = localhost_hostnames.contains(
|
||||||
|
Var("window.location.hostname", _var_type=str).guess_type(),
|
||||||
|
)
|
||||||
|
check_is_localhost = Var(
|
||||||
|
f"useEffect(({is_localhost_cs}) => {is_localhost_cs.set}({is_localhost_expr}), [])",
|
||||||
|
_var_data=VarData(
|
||||||
|
imports={"react": "useEffect"},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
is_localhost = is_localhost_cs.value._replace(
|
||||||
|
merge_var_data=VarData.merge(
|
||||||
|
check_is_localhost._get_all_var_data(),
|
||||||
|
VarData(hooks={str(check_is_localhost): None}),
|
||||||
|
),
|
||||||
|
)
|
||||||
return Style(
|
return Style(
|
||||||
{
|
{
|
||||||
"position": "fixed",
|
"position": "fixed",
|
||||||
"bottom": "1rem",
|
"bottom": "1rem",
|
||||||
"right": "1rem",
|
"right": "1rem",
|
||||||
"display": "flex",
|
# Do not show the badge on localhost.
|
||||||
|
"display": cond(is_localhost, "none", "flex"),
|
||||||
"flex-direction": "row",
|
"flex-direction": "row",
|
||||||
"gap": "0.375rem",
|
"gap": "0.375rem",
|
||||||
"align-items": "center",
|
"align-items": "center",
|
||||||
@ -118,7 +145,7 @@ class StickyBadge(A):
|
|||||||
"box-shadow": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
|
"box-shadow": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
|
||||||
"z-index": "9998",
|
"z-index": "9998",
|
||||||
"cursor": "pointer",
|
"cursor": "pointer",
|
||||||
}
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user