45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
"use client";
|
|
|
|
import { useEffect, useState } from "react";
|
|
|
|
const QUOTES = [
|
|
{ text: "世界那么大,你的办公室可以在任何地方。", emoji: "🌍" },
|
|
{ text: "不是逃离生活,而是用科技重新定义生活。", emoji: "💻" },
|
|
{ text: "护照是最好的投资,好奇心是最好的指南针。", emoji: "🛂" },
|
|
{ text: "在巴厘岛写代码,在里斯本开会议,在清迈看日落。", emoji: "☀️" },
|
|
{ text: "慢下来,你会发现远方其实很近。", emoji: "✈️" },
|
|
{ text: "远程工作不是躺平,而是选择自己的时区与节奏。", emoji: "🕐" },
|
|
{ text: "背包里装的是衣服,心里装的是下一座城。", emoji: "🧳" },
|
|
];
|
|
|
|
export default function DailyQuote() {
|
|
const [idx, setIdx] = useState(0);
|
|
|
|
useEffect(() => {
|
|
const day = Math.floor(Date.now() / 86400000);
|
|
setIdx(day % QUOTES.length);
|
|
}, []);
|
|
|
|
const q = QUOTES[idx];
|
|
|
|
return (
|
|
<section className="section quote-section" id="quote">
|
|
<div className="container">
|
|
<div className="quote-card reveal">
|
|
<span className="quote-emoji">{q.emoji}</span>
|
|
<blockquote>“{q.text}”</blockquote>
|
|
<div className="quote-footer">
|
|
<span className="section-tag">✨ 今日 nomadro</span>
|
|
<button
|
|
className="btn btn-ghost btn-sm"
|
|
onClick={() => setIdx((i) => (i + 1) % QUOTES.length)}
|
|
>
|
|
换一句 →
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|