Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions reflex/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -1010,11 +1010,18 @@ def _app_root(self, app_wrappers: dict[tuple[int, str], Component]) -> Component
for component in tuple(app_wrappers.values()):
app_wrappers.update(component._get_all_app_wrap_components())
order = sorted(app_wrappers, key=lambda k: k[0], reverse=True)
root = parent = copy.deepcopy(app_wrappers[order[0]])
for key in order[1:]:
root = copy.deepcopy(app_wrappers[order[0]])

def reducer(parent: Component, key: tuple[int, str]) -> Component:
child = copy.deepcopy(app_wrappers[key])
parent.children.append(child)
parent = child
return child

functools.reduce(
lambda parent, key: reducer(parent, key),
order[1:],
root,
)
return root

def _should_compile(self) -> bool:
Expand Down Expand Up @@ -1274,7 +1281,7 @@ def memoized_toast_provider():

toast_provider = Fragment.create(memoized_toast_provider())

app_wrappers[(1, "ToasterProvider")] = toast_provider
app_wrappers[(44, "ToasterProvider")] = toast_provider

# Add the app wraps to the app.
for key, app_wrap in chain(
Expand Down
8 changes: 4 additions & 4 deletions tests/units/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -1377,12 +1377,12 @@ def test_app_wrap_compile_theme(
"""onError:((_error, _info) => (addEvents([(ReflexEvent("reflex___state____state.reflex___state____frontend_event_exception_state.handle_frontend_exception", ({ ["info"] : ((((_error["name"]+": ")+_error["message"])+"\\n")+_error["stack"]), ["component_stack"] : _info["componentStack"] }), ({ })))], [_error, _info], ({ }))))"""
"},"
"jsx(RadixThemesColorModeProvider,{},"
"jsx(Fragment,{},"
"jsx(MemoizedToastProvider,{},),"
"jsx(RadixThemesTheme,{accentColor:\"plum\",css:{...theme.styles.global[':root'], ...theme.styles.global.body}},"
"jsx(Fragment,{},"
"jsx(DefaultOverlayComponents,{},),"
"jsx(Fragment,{},"
"jsx(MemoizedToastProvider,{},),"
"jsx(Fragment,{},"
"children"
"))))))" + (")" if react_strict_mode else "") + ")"
"\n}"
Expand Down Expand Up @@ -1452,12 +1452,12 @@ def page():
"},"
'jsx(RadixThemesText,{as:"p"},'
"jsx(RadixThemesColorModeProvider,{},"
"jsx(Fragment,{},"
"jsx(MemoizedToastProvider,{},),"
"jsx(Fragment2,{},"
"jsx(Fragment,{},"
"jsx(DefaultOverlayComponents,{},),"
"jsx(Fragment,{},"
"jsx(MemoizedToastProvider,{},),"
"jsx(Fragment,{},"
"children"
")))))))" + (")" if react_strict_mode else "") + "))\n}"
)
Expand Down
Loading