diff --git a/apps/dashboard/src/app/nebula-app/(app)/components/ChatPageContent.tsx b/apps/dashboard/src/app/nebula-app/(app)/components/ChatPageContent.tsx index 6003ae1e1f4..9d154254531 100644 --- a/apps/dashboard/src/app/nebula-app/(app)/components/ChatPageContent.tsx +++ b/apps/dashboard/src/app/nebula-app/(app)/components/ChatPageContent.tsx @@ -375,10 +375,6 @@ export function ChatPageContent(props: { chatAbortController?.abort(); setChatAbortController(undefined); setIsChatStreaming(false); - // if last message is presence, remove it - if (messages[messages.length - 1]?.type === "presence") { - setMessages((prev) => prev.slice(0, -1)); - } }} context={contextFilters} setContext={(v) => { diff --git a/apps/dashboard/src/app/nebula-app/(app)/components/Chats.tsx b/apps/dashboard/src/app/nebula-app/(app)/components/Chats.tsx index 82cceeb5d1e..cadaefa4c30 100644 --- a/apps/dashboard/src/app/nebula-app/(app)/components/Chats.tsx +++ b/apps/dashboard/src/app/nebula-app/(app)/components/Chats.tsx @@ -173,6 +173,7 @@ export function Chats(props: { isMessagePending={isMessagePending} client={props.client} sendMessage={props.sendMessage} + nextMessage={props.messages[index + 1]} /> @@ -207,8 +208,9 @@ function RenderMessage(props: { isMessagePending: boolean; client: ThirdwebClient; sendMessage: (message: string) => void; + nextMessage: ChatMessage | undefined; }) { - const { message, isMessagePending, client, sendMessage } = props; + const { message, isMessagePending, client, sendMessage, nextMessage } = props; switch (message.type) { case "assistant": @@ -237,6 +239,11 @@ function RenderMessage(props: { txData={message.data} client={client} onTxSettled={(txHash) => { + // do not send automatic prompt if there is another transaction after this one + if (nextMessage?.type === "action") { + return; + } + sendMessage(getTransactionSettledPrompt(txHash)); }} /> @@ -254,8 +261,13 @@ function RenderMessage(props: { { - // no op + onTxSettled={(txHash) => { + // do not send automatic prompt if there is another transaction after this one + if (nextMessage?.type === "action") { + return; + } + + sendMessage(getTransactionSettledPrompt(txHash)); }} /> );