- {messages.map((message, index) => (
+
1 ? 'multi' : 'single'}`}
+ >
+ {messagesToShow.map((message, index) => (
toggleMessage(message.uid)}
- isNew={newMessageUid === message.uid}
- onNewRendered={handleNewMessageRendered}
- isSelected={selectedIndex === index}
- onSelect={() => handleSelect(index)}
+ canClientSendMultipleMessages={canClientSendMultipleMessages}
+ isLast={index === messagesToShow.length - 1}
/>
))}
+
+ {canClientSendMultipleMessages && (
+
+ }
+ >
+ Add Message
+
+
+ )}
);
};
diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
index e33c19202..55b920749 100644
--- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
+++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
@@ -577,9 +577,7 @@ export const sendRequest = (item, collectionUid) => (dispatch, getState) => {
toast.error(err.message);
});
} else if (isWsRequest) {
- const wsMessages = itemCopy.draft?.request?.body?.ws || itemCopy.request?.body?.ws || [];
- const wsSelectedMessageIndex = Math.max(0, wsMessages.findIndex((msg) => msg.selected));
- sendWsRequest(itemCopy, collectionCopy, environment, collectionCopy.runtimeVariables, wsSelectedMessageIndex)
+ sendWsRequest(itemCopy, collectionCopy, environment, collectionCopy.runtimeVariables)
.then(resolve)
.catch((err) => {
toast.error(err.message);
@@ -1606,7 +1604,6 @@ export const newWsRequest = (params) => (dispatch, getState) => {
mode: 'ws',
ws: [
{
- uid: uuid(),
name: 'message 1',
type: 'json',
content: '{}'
diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js
index 23710c326..b389e826c 100644
--- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js
+++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js
@@ -100,8 +100,7 @@ const REQUEST_UID_PATHS = [
'assertions',
'body.formUrlEncoded',
'body.multipartForm',
- 'body.file',
- 'body.ws'
+ 'body.file'
];
const ROOT_UID_PATHS = ['request.headers', 'request.vars.req', 'request.vars.res'];
diff --git a/packages/bruno-app/src/utils/collections/index.js b/packages/bruno-app/src/utils/collections/index.js
index 0b551b53b..0cc1b508e 100644
--- a/packages/bruno-app/src/utils/collections/index.js
+++ b/packages/bruno-app/src/utils/collections/index.js
@@ -785,11 +785,10 @@ export const transformRequestToSaveToFilesystem = (item) => {
if (itemToSave.request.body.mode === 'ws') {
itemToSave.request.body = {
...itemToSave.request.body,
- ws: itemToSave.request.body.ws.map(({ name, content, type, selected }, index) => ({
+ ws: itemToSave.request.body.ws.map(({ name, content, type }, index) => ({
name: name ? name : `message ${index + 1}`,
type,
- content: replaceTabsWithSpaces(content),
- selected: selected || false
+ content: replaceTabsWithSpaces(content)
}))
};
}
@@ -1015,7 +1014,6 @@ export const refreshUidsInItem = (item) => {
each(get(item, 'request.body.multipartForm'), (param) => (param.uid = uuid()));
each(get(item, 'request.body.formUrlEncoded'), (param) => (param.uid = uuid()));
each(get(item, 'request.body.file'), (param) => (param.uid = uuid()));
- each(get(item, 'request.body.ws'), (msg) => (msg.uid = uuid()));
each(get(item, 'request.assertions'), (assertion) => (assertion.uid = uuid()));
return item;
diff --git a/packages/bruno-app/src/utils/network/index.js b/packages/bruno-app/src/utils/network/index.js
index 3e9c906bd..b1a265276 100644
--- a/packages/bruno-app/src/utils/network/index.js
+++ b/packages/bruno-app/src/utils/network/index.js
@@ -224,7 +224,7 @@ export const connectWS = async (item, collection, environment, runtimeVariables,
});
};
-export const sendWsRequest = async (item, collection, environment, runtimeVariables, selectedMessageIndex = 0) => {
+export const sendWsRequest = async (item, collection, environment, runtimeVariables) => {
const ensureConnection = async () => {
const connectionStatus = await isWsConnectionActive(item.uid);
if (!connectionStatus.isActive) {
@@ -234,8 +234,8 @@ export const sendWsRequest = async (item, collection, environment, runtimeVariab
await ensureConnection();
- // Send only the selected message by index
- const result = await queueWsMessage(item, collection, environment, runtimeVariables, selectedMessageIndex);
+ // Use queueWsMessage helper to queue all messages with proper variable interpolation
+ const result = await queueWsMessage(item, collection, environment, runtimeVariables, null);
if (result.success) {
return {};
@@ -250,10 +250,10 @@ export const sendWsRequest = async (item, collection, environment, runtimeVariab
* @param {Object} collection - The collection object
* @param {Object} environment - The environment variables
* @param {Object} runtimeVariables - The runtime variables
- * @param {number} selectedMessageIndex - Index of the message to queue
+ * @param {string} messageContent - The message content to queue (or null to queue all messages)
* @returns {Promise