import { Component, createEffect, onCleanup } from "solid-js"; interface CountdownCircleTimerProps { duration: number; initialRemainingTime: number; size: number; strokeWidth: number; colors: string; children: () => any; } const CountdownCircleTimer: Component = (props) => { const radius = (props.size - props.strokeWidth) / 2; const circumference = radius * 2 * Math.PI; // Calculate progress (0 to 1) const progress = () => props.initialRemainingTime / props.duration; const strokeDashoffset = () => circumference * (1 - progress()); return (
{/* Background circle */} {/* Progress circle */} {/* Timer text in center */}
{props.children()}
); }; export default CountdownCircleTimer;