libs.commands.home_tab.home

libs/commands/home_tab/home.py

 1"""
 2libs/commands/home_tab/home.py
 3"""
 4
 5import logging
 6
 7import libs.global_value as g
 8from libs.commands.home_tab import ui_parts
 9from libs.functions.events.handler_registry import register
10
11
12def build_main_menu():
13    """メインメニューを生成する"""
14    g.app_var["screen"] = "MainMenu"
15    g.app_var["no"] = 0
16    g.app_var["view"] = {"type": "home", "blocks": []}
17    ui_parts.button(text="成績サマリ", action_id="summary_menu")
18    ui_parts.button(text="ランキング", action_id="ranking_menu")
19    ui_parts.button(text="個人成績", action_id="personal_menu")
20    ui_parts.button(text="直接対戦", action_id="versus_menu")
21
22
23@register
24def register_home_handlers(app):
25    """ホームタブ操作イベント"""
26    @app.action("actionId-back")
27    def handle_action(ack, body, client):
28        """戻るボタン
29
30        Args:
31            ack (_type_): ack
32            body (dict): イベント内容
33            client (slack_bolt.App.client): slack_boltオブジェクト
34        """
35
36        ack()
37        logging.trace(body)  # type: ignore
38
39        build_main_menu()
40        client.views_publish(
41            user_id=g.app_var["user_id"],
42            view=g.app_var["view"],
43        )
44
45    @app.action("modal-open-period")
46    def handle_open_modal_button_clicks(ack, body, client):
47        """検索範囲設定選択イベント
48
49        Args:
50            ack (_type_): ack
51            body (dict): イベント内容
52            client (slack_bolt.App.client): オブジェクト
53        """
54
55        ack()
56        client.views_open(
57            trigger_id=body["trigger_id"],
58            view=ui_parts.modalperiod_selection(),
59        )
def build_main_menu():
13def build_main_menu():
14    """メインメニューを生成する"""
15    g.app_var["screen"] = "MainMenu"
16    g.app_var["no"] = 0
17    g.app_var["view"] = {"type": "home", "blocks": []}
18    ui_parts.button(text="成績サマリ", action_id="summary_menu")
19    ui_parts.button(text="ランキング", action_id="ranking_menu")
20    ui_parts.button(text="個人成績", action_id="personal_menu")
21    ui_parts.button(text="直接対戦", action_id="versus_menu")

メインメニューを生成する

register_home_handlers = None

ホームタブ操作イベント