import { AppEvents, TimeZone } from '@grafana/data'; // @ts-ignore import appEvents from 'grafana/app/core/app_events'; export function openNotification(message: React.ReactNode) { appEvents.emit(AppEvents.alertSuccess, [message]); } export function getCurrentDashboardUid(): string { const url = window.location.toString(); const matches = new URL(url).pathname.match(/\/d\/([^/]+)/); if (!matches) { throw new Error(`Can't get current dashboard uid. If it's a new dashboard, please save it first.`); } else { return matches[1]; } } export function convertTimestampToDate(timestamp?: number): string { const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', }; return timestamp ? new Date(timestamp).toLocaleString('en-GB', options) : '-'; } export function convertTimeZoneTypeToName(timeZone: TimeZone): string { switch (timeZone) { case 'utc': return 'Etc/UTC'; case 'browser': return Intl.DateTimeFormat().resolvedOptions().timeZone; default: return timeZone; } }