Skip to content

Commit 6fae68c

Browse files
committed
fix potential issues when switching tasks (reset status) and fix canSubmit computed (vue3 dynamic computed dependencies)
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
1 parent 7d92ad9 commit 6fae68c

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/assistant.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ export async function openAssistantForm({
257257
view.showSyncTaskRunning = false
258258
view.isNotifyEnabled = false
259259
view.loading = false
260+
view.taskStatus = task.status
260261

261262
view.selectedTaskTypeId = task.type
262263
view.inputs = task.input
@@ -273,6 +274,7 @@ export async function openAssistantForm({
273274
view.inputs = updatedTask.input
274275
view.outputs = updatedTask.status === TASK_STATUS_STRING.successful ? updatedTask.output : null
275276
view.selectedTaskId = updatedTask.id
277+
view.taskStatus = updatedTask.status
276278
lastTask = updatedTask
277279
return
278280
}
@@ -340,6 +342,7 @@ export async function openAssistantForm({
340342
view.isNotifyEnabled = false
341343
view.outputs = null
342344
view.selectedTaskId = null
345+
view.taskStatus = null
343346
lastTask = null
344347
})
345348
modalMountPoint.addEventListener('background-notify', (data) => {
@@ -768,6 +771,7 @@ export async function openAssistantTask(
768771
view.showSyncTaskRunning = false
769772
view.isNotifyEnabled = false
770773
view.loading = false
774+
view.taskStatus = task.status
771775

772776
view.selectedTaskTypeId = task.type
773777
view.inputs = task.input
@@ -784,6 +788,7 @@ export async function openAssistantTask(
784788
view.inputs = updatedTask.input
785789
view.outputs = updatedTask.status === TASK_STATUS_STRING.successful ? updatedTask.output : null
786790
view.selectedTaskId = updatedTask.id
791+
view.taskStatus = updatedTask.status
787792
lastTask = updatedTask
788793
return
789794
}
@@ -850,6 +855,7 @@ export async function openAssistantTask(
850855
view.isNotifyEnabled = false
851856
view.outputs = null
852857
view.selectedTaskId = null
858+
view.taskStatus = null
853859
lastTask = null
854860
})
855861
modalMountPoint.addEventListener('background-notify', (data) => {

src/components/AssistantTextProcessingForm.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,22 +377,23 @@ export default {
377377
return this.selectedTaskType
378378
},
379379
canSubmit() {
380+
const inputs = this.myInputs
380381
if (this.taskStatus === TASK_STATUS_STRING.running) {
381382
return false
382383
}
383384
// otherwise, check that none of the properties of myInputs are empty
384-
console.debug('[assistant] canSubmit', this.myInputs)
385-
if (Object.keys(this.myInputs).length === 0) {
385+
console.debug('[assistant] canSubmit', inputs)
386+
if (Object.keys(inputs).length === 0) {
386387
return false
387388
}
388389
const taskType = this.selectedTaskType
389390
// check that all fields required by the task type are defined
390391
return Object.keys(taskType.inputShape).every(k => {
391-
if (this.myInputs[k] === null || this.myInputs[k] === undefined) {
392+
if (inputs[k] === null || inputs[k] === undefined) {
392393
return false
393394
}
394395
const fieldType = taskType.inputShape[k].type
395-
const value = this.myInputs[k]
396+
const value = inputs[k]
396397
return ([SHAPE_TYPE_NAMES.Text, SHAPE_TYPE_NAMES.Enum].includes(fieldType)
397398
&& typeof value === 'string'
398399
&& !!value?.trim()

src/views/AssistantPage.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ export default {
233233
this.task.input = updatedTask.input
234234
this.task.output = updatedTask.status === TASK_STATUS_STRING.successful ? updatedTask.output : null
235235
this.task.id = updatedTask.id
236+
this.task.status = updatedTask.status
236237
return
237238
}
238239

0 commit comments

Comments
 (0)