diff options
Diffstat (limited to 'src/hydrilla/proxy/web_ui/_app.py')
-rw-r--r-- | src/hydrilla/proxy/web_ui/_app.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/hydrilla/proxy/web_ui/_app.py b/src/hydrilla/proxy/web_ui/_app.py new file mode 100644 index 0000000..f54f72e --- /dev/null +++ b/src/hydrilla/proxy/web_ui/_app.py @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: CC0-1.0 + +# Copyright (C) 2022 Wojtek Kosior <koszko@koszko.org> +# +# Available under the terms of Creative Commons Zero v1.0 Universal. + +import enum +import dataclasses as dc +import typing as t + +import flask + +from .. import state as st + + +class UIDomain(enum.Enum): + MAIN = enum.auto() + LANDING_PAGE = enum.auto() + +@dc.dataclass(init=False) +class WebUIApp(flask.Flask): + _haketilo_state: st.HaketiloState + _haketilo_ui_domain: t.ClassVar[UIDomain] + +def get_haketilo_state() -> st.HaketiloState: + return t.cast(WebUIApp, flask.current_app)._haketilo_state + +def get_haketilo_ui_domain() -> UIDomain: + return t.cast(WebUIApp, flask.current_app)._haketilo_ui_domain |