]> git.cworth.org Git - turbot/commitdiff
Modify multi_select_block to use accessory_block, section_block, and text_block
authorCarl Worth <cworth@cworth.org>
Fri, 8 Jan 2021 20:37:40 +0000 (12:37 -0800)
committerCarl Worth <cworth@cworth.org>
Sat, 9 Jan 2021 05:05:10 +0000 (21:05 -0800)
Where this content was previously open-coded and redundant.

The commit removes more lines of code than it adds.

turbot/blocks.py

index c037b03217f0ed117b823dc2141dfe03d05a6297..dde2cfb913d3bcddd76e1c44da9f465587aeb081 100644 (file)
@@ -11,12 +11,18 @@ def text_block(body):
         }
     }
 
-def section_block(block):
-    return {
+def section_block(block, block_id=None):
+
+    block = {
         "type": "section",
         **block
     }
 
+    if block_id:
+        block['block_id'] = block_id
+
+    return block
+
 def actions_block(*elements):
     return {
         "type": "actions",
@@ -68,28 +74,26 @@ def input_block(label, name, placeholder, optional=False):
     }
 
 def multi_select_block(label, name, placeholder, options, default=None):
-    return {
-        "type": "section",
-        "block_id": name,
-        "text": {
-            "type": "mrkdwn",
-            "text": "*{}*".format(label)
+
+    multi_select =  {
+        "action_id": name,
+        "type": "multi_static_select",
+        "placeholder": {
+            "type": "plain_text",
+            "text": placeholder
         },
-        "accessory": {
-            "action_id": name,
-            "type": "multi_static_select",
-            "placeholder": {
-                "type": "plain_text",
-                "text": placeholder
-            },
-            "options": [
-                {
-                    "text": {
-                        "type": "plain_text",
-                        "text": option
-                    },
-                    "value": option
-                } for option in options
-            ]
-        }
+        "options": [
+            {
+                "text": {
+                    "type": "plain_text",
+                    "text": option
+                },
+                "value": option
+            } for option in options
+        ]
     }
+
+    return accessory_block(
+        section_block(text_block("*{}*".format(label)), block_id=name),
+        multi_select
+    )