Aller au contenu

Countdown

Minuteur de compte à rebours avec format et style personnalisables.

import { Countdown } from 'asterui'

Compte à rebours de base

Minuteur de compte à rebours simple.

01:00:00
import { Countdown } from 'asterui'
import { useMemo } from 'react'

function App() {
  const target = useMemo(() => Date.now() + 60 * 60 * 1000, [])
  
  return (
      <Countdown value={target} />
    )
}

export default App

Avec jours

Inclure les jours dans le compte à rebours.

03:00:00:00
import { Countdown } from 'asterui'
import { useMemo } from 'react'

function App() {
  const target = useMemo(() => Date.now() + 3 * 24 * 60 * 60 * 1000, [])
  
  return (
      <Countdown value={target} format="DD:HH:MM:SS" />
    )
}

export default App

Tailles

Différentes variantes de taille.

01:00:00
01:00:00
01:00:00
01:00:00
import { Countdown, Space } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 60 * 60 * 1000)
  
  return (
      <Space direction="vertical" size="lg">
        <Countdown value={target} size="xs" />
        <Countdown value={target} size="sm" />
        <Countdown value={target} size="md" />
        <Countdown value={target} size="lg" />
      </Space>
    )
}

export default App

Avec étiquettes

Afficher les étiquettes sous chaque unité.

02days
00hours
00min
00sec
import { Countdown } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 2 * 24 * 60 * 60 * 1000)
  
  return (
      <Countdown
        value={target}
        format="DD:HH:MM:SS"
        showLabels
      />
    )
}

export default App

Style encadré

Chaque unité dans une boîte stylisée.

01days
00hours
00min
00sec
import { Countdown } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 24 * 60 * 60 * 1000)
  
  return (
      <Countdown
        value={target}
        format="DD:HH:MM:SS"
        showLabels
        boxed
      />
    )
}

export default App

Avec callback

Exécuter un callback lorsque le compte à rebours se termine.

00:20
import { Countdown, notification } from 'asterui'
import { useState } from 'react'

function App() {
  const [target, setTarget] = useState(() => Date.now() + 20 * 1000)
  
  const handleFinish = () => {
    notification.success({ message: 'Countdown finished!' })
    setTarget(Date.now() + 20 * 1000) // Restart
  }
  
  return (
      <Countdown
        key={target}
        value={target}
        format="MM:SS"
        onFinish={handleFinish}
      />
    )
}

export default App
PropriétéDescriptionTypeDéfaut
valueHorodatage cible en millisecondes ou objet Datenumber | Date-
formatChaîne de format : ‘D’ jours, ‘H’ heures, ‘M’ minutes, ‘S’ secondesstring'HH:MM:SS'
onFinishCallback lorsque le compte à rebours atteint zéro() => void-
onChangeCallback à chaque tic avec le temps restant(value: number) => void-
sizeVariante de taille'xs' | 'sm' | 'md' | 'lg' | 'xl''md'
showLabelsAfficher les étiquettes sous chaque unitébooleanfalse
labelsÉtiquettes personnalisées pour chaque unité{ days?: string, hours?: string, minutes?: string, seconds?: string }-
boxedAfficher le style encadré autour de chaque unitébooleanfalse
classNameClasses CSS supplémentairesstring-
  • Utilise aria-live pour annoncer les mises à jour du compte à rebours
  • Fournit aria-label pour chaque unité de compte à rebours
  • Les étiquettes sont visuellement associées à leurs valeurs