/* global React */ const { useState, useEffect } = React; function useCounter(target, { duration = 1800, start = 0, delay = 0 } = {}) { const [v, setV] = useState(start); useEffect(() => { let raf; const t0 = performance.now() + delay; const step = (now) => { const elapsed = Math.max(0, now - t0); const p = Math.min(1, elapsed / duration); // easeOutExpo const eased = p === 1 ? 1 : 1 - Math.pow(2, -10 * p); setV(start + (target - start) * eased); if (p < 1) raf = requestAnimationFrame(step); }; raf = requestAnimationFrame(step); return () => cancelAnimationFrame(raf); }, [target, duration, start, delay]); return v; } function Counter({ to, digits = 0, delay = 0, suffix = "" }) { const v = useCounter(to, { delay }); const n = digits > 0 ? v.toFixed(digits) : Math.round(v).toLocaleString("ja-JP"); return {n}{suffix}; } function Hero() { const [time, setTime] = useState(() => new Date()); useEffect(() => { const id = setInterval(() => setTime(new Date()), 1000); return () => clearInterval(id); }, []); const hh = String(time.getHours()).padStart(2, "0"); const mm = String(time.getMinutes()).padStart(2, "0"); const ss = String(time.getSeconds()).padStart(2, "0"); const ymd = `${time.getFullYear()}.${String(time.getMonth()+1).padStart(2,"0")}.${String(time.getDate()).padStart(2,"0")}`; return ( {/* Top meta row */} FUKUOKA 33°31′N / 130°25′E NOW {ymd} {hh}:{mm}:{ss} STATUS 本日 受付中 {/* Eyebrow */} Unwanted Goods Removal & Reuse — Est. 2026 {/* H1 */} 福岡の、 ちゃんとした 不用品回収。 許認可・明朗価格・適正処分。 那珂川市から、福岡県全域へ。 {/* Counters */} 対応市町 市町村 福岡県全域 最短対応 日 即日出動可 見積り後 追加請求 円 1円も上げません 古物商許可 番号 第 901071510030 号 福岡県公安委員会 {/* CTA */} LINEで無料相談 → TEL 090-7778-1111 受付 8:00〜22:00 / 年中無休 {/* Scroll hint */} SCROLL ); } window.Hero = Hero; window.Counter = Counter;
許認可・明朗価格・適正処分。 那珂川市から、福岡県全域へ。