diff --git a/public/app/core/components/AppChrome/AppChromeService.tsx b/public/app/core/components/AppChrome/AppChromeService.tsx index a4ce36086d1..26609392753 100644 --- a/public/app/core/components/AppChrome/AppChromeService.tsx +++ b/public/app/core/components/AppChrome/AppChromeService.tsx @@ -197,17 +197,29 @@ export class AppChromeService { } this.update({ searchBarHidden: newSearchBarHidden, kioskMode: null }); + reportInteraction('grafana_search_bar', { + visible: !newSearchBarHidden, + }); }; public onToggleKioskMode = () => { const nextMode = this.getNextKioskMode(); this.update({ kioskMode: nextMode }); locationService.partial({ kiosk: this.getKioskUrlValue(nextMode) }); + reportInteraction('grafana_kiosk_mode', { + action: 'toggle', + singleTopNav: Boolean(config.featureToggles.singleTopNav), + mode: nextMode, + }); }; public exitKioskMode() { this.update({ kioskMode: undefined }); locationService.partial({ kiosk: null }); + reportInteraction('grafana_kiosk_mode', { + action: 'exit', + singleTopNav: Boolean(config.featureToggles.singleTopNav), + }); } public setKioskModeFromUrl(kiosk: UrlQueryValue) { diff --git a/public/app/features/playlist/ShareModal.tsx b/public/app/features/playlist/ShareModal.tsx index 5e14f1a22a2..2c21ee70a5e 100644 --- a/public/app/features/playlist/ShareModal.tsx +++ b/public/app/features/playlist/ShareModal.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { SelectableValue, UrlQueryMap, urlUtil } from '@grafana/data'; -import { config } from '@grafana/runtime'; +import { config, reportInteraction } from '@grafana/runtime'; import { Checkbox, ClipboardButton, Field, FieldSet, Input, Modal, RadioButtonGroup } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { buildBaseUrl } from 'app/features/dashboard/components/ShareModal/utils'; @@ -57,7 +57,18 @@ export const ShareModal = ({ playlistUid, onDismiss }: Props) => { value={shareUrl} readOnly addonAfter={ - shareUrl}> + shareUrl} + onClipboardCopy={() => { + reportInteraction('grafana_kiosk_mode', { + action: 'share_playlist', + singleTopNav: Boolean(config.featureToggles.singleTopNav), + mode: mode, + }); + }} + > Copy } diff --git a/public/app/features/playlist/StartModal.tsx b/public/app/features/playlist/StartModal.tsx index 81a7cf9dfcb..910df666806 100644 --- a/public/app/features/playlist/StartModal.tsx +++ b/public/app/features/playlist/StartModal.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { SelectableValue, UrlQueryMap, urlUtil } from '@grafana/data'; -import { config, locationService } from '@grafana/runtime'; +import { config, locationService, reportInteraction } from '@grafana/runtime'; import { Box, Button, Checkbox, Field, FieldSet, Modal, RadioButtonGroup, Stack } from '@grafana/ui'; import { Playlist, PlaylistMode } from './types'; @@ -46,6 +46,11 @@ export const StartModal = ({ playlist, onDismiss }: Props) => { } locationService.push(urlUtil.renderUrl(`/playlists/play/${playlist.uid}`, params)); + reportInteraction('grafana_kiosk_mode', { + action: 'start_playlist', + singleTopNav: Boolean(config.featureToggles.singleTopNav), + mode: mode, + }); }; return (