You can customize the visual output of the countdown or signal completion using the renderer prop and the onComplete callback.
The renderer prop accepts a function that receives an object containing time units (hours, minutes, seconds, etc.) and a completed boolean. This allows you to return different UI elements based on whether the countdown has finished.
import { createRoot } from 'react-dom/client';
import Countdown from 'react-countdown';
const Completionist = () => <span>You are good to go!</span>;
const renderer = ({ hours, minutes, seconds, completed }) => {
return completed ? (
<Completionist />
) : (
<span>{hours}:{minutes}:{seconds}</span>
);
};
createRoot(document.getElementById('root')).render(
<Countdown date={Date.now() + 5000} renderer={renderer} />
);
import { createRoot } from 'react-dom/client';
import Countdown from 'react-countdown';
// Random component
const Completionist = () => <span>You are good to go!</span>;
// Renderer callback with completed condition
const renderer = ({ hours, minutes, seconds, completed }) => {
return completed ? (
<Completionist />
) : (
<span>
{hours}:{minutes}:{seconds}
</span>
);
};
createRoot(document.getElementById('root')).render(
<Countdown date={Date.now() + 5000} renderer={renderer} />
);