Track WebGL rendering toggle events (#9683) (#9772)

*  Track WebGL rendering toggle events (#9683)

* 📎 Normalize workspace menu events origin

* 📎 Normalize event origin for profile settings page

---------

Co-authored-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
andrés gonzález 2026-05-21 13:17:14 +02:00 committed by GitHub
parent e2ed6a488d
commit 6d6f624d09
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 19 deletions

View File

@ -8,6 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.config :as cf]
[app.main.data.event :as ev]
[app.main.data.notifications :as ntf]
[app.main.data.profile :as du]
[app.main.refs :as refs]
@ -95,7 +96,11 @@
handle-render-change
(mf/use-fn
(fn [enabled?]
(st/emit! (du/update-profile-props {:renderer (if enabled? :wasm :svg)})
(st/emit! (ev/event {::ev/name (if enabled?
"enable-webgl-rendering"
"disable-webgl-rendering")
::ev/origin "settings"})
(du/update-profile-props {:renderer (if enabled? :wasm :svg)})
(ntf/success (tr (if enabled?
"webgl.toast.webgl-render-enabled"
"webgl.toast.webgl-render-disabled"))))))]

View File

@ -430,7 +430,7 @@
(mf/deps subscription-editors nitrate-license)
(fn [subscription-type current-subscription]
(st/emit! (ev/event {::ev/name "open-subscription-modal"
::ev/origin "settings:in-app"}))
::ev/origin "settings"}))
(if (= subscription-type "nitrate")
(st/emit! (dnt/show-nitrate-popup :nitrate-dialog {:nitrate-license nitrate-license}))
(st/emit!
@ -461,7 +461,7 @@
(st/emit!
(ev/event {::ev/name "open-subscription-modal"
::ev/origin "settings:from-pricing-page"})
::ev/origin "settings"})
(modal/show :management-dialog
{:subscription-type (if (= params-subscription "subscription-to-penpot-unlimited")
"unlimited"

View File

@ -63,21 +63,21 @@
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-help-center-click"
::ev/origin "workspace-menu:in-app"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://help.penpot.app")))
nav-to-community
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-community-click"
::ev/origin "workspace-menu:in-app"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://community.penpot.app")))
nav-to-youtube
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-tutorials-click"
::ev/origin "workspace-menu:in-app"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://www.youtube.com/c/Penpot")))
nav-to-templates
@ -91,14 +91,14 @@
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-github-repository-click"
::ev/origin "workspace-menu:in-app"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://github.com/penpot/penpot")))
nav-to-terms
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-terms-service-click"
::ev/origin "workspace-menu:in-app"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://penpot.app/terms")))
nav-to-feedback
@ -119,7 +119,7 @@
(st/emit!
(-> (dw/toggle-layout-flag :shortcuts)
(vary-meta assoc ::ev/origin "workspace-header")))))
(vary-meta assoc ::ev/origin "workspace:menu")))))
show-release-notes
(mf/use-fn
@ -347,7 +347,7 @@
(r/set-resize-type! :bottom)
(st/emit! (dw/remove-layout-flag :textpalette)
(-> (dw/toggle-layout-flag :colorpalette)
(vary-meta assoc ::ev/origin "workspace-menu")))))
(vary-meta assoc ::ev/origin "workspace:menu")))))
toggle-text-palette
(mf/use-fn
@ -355,7 +355,7 @@
(r/set-resize-type! :bottom)
(st/emit! (dw/remove-layout-flag :colorpalette)
(-> (dw/toggle-layout-flag :textpalette)
(vary-meta assoc ::ev/origin "workspace-menu")))))]
(vary-meta assoc ::ev/origin "workspace:menu")))))]
[:> dropdown-menu* {:show true
:class (stl/css :base-menu :sub-menu :pos-3)
@ -629,7 +629,7 @@
(mf/deps file)
(fn [_]
(st/emit! (-> (fexp/open-export-dialog [file])
(with-meta {::ev/origin "workspace"})))))
(with-meta {::ev/origin "workspace:menu"})))))
on-export-file-key-down
(mf/use-fn
@ -809,7 +809,7 @@
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "manage-mpc-option"
::ev/origin "workspace-menu"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "/#/settings/integrations")))
on-nav-to-integrations-key-down
@ -824,10 +824,10 @@
(if mcp-connected?
(st/emit! (mcp/user-disconnect-mcp)
(ev/event {::ev/name "disconnect-mcp-plugin"
::ev/origin "workspace-menu"}))
::ev/origin "workspace:menu"}))
(st/emit! (mcp/connect-mcp)
(ev/event {::ev/name "connect-mcp-plugin"
::ev/origin "workspace-menu"})))))
::ev/origin "workspace:menu"})))))
on-toggle-mcp-plugin-key-down
(mf/use-fn
@ -910,7 +910,7 @@
(mf/use-fn
(fn []
(st/emit! (ev/event {::ev/name "explore-pricing-click"
::ev/origin "workspace-menu"}))
::ev/origin "workspace:menu"}))
(dom/open-new-window "https://penpot.app/pricing")))
toggle-flag
@ -922,7 +922,7 @@
(keyword))]
(st/emit!
(-> (dw/toggle-layout-flag flag)
(vary-meta assoc ::ev/origin "workspace-menu")))
(vary-meta assoc ::ev/origin "workspace:menu")))
(reset! show-menu* false)
(reset! selected-sub-menu* nil))))
@ -939,7 +939,11 @@
(dom/stop-propagation event)
(let [renderer (or (-> profile :props :renderer) :svg)
next-renderer (if (= renderer :wasm) :svg :wasm)]
(st/emit! (du/update-profile-props {:renderer next-renderer})
(st/emit! (ev/event {::ev/name (if (= next-renderer :wasm)
"enable-webgl-rendering"
"disable-webgl-rendering")
::ev/origin "workspace:menu"})
(du/update-profile-props {:renderer next-renderer})
(ntf/success (tr (if (= next-renderer :wasm)
"webgl.toast.webgl-render-enabled"
"webgl.toast.webgl-render-disabled")))))))
@ -973,7 +977,7 @@
:icon i/menu}]
[:> dropdown-menu* {:show show-menu?
:id "workspace-menu"
:id "workspace:menu"
:on-close close-menu
:class (stl/css :base-menu :menu)}
[:> dropdown-menu-item* {:class (stl/css :base-menu-item :menu-item)