๐Ÿ“ฆ cloudflare / vinext

๐Ÿ“„ clock.tsx ยท 23 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23"use client";

import { useState, useEffect } from "react";
import { s } from "../_styles.js";

// Client-only component loaded via next/dynamic with ssr: false
export default function Clock() {
  const [time, setTime] = useState(new Date().toLocaleTimeString());

  useEffect(() => {
    const timer = setInterval(() => {
      setTime(new Date().toLocaleTimeString());
    }, 1000);
    return () => clearInterval(timer);
  }, []);

  return (
    <p data-testid="clock" style={s.mono}>
      clock (dynamic, ssr: false): {time}
    </p>
  );
}