mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-26 08:31:55 +00:00
test: dedupe auto-reply web and signal flows
This commit is contained in:
@@ -17,6 +17,23 @@ type CarouselColumn = messagingApi.CarouselColumn;
|
||||
type ImageCarouselTemplate = messagingApi.ImageCarouselTemplate;
|
||||
type ImageCarouselColumn = messagingApi.ImageCarouselColumn;
|
||||
|
||||
type TemplatePayloadAction = {
|
||||
type?: "uri" | "postback" | "message";
|
||||
uri?: string;
|
||||
data?: string;
|
||||
label: string;
|
||||
};
|
||||
|
||||
function buildTemplatePayloadAction(action: TemplatePayloadAction): Action {
|
||||
if (action.type === "uri" && action.uri) {
|
||||
return uriAction(action.label, action.uri);
|
||||
}
|
||||
if (action.type === "postback" && action.data) {
|
||||
return postbackAction(action.label, action.data, action.label);
|
||||
}
|
||||
return messageAction(action.label, action.data ?? action.label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a confirm template (yes/no style dialog)
|
||||
*/
|
||||
@@ -293,16 +310,9 @@ export function buildTemplateMessageFromPayload(
|
||||
}
|
||||
|
||||
case "buttons": {
|
||||
const actions: Action[] = payload.actions.slice(0, 4).map((action) => {
|
||||
if (action.type === "uri" && action.uri) {
|
||||
return uriAction(action.label, action.uri);
|
||||
}
|
||||
if (action.type === "postback" && action.data) {
|
||||
return postbackAction(action.label, action.data, action.label);
|
||||
}
|
||||
// Default to message action
|
||||
return messageAction(action.label, action.data ?? action.label);
|
||||
});
|
||||
const actions: Action[] = payload.actions
|
||||
.slice(0, 4)
|
||||
.map((action) => buildTemplatePayloadAction(action));
|
||||
|
||||
return createButtonTemplate(payload.title, payload.text, actions, {
|
||||
thumbnailImageUrl: payload.thumbnailImageUrl,
|
||||
@@ -312,15 +322,9 @@ export function buildTemplateMessageFromPayload(
|
||||
|
||||
case "carousel": {
|
||||
const columns: CarouselColumn[] = payload.columns.slice(0, 10).map((col) => {
|
||||
const colActions: Action[] = col.actions.slice(0, 3).map((action) => {
|
||||
if (action.type === "uri" && action.uri) {
|
||||
return uriAction(action.label, action.uri);
|
||||
}
|
||||
if (action.type === "postback" && action.data) {
|
||||
return postbackAction(action.label, action.data, action.label);
|
||||
}
|
||||
return messageAction(action.label, action.data ?? action.label);
|
||||
});
|
||||
const colActions: Action[] = col.actions
|
||||
.slice(0, 3)
|
||||
.map((action) => buildTemplatePayloadAction(action));
|
||||
|
||||
return createCarouselColumn({
|
||||
title: col.title,
|
||||
|
||||
Reference in New Issue
Block a user