diff --git a/src/components/actionbar/ComfyActionbar.vue b/src/components/actionbar/ComfyActionbar.vue index 986901055a..90ef6b818b 100644 --- a/src/components/actionbar/ComfyActionbar.vue +++ b/src/components/actionbar/ComfyActionbar.vue @@ -34,6 +34,7 @@ import type { Ref } from 'vue' import { computed, inject, nextTick, onMounted, ref, watch } from 'vue' import { useSettingStore } from '@/platform/settings/settingStore' +import { useTelemetry } from '@/platform/telemetry' import { cn } from '@/utils/tailwindUtil' import ComfyRunButton from './ComfyRunButton' @@ -121,6 +122,15 @@ watch(visible, async (newVisible) => { } }) +/** + * Track run button handle drag start using mousedown on the drag handle. + */ +useEventListener(dragHandleRef, 'mousedown', () => { + useTelemetry()?.trackUiButtonClicked({ + button_id: 'actionbar_run_handle_drag_start' + }) +}) + const lastDragState = ref({ x: x.value, y: y.value, diff --git a/src/components/actionbar/ComfyRunButton/ComfyQueueButton.vue b/src/components/actionbar/ComfyRunButton/ComfyQueueButton.vue index 388a61a80e..8907ecf444 100644 --- a/src/components/actionbar/ComfyRunButton/ComfyQueueButton.vue +++ b/src/components/actionbar/ComfyRunButton/ComfyQueueButton.vue @@ -118,6 +118,9 @@ const queueModeMenuItemLookup = computed(() => { label: `${t('menu.run')} (${t('menu.onChange')})`, tooltip: t('menu.onChangeTooltip'), command: () => { + useTelemetry()?.trackUiButtonClicked({ + button_id: 'queue_mode_option_run_on_change_selected' + }) queueMode.value = 'change' } } @@ -128,6 +131,9 @@ const queueModeMenuItemLookup = computed(() => { label: `${t('menu.run')} (${t('menu.instant')})`, tooltip: t('menu.instantTooltip'), command: () => { + useTelemetry()?.trackUiButtonClicked({ + button_id: 'queue_mode_option_run_instant_selected' + }) queueMode.value = 'instant' } } diff --git a/src/components/breadcrumb/SubgraphBreadcrumb.vue b/src/components/breadcrumb/SubgraphBreadcrumb.vue index fb218ab1e2..a04e3b2b5b 100644 --- a/src/components/breadcrumb/SubgraphBreadcrumb.vue +++ b/src/components/breadcrumb/SubgraphBreadcrumb.vue @@ -38,6 +38,7 @@ import { computed, onUpdated, ref, watch } from 'vue' import SubgraphBreadcrumbItem from '@/components/breadcrumb/SubgraphBreadcrumbItem.vue' import { useOverflowObserver } from '@/composables/element/useOverflowObserver' +import { useTelemetry } from '@/platform/telemetry' import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore' @@ -73,7 +74,9 @@ const items = computed(() => { command: () => { const canvas = useCanvasStore().getCanvas() if (!canvas.graph) throw new TypeError('Canvas has no graph') - + useTelemetry()?.trackUiButtonClicked({ + button_id: 'breadcrumb_subgraph_item_selected' + }) canvas.setGraph(subgraph) }, updateTitle: (title: string) => { @@ -97,7 +100,9 @@ const home = computed(() => ({ command: () => { const canvas = useCanvasStore().getCanvas() if (!canvas.graph) throw new TypeError('Canvas has no graph') - + useTelemetry()?.trackUiButtonClicked({ + button_id: 'breadcrumb_subgraph_root_selected' + }) canvas.setGraph(canvas.graph.rootGraph) } })) diff --git a/src/components/dialog/content/ErrorDialogContent.vue b/src/components/dialog/content/ErrorDialogContent.vue index 7b08cbe1b6..242ce883f5 100644 --- a/src/components/dialog/content/ErrorDialogContent.vue +++ b/src/components/dialog/content/ErrorDialogContent.vue @@ -88,6 +88,9 @@ const repoName = 'ComfyUI' const reportContent = ref('') const reportOpen = ref(false) const showReport = () => { + telemetry?.trackUiButtonClicked({ + button_id: 'error_dialog_show_report_clicked' + }) reportOpen.value = true } const toast = useToast() diff --git a/src/components/dialog/content/error/FindIssueButton.vue b/src/components/dialog/content/error/FindIssueButton.vue index e4c32b4713..83b55899f6 100644 --- a/src/components/dialog/content/error/FindIssueButton.vue +++ b/src/components/dialog/content/error/FindIssueButton.vue @@ -11,6 +11,8 @@ import Button from 'primevue/button' import { computed } from 'vue' +import { useTelemetry } from '@/platform/telemetry' + const props = defineProps<{ errorMessage: string repoOwner: string @@ -20,6 +22,9 @@ const props = defineProps<{ const queryString = computed(() => props.errorMessage + ' is:issue') const openGitHubIssues = () => { + useTelemetry()?.trackUiButtonClicked({ + button_id: 'error_dialog_find_existing_issues_clicked' + }) const query = encodeURIComponent(queryString.value) const url = `https://github.com/${props.repoOwner}/${props.repoName}/issues?q=${query}` window.open(url, '_blank') diff --git a/src/components/graph/GraphCanvasMenu.vue b/src/components/graph/GraphCanvasMenu.vue index f0f2d61d42..8a7ccd6a47 100644 --- a/src/components/graph/GraphCanvasMenu.vue +++ b/src/components/graph/GraphCanvasMenu.vue @@ -108,7 +108,7 @@ :aria-label="linkVisibilityAriaLabel" data-testid="toggle-link-visibility-button" :style="stringifiedMinimapStyles.buttonStyles" - @click="() => commandStore.execute('Comfy.Canvas.ToggleLinkVisibility')" + @click="onLinkVisibilityToggleClick" >