Skip to content

Commit 5ba524f

Browse files
authored
Add toast message on refresh button click (#492)
1 parent 966b1dd commit 5ba524f

File tree

3 files changed

+52
-6
lines changed

3 files changed

+52
-6
lines changed

src/components/toast/GlobalToast.vue

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const toast = useToast()
1212
const toastStore = useToastStore()
1313
1414
watch(
15-
() => toastStore.messages,
15+
() => toastStore.messagesToAdd,
1616
(newMessages) => {
1717
if (newMessages.length === 0) {
1818
return
@@ -21,8 +21,33 @@ watch(
2121
newMessages.forEach((message) => {
2222
toast.add(message)
2323
})
24-
toastStore.removeAll()
24+
toastStore.messagesToAdd = []
2525
},
2626
{ deep: true }
2727
)
28+
29+
watch(
30+
() => toastStore.messagesToRemove,
31+
(messagesToRemove) => {
32+
if (messagesToRemove.length === 0) {
33+
return
34+
}
35+
36+
messagesToRemove.forEach((message) => {
37+
toast.remove(message)
38+
})
39+
toastStore.messagesToRemove = []
40+
},
41+
{ deep: true }
42+
)
43+
44+
watch(
45+
() => toastStore.removeAllRequested,
46+
(requested) => {
47+
if (requested) {
48+
toast.removeAllGroups()
49+
toastStore.removeAllRequested = false
50+
}
51+
}
52+
)
2853
</script>

src/scripts/app.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ import { Vector2 } from '@comfyorg/litegraph'
4545
import _ from 'lodash'
4646
import { showLoadWorkflowWarning } from '@/services/dialogService'
4747
import { useSettingStore } from '@/stores/settingStore'
48+
import { useToastStore } from '@/stores/toastStore'
49+
import type { ToastMessageOptions } from 'primevue/toast'
4850

4951
export const ANIM_PREVIEW_WIDGET = '$$comfy_animation_preview'
5052

@@ -2851,6 +2853,13 @@ export class ComfyApp {
28512853
* Refresh combo list on whole nodes
28522854
*/
28532855
async refreshComboInNodes() {
2856+
const requestToastMessage: ToastMessageOptions = {
2857+
severity: 'info',
2858+
summary: 'Update',
2859+
detail: 'Update requested'
2860+
}
2861+
if (this.vueAppReady) useToastStore().add(requestToastMessage)
2862+
28542863
const defs = await api.getNodeDefs()
28552864

28562865
for (const nodeId in defs) {
@@ -2888,6 +2897,16 @@ export class ComfyApp {
28882897
}
28892898

28902899
await this.#invokeExtensionsAsync('refreshComboInNodes', defs)
2900+
2901+
if (this.vueAppReady) {
2902+
useToastStore().remove(requestToastMessage)
2903+
useToastStore().add({
2904+
severity: 'success',
2905+
summary: 'Updated',
2906+
detail: 'Node definitions updated',
2907+
life: 1000
2908+
})
2909+
}
28912910
}
28922911

28932912
resetView() {

src/stores/toastStore.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,20 @@ import type { ToastMessageOptions } from 'primevue/toast'
66

77
export const useToastStore = defineStore('toast', {
88
state: () => ({
9-
messages: [] as ToastMessageOptions[]
9+
messagesToAdd: [] as ToastMessageOptions[],
10+
messagesToRemove: [] as ToastMessageOptions[],
11+
removeAllRequested: false
1012
}),
1113

1214
actions: {
1315
add(message: ToastMessageOptions) {
14-
this.messages = [...this.messages, message]
16+
this.messagesToAdd = [...this.messagesToAdd, message]
1517
},
1618
remove(message: ToastMessageOptions) {
17-
this.messages = this.messages.filter((msg) => msg !== message)
19+
this.messagesToRemove = [...this.messagesToRemove, message]
1820
},
1921
removeAll() {
20-
this.messages = []
22+
this.removeAllRequested = true
2123
}
2224
}
2325
})

0 commit comments

Comments
 (0)