Jelajahi Sumber

remove unnecessary globals.main_page

Falko Schindler 2 tahun lalu
induk
melakukan
fbecb7c734
3 mengubah file dengan 7 tambahan dan 8 penghapusan
  1. 4 4
      nicegui/elements/element.py
  2. 3 3
      nicegui/elements/page.py
  3. 0 1
      nicegui/globals.py

+ 4 - 4
nicegui/elements/element.py

@@ -24,10 +24,10 @@ class Element:
 
     def __init__(self, view: jp.HTMLBaseComponent):
         if not globals.view_stack:
-            globals.main_page = Page('/')
-            globals.main_page.delete_flag = False
-            globals.view_stack[:] = [globals.main_page.view]
-            jp.Route('/', globals.main_page._route_function)
+            main_page = Page('/')
+            main_page.delete_flag = False
+            globals.view_stack.append(main_page.view)
+            jp.Route('/', main_page._route_function)
 
         self.parent_view = globals.view_stack[-1]
         self.parent_view.add(view)

+ 3 - 3
nicegui/elements/page.py

@@ -11,7 +11,7 @@ from addict import Dict
 from pygments.formatters import HtmlFormatter
 from starlette.requests import Request
 
-from ..globals import config, connect_handlers, disconnect_handlers, main_page, page_builders, view_stack
+from ..globals import config, connect_handlers, disconnect_handlers, page_builders, view_stack
 from ..helpers import is_coroutine
 
 
@@ -136,9 +136,9 @@ def page(self, path: str, *, shared: bool = False, **kwargs):
         async def decorated():
             page = Page(route=path, **kwargs)
             page.delete_flag = not shared
-            view_stack[:] = [page.view]
+            view_stack.append(page.view)
             await func() if is_coroutine(func) else func()
-            view_stack[:] = [main_page]
+            view_stack.pop()
             return page
         page_builders[path] = PageBuilder(decorated, shared)
         return decorated

+ 0 - 1
nicegui/globals.py

@@ -13,7 +13,6 @@ if TYPE_CHECKING:
 
 app: 'Starlette'
 config: 'Config'
-main_page: 'Page' = None
 page_builders: Dict[str, 'PageBuilder'] = {}
 view_stack: List['jp.HTMLBaseComponent'] = []
 tasks: List[asyncio.tasks.Task] = []