@@ -13,9 +13,11 @@ import (
1313
1414 "github.com/google/uuid"
1515
16+ "github.com/wavetermdev/waveterm/pkg/panichandler"
1617 "github.com/wavetermdev/waveterm/pkg/waveobj"
17- "github.com/wavetermdev/waveterm/pkg/wstore "
18+ "github.com/wavetermdev/waveterm/pkg/wcloud "
1819 "github.com/wavetermdev/waveterm/pkg/wps"
20+ "github.com/wavetermdev/waveterm/pkg/wstore"
1921)
2022
2123// the wcore package coordinates actions across the storage layer
@@ -110,7 +112,6 @@ func SendWaveObjUpdate(oref waveobj.ORef) {
110112 })
111113}
112114
113-
114115func ResolveBlockIdFromPrefix (ctx context.Context , tabId string , blockIdPrefix string ) (string , error ) {
115116 if len (blockIdPrefix ) != 8 {
116117 return "" , fmt .Errorf ("widget_id must be 8 characters" )
@@ -129,3 +130,27 @@ func ResolveBlockIdFromPrefix(ctx context.Context, tabId string, blockIdPrefix s
129130
130131 return "" , fmt .Errorf ("widget_id not found: %q" , blockIdPrefix )
131132}
133+
134+ func GoSendNoTelemetryUpdate (telemetryEnabled bool ) {
135+ go func () {
136+ defer func () {
137+ panichandler .PanicHandler ("GoSendNoTelemetryUpdate" , recover ())
138+ }()
139+ ctx , cancelFn := context .WithTimeout (context .Background (), 5 * time .Second )
140+ defer cancelFn ()
141+ clientData , err := wstore.DBGetSingleton [* waveobj.Client ](ctx )
142+ if err != nil {
143+ log .Printf ("telemetry update: error getting client data: %v\n " , err )
144+ return
145+ }
146+ if clientData == nil {
147+ log .Printf ("telemetry update: client data is nil\n " )
148+ return
149+ }
150+ err = wcloud .SendNoTelemetryUpdate (ctx , clientData .OID , ! telemetryEnabled )
151+ if err != nil {
152+ log .Printf ("[error] sending no-telemetry update: %v\n " , err )
153+ return
154+ }
155+ }()
156+ }
0 commit comments