📄 useCountdown¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 5 |
| 📦 Imports | 8 |
| 📐 Interfaces | 2 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/core/useCountdown/index.ts
📦 Imports¶
| Name | Source |
|---|---|
AnyFn |
@vueuse/shared |
Pausable |
@vueuse/shared |
MaybeRefOrGetter |
vue |
ShallowRef |
vue |
ConfigurableScheduler |
../_configurable |
useIntervalFn |
@vueuse/shared |
shallowRef |
vue |
toValue |
vue |
Functions¶
useCountdown(initialCountdown: MaybeRefOrGetter<number>, options: UseCountdownOptions): UseCountdownReturn¶
Reactive countdown timer in seconds.
Parameters:
initialCountdownany: No descriptionoptionsany: No description
See: https://vueuse.org/useCountdown
Raw JSDoc
Calls:
shallowRef (from vue)toValue (from vue)useIntervalFn (from @vueuse/shared)scheduleronTickcontrols.pauseonCompleteresetcontrols.resume
Code
export function useCountdown(initialCountdown: MaybeRefOrGetter<number>, options: UseCountdownOptions = {}): UseCountdownReturn {
const remaining = shallowRef(toValue(initialCountdown))
const {
scheduler = (cb: AnyFn) => useIntervalFn(cb, 1000, { immediate: false }),
onTick,
onComplete,
} = options
const controls = scheduler(() => {
const value = remaining.value - 1
remaining.value = value < 0 ? 0 : value
onTick?.()
if (remaining.value <= 0) {
controls.pause()
onComplete?.()
}
})
const reset = (countdown?: MaybeRefOrGetter<number>) => {
remaining.value = toValue(countdown) ?? toValue(initialCountdown)
}
const stop = () => {
controls.pause()
reset()
}
const resume = () => {
if (!controls.isActive.value) {
if (remaining.value > 0) {
controls.resume()
}
}
}
const start = (countdown?: MaybeRefOrGetter<number>) => {
reset(countdown)
controls.resume()
}
return {
remaining,
reset,
stop,
start,
pause: controls.pause,
resume,
isActive: controls.isActive,
}
}
Internal helpers¶
Declared inside another function in this file.
reset(countdown: MaybeRefOrGetter<number>): void¶
Parameters:
countdownMaybeRefOrGetter<number>
Returns: void
Calls:
toValue (from vue)
Code
stop(): void¶
Returns: void
Calls:
controls.pausereset
resume(): void¶
Returns: void
Calls:
controls.resume
start(countdown: MaybeRefOrGetter<number>): void¶
Parameters:
countdownMaybeRefOrGetter<number>
Returns: void
Calls:
resetcontrols.resume
Interfaces¶
UseCountdownOptions¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
onComplete |
() => void |
✓ | not shown |
onTick |
() => void |
✓ | not shown |
UseCountdownReturn¶
Interface Code
export interface UseCountdownReturn extends Pausable {
/**
* Current countdown value.
*/
remaining: ShallowRef<number>
/**
* Resets the countdown and repeatsLeft to their initial values.
*/
reset: (countdown?: MaybeRefOrGetter<number>) => void
/**
* Stops the countdown and resets its state.
*/
stop: () => void
/**
* Reset the countdown and start it again.
*/
start: (countdown?: MaybeRefOrGetter<number>) => void
}
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
remaining |
ShallowRef<number> |
✗ | not shown |
reset |
(countdown?: MaybeRefOrGetter<number>) => void |
✗ | not shown |
stop |
() => void |
✗ | not shown |
start |
(countdown?: MaybeRefOrGetter<number>) => void |
✗ | not shown |
Generated by Syntax Scribe