You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
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; |
|
} |
|
}
|
|
|