import { useSystem } from '@idyllic/react';
import type { Counter } from '../systems/Counter';
import { useMemo } from 'react';
export default function CounterUI() {
const { count, lastUpdatedBy, increment, decrement, reset } = useSystem<Counter>();
const userId = useMemo(() => Math.random().toString(36).slice(2, 8), []);
return (
<div className="flex flex-col items-center justify-center min-h-screen">
<div className="text-6xl font-bold mb-8">{count}</div>
<div className="flex gap-4">
<button
onClick={() => decrement(userId)}
className="w-16 h-16 text-2xl bg-gray-200 rounded-full"
>
-
</button>
<button
onClick={() => increment(userId)}
className="w-16 h-16 text-2xl bg-blue-600 text-white rounded-full"
>
+
</button>
</div>
<button onClick={reset} className="mt-8 text-gray-500 underline">
Reset
</button>
{lastUpdatedBy && (
<p className="mt-4 text-sm text-gray-400">
Last updated by: {lastUpdatedBy}
{lastUpdatedBy === userId && ' (you)'}
</p>
)}
</div>
);
}