|
@@ -15,6 +15,7 @@ from pynecone.vars import ImportVar
|
|
|
# Imports to be included in every Pynecone app.
|
|
|
DEFAULT_IMPORTS: imports.ImportDict = {
|
|
|
"react": {
|
|
|
+ ImportVar(tag="Fragment"),
|
|
|
ImportVar(tag="useEffect"),
|
|
|
ImportVar(tag="useRef"),
|
|
|
ImportVar(tag="useState"),
|
|
@@ -31,7 +32,11 @@ DEFAULT_IMPORTS: imports.ImportDict = {
|
|
|
ImportVar(tag="getRefValue"),
|
|
|
},
|
|
|
"": {ImportVar(tag="focus-visible/dist/focus-visible")},
|
|
|
- "@chakra-ui/react": {ImportVar(tag=constants.USE_COLOR_MODE)},
|
|
|
+ "@chakra-ui/react": {
|
|
|
+ ImportVar(tag=constants.USE_COLOR_MODE),
|
|
|
+ ImportVar(tag="Box"),
|
|
|
+ ImportVar(tag="Text"),
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
|
|
@@ -62,12 +67,15 @@ def _compile_theme(theme: dict) -> str:
|
|
|
return templates.THEME.render(theme=theme)
|
|
|
|
|
|
|
|
|
-def _compile_page(component: Component, state: Type[State]) -> str:
|
|
|
+def _compile_page(
|
|
|
+ component: Component, state: Type[State], connect_error_component
|
|
|
+) -> str:
|
|
|
"""Compile the component given the app state.
|
|
|
|
|
|
Args:
|
|
|
component: The component to compile.
|
|
|
state: The app state.
|
|
|
+ connect_error_component: The component to render on sever connection error.
|
|
|
|
|
|
Returns:
|
|
|
The compiled component.
|
|
@@ -85,6 +93,7 @@ def _compile_page(component: Component, state: Type[State]) -> str:
|
|
|
hooks=component.get_hooks(),
|
|
|
render=component.render(),
|
|
|
transports=constants.Transports.POLLING_WEBSOCKET.get_transports(),
|
|
|
+ err_comp=connect_error_component.render() if connect_error_component else None,
|
|
|
)
|
|
|
|
|
|
|
|
@@ -188,7 +197,10 @@ def compile_theme(style: Style) -> Tuple[str, str]:
|
|
|
|
|
|
@write_output
|
|
|
def compile_page(
|
|
|
- path: str, component: Component, state: Type[State]
|
|
|
+ path: str,
|
|
|
+ component: Component,
|
|
|
+ state: Type[State],
|
|
|
+ connect_error_component: Component,
|
|
|
) -> Tuple[str, str]:
|
|
|
"""Compile a single page.
|
|
|
|
|
@@ -196,6 +208,7 @@ def compile_page(
|
|
|
path: The path to compile the page to.
|
|
|
component: The component to compile.
|
|
|
state: The app state.
|
|
|
+ connect_error_component: The component to render on sever connection error.
|
|
|
|
|
|
Returns:
|
|
|
The path and code of the compiled page.
|
|
@@ -204,7 +217,7 @@ def compile_page(
|
|
|
output_path = utils.get_page_path(path)
|
|
|
|
|
|
# Add the style to the component.
|
|
|
- code = _compile_page(component, state)
|
|
|
+ code = _compile_page(component, state, connect_error_component)
|
|
|
return output_path, code
|
|
|
|
|
|
|