[Bug]: Contextual bar actions do not work and duplicate reply names are allowed during edits

オープン
#70 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

  • #71 @sezallagwal による — マージされずにクローズ

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
typescript
領域
full-stack

調査の方向性

ExecuteBlockActionHandler.ts から始めてコンテキストバーの操作を追跡し、ReplyStorage.ts で編集時の isUniqueReplyName を調べます。/quick list から Send、Edit、Delete アクションを再現し、その後、既存の名前に返信の名前を変更してみます。すべてのアクションが実行され、編集時に重複する名前が拒否されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

bug
What happened?

Overview

This issue covers two distinct bugs within the quick replies list (/quick list) and the editing flow.

Bug 1: Send, Edit, and Delete actions in quick replies list do nothing

When opening the quick replies list and clicking Send, Edit, or Delete from the overflow menu (⋮) on any reply, nothing happens — no modal opens, no error is shown.

Root Cause:
In ExecuteBlockActionHandler.ts, the room fallback uses strict equality:
if (room === undefined) {
For contextual bar block interactions, getInteractionData().room returns null (not undefined). The strict check misses null, forcing room to stay null. Following this, the if (room) guard around the Send/Edit/Delete switch evaluates to false, silently skipping the execution of all three actions.


Bug 2: Duplicate reply names allowed when editing

When editing a reply and changing its name to perfectly match another existing reply, the app accepts it and saves it instead of showing a validation error.

Root Cause:
In ReplyStorage.ts, the isUniqueReplyName method has a no-op comparison:

if (replyFound && replyId) {
    replyFound.id === replyId;  // comparison result is discarded!
    return true;                // always returns true
}
Steps to reproduce
  1. Open any channel and run /quick list.
  2. Click the overflow menu (⋮) on any reply.
  3. Click Send, Edit, or Delete.
  4. Expected: A modal opens for the selected action.
  5. Actual: Nothing happens.
Relevant ScreenShots

No response

Version

8.1.1

What browsers are you seeing the problem on?

Chrome

主要言語
TypeScript
スター
7
フォーク
21
PR マージ指標
30日以内にマージされた PR はありません

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

RocketChat/Apps.QuickReplies のほかの issue

RocketChat/Apps.QuickReplies の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。