Skip to content

Commit fd9dc77

Browse files
committed
fix message json issue
1 parent 0dc85d4 commit fd9dc77

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

client/packages/lowcoder/src/comps/comps/chatComp/components/context/MyRuntimeProvider.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@ interface MyMessage {
1616

1717
const generateId = () => Math.random().toString(36).substr(2, 9);
1818

19-
const callYourAPI = async (message: AppendMessage) => {
19+
const callYourAPI = async (text: string) => {
2020
// Simulate API delay
2121
await new Promise(resolve => setTimeout(resolve, 1500));
2222

2323
// Simple responses
2424
return {
25-
content: "This is a mock response from your backend. You typed: " +
26-
(typeof message.content === 'string' ? message.content : 'something')
25+
content: "This is a mock response from your backend. You typed: " + text
2726
};
2827
};
2928

@@ -41,11 +40,16 @@ export function MyRuntimeProvider({ children }: { children: React.ReactNode }) {
4140
});
4241

4342
const onNew = async (message: AppendMessage) => {
43+
// Extract text from AppendMessage content array
44+
if (message.content.length !== 1 || message.content[0]?.type !== "text") {
45+
throw new Error("Only text content is supported");
46+
}
47+
4448
// Add user message in your custom format
4549
const userMessage: MyMessage = {
4650
id: generateId(),
4751
role: "user",
48-
text: typeof message.content === 'string' ? message.content : JSON.stringify(message.content),
52+
text: message.content[0].text,
4953
timestamp: Date.now(),
5054
};
5155

@@ -54,7 +58,7 @@ export function MyRuntimeProvider({ children }: { children: React.ReactNode }) {
5458

5559
try {
5660
// Call mock API
57-
const response = await callYourAPI(message);
61+
const response = await callYourAPI(userMessage.text);
5862

5963
const assistantMessage: MyMessage = {
6064
id: generateId(),
@@ -81,6 +85,11 @@ export function MyRuntimeProvider({ children }: { children: React.ReactNode }) {
8185

8286
// Add onEdit functionality
8387
const onEdit = async (message: AppendMessage) => {
88+
// Extract text from AppendMessage content array
89+
if (message.content.length !== 1 || message.content[0]?.type !== "text") {
90+
throw new Error("Only text content is supported");
91+
}
92+
8493
// Find the index where to insert the edited message
8594
const index = myMessages.findIndex((m) => m.id === message.parentId) + 1;
8695

@@ -91,7 +100,7 @@ export function MyRuntimeProvider({ children }: { children: React.ReactNode }) {
91100
const editedMessage: MyMessage = {
92101
id: generateId(), // Always generate new ID for edited messages
93102
role: "user",
94-
text: typeof message.content === 'string' ? message.content : JSON.stringify(message.content),
103+
text: message.content[0].text,
95104
timestamp: Date.now(),
96105
};
97106
newMessages.push(editedMessage);
@@ -101,7 +110,7 @@ export function MyRuntimeProvider({ children }: { children: React.ReactNode }) {
101110

102111
try {
103112
// Generate new response
104-
const response = await callYourAPI(message);
113+
const response = await callYourAPI(editedMessage.text);
105114

106115
const assistantMessage: MyMessage = {
107116
id: generateId(),

0 commit comments

Comments
 (0)