SingleTopNav: Add kiosk mode tracking events (#95397)

This commit is contained in:
Laura Fernández 2024-10-25 14:40:34 +02:00 committed by GitHub
parent fd4fc106d9
commit bdab0bc8c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 31 additions and 3 deletions

View File

@ -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) {

View File

@ -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={
<ClipboardButton icon="copy" variant="primary" getText={() => shareUrl}>
<ClipboardButton
icon="copy"
variant="primary"
getText={() => shareUrl}
onClipboardCopy={() => {
reportInteraction('grafana_kiosk_mode', {
action: 'share_playlist',
singleTopNav: Boolean(config.featureToggles.singleTopNav),
mode: mode,
});
}}
>
<Trans i18nKey="share-playlist.copy-link-button">Copy</Trans>
</ClipboardButton>
}

View File

@ -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 (