Skip to content

Commit 99ff7c2

Browse files
committed
fix: resolve UI state desync between backend and Slack blocks
1 parent 642a9ea commit 99ff7c2

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

backend/api/routes/feedback.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from slack_app.utils.block_builder import (
1414
build_app_home,
1515
build_approval_modal,
16+
build_draft_card,
1617
build_generation_modal,
1718
build_upload_modal,
1819
)
@@ -257,25 +258,31 @@ async def slack_interactions(request: Request):
257258
)
258259

259260
metadata_parts = view.get("private_metadata", "").split("|")
261+
topic = metadata_parts[0] if len(metadata_parts) > 0 else "Медичний пост"
260262
draft_id = metadata_parts[1] if len(metadata_parts) > 1 else "temp_id"
261263
msg_channel_id = metadata_parts[2] if len(metadata_parts) > 2 else ""
262264
message_ts = metadata_parts[3] if len(metadata_parts) > 3 else ""
263265

264-
await publish_post_task.kiq(
265-
post_id=draft_id, platform=platform, content=draft_content
266-
)
267-
268-
# ДОДАНО: Знищуємо старе повідомлення з кнопками
266+
# ДОДАНО: Перемальовуємо повідомлення новою карткою з кнопками
269267
if msg_channel_id and message_ts:
268+
updated_blocks = build_draft_card(
269+
topic=topic,
270+
draft=draft_content,
271+
user_id=user_id,
272+
draft_id=draft_id,
273+
platform=platform,
274+
)
270275
async with httpx.AsyncClient() as client:
271276
await client.post(
272277
"https://slack.com/api/chat.update",
273278
headers=headers,
274279
json={
275280
"channel": msg_channel_id,
276281
"ts": message_ts,
277-
"text": SLACK_UI["interact_approved_text"],
278-
"blocks": [], # Порожній масив блоків видаляє картку і кнопки
282+
"text": SLACK_UI["draft_ready_fallback"].format(
283+
topic=topic
284+
),
285+
"blocks": updated_blocks, # ПОВЕРТАЄМО КНОПКИ З НОВИМИ ДАНИМИ
279286
},
280287
)
281288

0 commit comments

Comments
 (0)