karkas/src/karkas_blocks/karkas_blocks/standard/miniapp/main.py

55 lines
1.1 KiB
Python

from typing import TYPE_CHECKING
from aiogram import types
from fastapi.middleware.wsgi import WSGIMiddleware
from karkas_core.modules_system.public_api import (
Storage,
get_module,
set_chat_menu_button,
)
if TYPE_CHECKING:
from karkas_blocks.standard.config import IConfig
config: "IConfig" = get_module("standard.config", "config")
def get_link():
pass
def module_init():
config.register(
"miniapp::prefix",
"string",
default_value="/webapp/",
visible=False,
)
config.register(
"miniapp::public_url",
"string",
visible=False,
)
pass
def register_page():
pass
async def module_late_init():
from .lib import create_dash_app
dash_app = create_dash_app(requests_pathname_prefix=config.get("miniapp::prefix"))
Storage.set("webapp", WSGIMiddleware(dash_app.server))
web_app_info = types.WebAppInfo(url=config.get("miniapp::public_url"))
menu_button = types.MenuButtonWebApp(text="Меню", web_app=web_app_info)
await set_chat_menu_button(menu_button)