readysite / example / components / Counter.tsx
940 B
Counter.tsx
import { useState } from 'react';

interface CounterProps {
  initial?: number;
  label?: string;
}

export function Counter({ initial = 0, label = 'Clicks' }: CounterProps) {
  const [count, setCount] = useState(initial);

  return (
    <div className="card bg-base-100 shadow-xl">
      <div className="card-body items-center text-center">
        <h2 className="card-title">
          {label}
        </h2>

        <div className="text-6xl font-bold my-4">
          {count}
        </div>

        <div className="card-actions">
          <button className="btn btn-primary" onClick={() => setCount(c => c + 1)}>
            +1
          </button>

          <button className="btn btn-secondary" onClick={() => setCount(c => c - 1)}>
            -1
          </button>

          <button className="btn btn-ghost" onClick={() => setCount(initial)}>
            Reset
          </button>
        </div>
      </div>
    </div>
  );
}
← Back