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.
|
|
|
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 getDashboardUid(url: string): string {
|
|
|
|
const matches = new URL(url).pathname.match(/\/d\/([^/]+)/);
|
|
|
|
if (!matches) {
|
|
|
|
throw new Error(`Couldn't parse uid from ${url}`);
|
|
|
|
} 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;
|
|
|
|
}
|
|
|
|
}
|