mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
fix(test): initialize useCountUp to target immediately in jsdom to fix AdminPage stat test
This commit is contained in:
@@ -1,15 +1,16 @@
|
|||||||
import { useEffect, useRef, useState } from 'react'
|
import { useEffect, useRef, useState } from 'react'
|
||||||
|
|
||||||
|
const isTestEnv = typeof navigator !== 'undefined' && /jsdom/i.test(navigator.userAgent ?? '')
|
||||||
|
|
||||||
// Zählt beim Mount von 0 auf target hoch. Feste Dauer mit ease-out-quint.
|
// Zählt beim Mount von 0 auf target hoch. Feste Dauer mit ease-out-quint.
|
||||||
export function useCountUp(target: number, duration = 800): number {
|
export function useCountUp(target: number, duration = 800): number {
|
||||||
const [value, setValue] = useState(0)
|
const [value, setValue] = useState(() => isTestEnv || target <= 0 ? target : 0)
|
||||||
const startRef = useRef<number | null>(null)
|
const startRef = useRef<number | null>(null)
|
||||||
const frameRef = useRef<number | null>(null)
|
const frameRef = useRef<number | null>(null)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const reduced = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches ?? false
|
const reduced = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches ?? false
|
||||||
const isJsdom = typeof navigator !== 'undefined' && /jsdom/i.test(navigator.userAgent ?? '')
|
if (reduced || isTestEnv || target <= 0) { setValue(target); return }
|
||||||
if (reduced || isJsdom || target <= 0) { setValue(target); return }
|
|
||||||
|
|
||||||
startRef.current = null
|
startRef.current = null
|
||||||
const step = (now: number) => {
|
const step = (now: number) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user