@@ -60,6 +60,22 @@ export function useSnippets() {
6060 // 将新代码片段添加到列表开头
6161 snippets . value . unshift ( newSnippet ) ;
6262
63+ // 追踪代码片段创建事件
64+ try {
65+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
66+ await invoke ( "track_event" , {
67+ eventName : "snippet_created" ,
68+ properties : {
69+ language : snippet . language ,
70+ has_tags : snippet . tags . length > 0 ? "true" : "false" ,
71+ tags_count : snippet . tags . length ,
72+ } ,
73+ } ) ;
74+ console . log ( "snippet_created" , snippet . language ) ;
75+ } catch ( trackingError ) {
76+ console . warn ( "Failed to track snippet creation event:" , trackingError ) ;
77+ }
78+
6379 return newSnippet ;
6480 } catch ( err ) {
6581 console . error ( "Failed to create snippet:" , err ) ;
@@ -93,6 +109,28 @@ export function useSnippets() {
93109 if ( selectedSnippet . value ?. id === id ) {
94110 selectedSnippet . value = updatedSnippet ;
95111 }
112+
113+ // 追踪代码片段更新事件
114+ try {
115+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
116+ await invoke ( "track_event" , {
117+ eventName : "snippet_updated" ,
118+ properties : {
119+ language : updates . language || "unknown" ,
120+ has_tags : updates . tags
121+ ? updates . tags . length > 0
122+ ? "true"
123+ : "false"
124+ : "false" ,
125+ tags_count : updates . tags ? updates . tags . length : 0 ,
126+ } ,
127+ } ) ;
128+ } catch ( trackingError ) {
129+ console . warn (
130+ "Failed to track snippet update event:" ,
131+ trackingError
132+ ) ;
133+ }
96134 }
97135 }
98136 } catch ( err ) {
@@ -108,6 +146,9 @@ export function useSnippets() {
108146 error . value = null ;
109147
110148 try {
149+ // 获取要删除的片段信息用于事件追踪
150+ const snippetToDelete = snippets . value . find ( ( s ) => s . id === id ) ;
151+
111152 await snippetApi . delete ( id ) ;
112153
113154 // 从本地列表中移除
@@ -117,6 +158,26 @@ export function useSnippets() {
117158 if ( selectedSnippet . value ?. id === id ) {
118159 selectedSnippet . value = null ;
119160 }
161+
162+ // 追踪代码片段删除事件
163+ if ( snippetToDelete ) {
164+ try {
165+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
166+ await invoke ( "track_event" , {
167+ eventName : "snippet_deleted" ,
168+ properties : {
169+ language : snippetToDelete . language ,
170+ had_tags : snippetToDelete . tags . length > 0 ? "true" : "false" ,
171+ tags_count : snippetToDelete . tags . length ,
172+ } ,
173+ } ) ;
174+ } catch ( trackingError ) {
175+ console . warn (
176+ "Failed to track snippet deletion event:" ,
177+ trackingError
178+ ) ;
179+ }
180+ }
120181 } catch ( err ) {
121182 console . error ( "Failed to delete snippet:" , err ) ;
122183 error . value = err instanceof Error ? err . message : "删除代码片段失败" ;
@@ -136,6 +197,20 @@ export function useSnippets() {
136197
137198 try {
138199 snippets . value = await snippetApi . search ( query ) ;
200+
201+ // 追踪代码片段搜索事件
202+ try {
203+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
204+ await invoke ( "track_event" , {
205+ eventName : "snippet_searched" ,
206+ properties : {
207+ query_length : query . length ,
208+ results_count : snippets . value . length ,
209+ } ,
210+ } ) ;
211+ } catch ( trackingError ) {
212+ console . warn ( "Failed to track snippet search event:" , trackingError ) ;
213+ }
139214 } catch ( err ) {
140215 console . error ( "Failed to search snippets:" , err ) ;
141216 error . value = err instanceof Error ? err . message : "搜索代码片段失败" ;
@@ -155,6 +230,23 @@ export function useSnippets() {
155230
156231 try {
157232 snippets . value = await snippetApi . getByLanguage ( language ) ;
233+
234+ // 追踪代码片段语言过滤事件
235+ try {
236+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
237+ await invoke ( "track_event" , {
238+ eventName : "snippet_filtered_by_language" ,
239+ properties : {
240+ language : language ,
241+ results_count : snippets . value . length ,
242+ } ,
243+ } ) ;
244+ } catch ( trackingError ) {
245+ console . warn (
246+ "Failed to track snippet language filter event:" ,
247+ trackingError
248+ ) ;
249+ }
158250 } catch ( err ) {
159251 console . error ( "Failed to filter snippets by language:" , err ) ;
160252 error . value = err instanceof Error ? err . message : "按语言过滤失败" ;
@@ -173,6 +265,23 @@ export function useSnippets() {
173265
174266 try {
175267 snippets . value = await snippetApi . getByTags ( tags ) ;
268+
269+ // 追踪代码片段标签过滤事件
270+ try {
271+ const { invoke } = await import ( "@tauri-apps/api/core" ) ;
272+ await invoke ( "track_event" , {
273+ eventName : "snippet_filtered_by_tags" ,
274+ properties : {
275+ tags_count : tags . length ,
276+ results_count : snippets . value . length ,
277+ } ,
278+ } ) ;
279+ } catch ( trackingError ) {
280+ console . warn (
281+ "Failed to track snippet tags filter event:" ,
282+ trackingError
283+ ) ;
284+ }
176285 } catch ( err ) {
177286 console . error ( "Failed to filter snippets by tags:" , err ) ;
178287 error . value = err instanceof Error ? err . message : "按标签过滤失败" ;
0 commit comments