useNow
The current time as a reactive Date, updated every interval ms (default 1000). Cross-platform — import from @sigx/use.
import { computed } from 'sigx';
import { useNow } from '@sigx/use';
const now = useNow();
const clock = computed(() => now.value.toLocaleTimeString());
The
Dateis held by reference and replaced wholesale on each tick —Dateis an exotic built-in sigx deliberately never proxies. Readnow.valueto get the current instant; don't mutate it in place.
The timer clears with the owning scope (component setup or the innermost effectScope()).
Controls form
Pass { controls: true } to also get Pausable controls alongside the time. The return shape then becomes { now, pause, resume, isActive }:
import { useNow } from '@sigx/use';
const { now, pause, resume, isActive } = useNow({ controls: true, interval: 1000 });
pause(); // freeze the clock
Signature
function useNow(): ReadSignal<Date>;
function useNow(options: UseNowOptions<true>): { now: ReadSignal<Date> } & Pausable;
function useNow(options: UseNowOptions<false>): ReadSignal<Date>;
Options
| Option | Type | Default | Description |
|---|---|---|---|
interval | number | 1000 | Update period in ms. |
controls | boolean | false | Also return pause/resume/isActive controls. |
Returns
| Call | Returns |
|---|---|
useNow() | ReadSignal<Date> — the current time, bare. |
useNow({ controls: true }) | { now: ReadSignal<Date> } & Pausable — the time plus pause/resume/isActive. |
Platform: everywhere (setInterval).
See also
useIntervalFn— the timeruseNowis built on.useTimeoutFn— a restartable one-shot timer.- Conventions → Control handles — the
Pausablecontract the controls form returns.
