You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

44 lines
1.6 KiB

from pathlib import Path
from typing import Callable, Optional, Union
import fastapi
from .page import page as ui_page
class APIRouter(fastapi.APIRouter):
def page(self,
path: str, *,
title: Optional[str] = None,
viewport: Optional[str] = None,
favicon: Optional[Union[str, Path]] = None,
dark: Optional[bool] = ..., # type: ignore
response_timeout: float = 3.0,
**kwargs,
) -> Callable:
"""Page
Creates a new page at the given route.
Each user will see a new instance of the page.
This means it is private to the user and not shared with others
(as it is done `when placing elements outside of a page decorator <https://nicegui.io/documentation#auto-index_page>`_).
:param path: route of the new page (path must start with '/')
:param title: optional page title
:param viewport: optional viewport meta tag content
:param favicon: optional relative filepath or absolute URL to a favicon (default: `None`, NiceGUI icon will be used)
:param dark: whether to use Quasar's dark mode (defaults to `dark` argument of `run` command)
:param response_timeout: maximum time for the decorated function to build the page (default: 3.0)
:param kwargs: additional keyword arguments passed to FastAPI's @app.get method
"""
return ui_page(
path,
title=title,
viewport=viewport,
favicon=favicon,
dark=dark,
response_timeout=response_timeout,
api_router=self,
**kwargs
)