Slack's mobile client gives every button in an actions block its own full-width row, so the four ratings rendered as four stacked bars and the nudge filled the screen (user, with a screenshot). A select is one row and still one decision. The interactive route now resolves both shapes — a button carries `value`, a select carries it on `selected_option`. Reading only the former would have left sharing working while rating silently did nothing.
This commit is contained in:
@@ -61,7 +61,12 @@ export async function POST(req: NextRequest) {
|
||||
if (payload.type !== "block_actions") return new NextResponse(null, { status: 200 });
|
||||
|
||||
const action = payload.actions?.[0];
|
||||
const [idStr, verb, arg] = String(action?.value ?? "").split(":");
|
||||
// A button carries `value`; a select carries it on the chosen option. The
|
||||
// ratings moved to a select because four buttons became four full-width rows
|
||||
// on Slack mobile, so both shapes have to resolve or rating silently stops
|
||||
// working while sharing still does.
|
||||
const rawValue = action?.value ?? action?.selected_option?.value ?? "";
|
||||
const [idStr, verb, arg] = String(rawValue).split(":");
|
||||
const transactionId = Number(idStr);
|
||||
if (!Number.isInteger(transactionId)) {
|
||||
return NextResponse.json({ text: "Could not tell which order that was." });
|
||||
|
||||
Reference in New Issue
Block a user