rooks
Version:
Collection of awesome react hooks
38 lines (37 loc) • 1.54 kB
TypeScript
import type { Temporal } from "@js-temporal/polyfill";
type TemporalNowPrecision = "day" | "minute" | "second";
type TemporalNowKind = "instant" | "zoned" | "plainDateTime" | "plainDate";
type BaseTemporalNowOptions = {
precision?: TemporalNowPrecision;
timeZone?: string;
};
type InstantOptions = BaseTemporalNowOptions & {
kind?: "instant";
};
type ZonedOptions = BaseTemporalNowOptions & {
kind: "zoned";
};
type PlainDateTimeOptions = BaseTemporalNowOptions & {
kind: "plainDateTime";
};
type PlainDateOptions = BaseTemporalNowOptions & {
kind: "plainDate";
};
type TemporalNowOptions = InstantOptions | ZonedOptions | PlainDateTimeOptions | PlainDateOptions;
/**
* useTemporalNow
* Returns the current time as Temporal values and keeps it aligned to
* the requested precision boundary.
*
* On the server this hook returns null so hydration remains deterministic.
* Returns null while the Temporal polyfill is loading.
*
* @param options Configuration options for the current Temporal value
* @see https://rooks.vercel.app/docs/hooks/useTemporalNow
*/
declare function useTemporalNow(options?: InstantOptions): Temporal.Instant | null;
declare function useTemporalNow(options: ZonedOptions): Temporal.ZonedDateTime | null;
declare function useTemporalNow(options: PlainDateTimeOptions): Temporal.PlainDateTime | null;
declare function useTemporalNow(options: PlainDateOptions): Temporal.PlainDate | null;
export { useTemporalNow };
export type { TemporalNowOptions, TemporalNowKind, TemporalNowPrecision };