Merge pull request #929 from basecamp/fizzy-ask-spend-limits

Conversation cost limits
This commit is contained in:
Stanko Krtalić
2025-08-26 08:52:33 +02:00
committed by GitHub
21 changed files with 450 additions and 89 deletions
@@ -27,7 +27,10 @@ export default class extends Controller {
if (event.detail.success) {
this.#reset()
} else {
this.conversationMessagesOutlet.failPendingMessage(this.clientMessageIdInputTarget.value)
this.#failPendingMessage(
this.clientMessageIdInputTarget.value,
event.detail.fetchResponse
)
}
}
@@ -60,4 +63,18 @@ export default class extends Controller {
this.textInputTarget.value = ""
this.clientMessageIdInputTarget.value = ""
}
async #failPendingMessage(clientMessageId, response) {
let errorMessage = null
if (response?.contentType?.includes('application/json')) {
const error = JSON.parse(await response.responseText)
errorMessage = error.error
}
this.conversationMessagesOutlet.failPendingMessage(
this.clientMessageIdInputTarget.value,
errorMessage
)
}
}
@@ -12,11 +12,15 @@ export default class extends Controller {
this.scrollToBottom()
}
failPendingMessage(clientMessageId) {
failPendingMessage(clientMessageId, errorMessage) {
const message = this.element.querySelector(`#message_${clientMessageId}`)
if (message) {
message.classList.add(this.failedMessageClass)
if (errorMessage) {
message.dataset.error = errorMessage
}
}
}