mirror of https://github.com/grafana/grafana
Docs: adding documentation for the new time zone functionality (#24080)
* added timezone override information. * added usp. * added some code comments. * added more documentation of the date and time functionality. * Update docs/sources/reference/timerange.md Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com> * some small adjustments. * fixed comments according to feedback. * Update packages/grafana-data/src/datetime/parser.ts * Update packages/grafana-data/src/datetime/parser.ts * Update packages/grafana-data/src/datetime/parser.ts * fixed final feedback. Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>pull/24389/head
parent
61eba3e275
commit
dc49d81693
@ -1,17 +1,46 @@ |
|||||||
import { TimeZone, DefaultTimeZone } from '../types/time'; |
import { TimeZone, DefaultTimeZone } from '../types/time'; |
||||||
|
|
||||||
|
/** |
||||||
|
* The type describing date and time options. Used for all the helper functions |
||||||
|
* available to parse or format date and time values. |
||||||
|
* |
||||||
|
* @public |
||||||
|
*/ |
||||||
export interface DateTimeOptions { |
export interface DateTimeOptions { |
||||||
|
/** |
||||||
|
* Specify this if you want to override the timeZone used when parsing or formatting |
||||||
|
* a date and time value. If no timeZone is set, the default timeZone for the current |
||||||
|
* user is used. |
||||||
|
*/ |
||||||
timeZone?: TimeZone; |
timeZone?: TimeZone; |
||||||
} |
} |
||||||
|
|
||||||
|
/** |
||||||
|
* The type to describe the time zone resolver function that will be used to access |
||||||
|
* the default time zone of a user. |
||||||
|
* |
||||||
|
* @public |
||||||
|
*/ |
||||||
export type TimeZoneResolver = () => TimeZone | undefined; |
export type TimeZoneResolver = () => TimeZone | undefined; |
||||||
|
|
||||||
let defaultTimeZoneResolver: TimeZoneResolver = () => DefaultTimeZone; |
let defaultTimeZoneResolver: TimeZoneResolver = () => DefaultTimeZone; |
||||||
|
|
||||||
|
/** |
||||||
|
* Used by Grafana internals to set the {@link TimeZoneResolver} to access the current |
||||||
|
* user timeZone. |
||||||
|
* |
||||||
|
* @internal |
||||||
|
*/ |
||||||
export const setTimeZoneResolver = (resolver: TimeZoneResolver) => { |
export const setTimeZoneResolver = (resolver: TimeZoneResolver) => { |
||||||
defaultTimeZoneResolver = resolver ?? defaultTimeZoneResolver; |
defaultTimeZoneResolver = resolver ?? defaultTimeZoneResolver; |
||||||
}; |
}; |
||||||
|
|
||||||
|
/** |
||||||
|
* Used within this package to get timeZone from an options value. If timezone |
||||||
|
* is not set in the options, then a default timeZone is be resolved instead. |
||||||
|
* |
||||||
|
* @internal |
||||||
|
*/ |
||||||
export const getTimeZone = <T extends DateTimeOptions>(options?: T): TimeZone => { |
export const getTimeZone = <T extends DateTimeOptions>(options?: T): TimeZone => { |
||||||
return options?.timeZone ?? defaultTimeZoneResolver() ?? DefaultTimeZone; |
return options?.timeZone ?? defaultTimeZoneResolver() ?? DefaultTimeZone; |
||||||
}; |
}; |
||||||
|
|||||||
Loading…
Reference in new issue