Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/app/help/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import FaqSection from '@/components/FaqSection';

export default function HelpPage() {
return (
<div className="max-w-3xl mx-auto p-8">
{/* 1. νŽ˜μ΄μ§€ 제λͺ© 및 μ„€λͺ… */}
<header className="text-center mb-12">
<h1 className="text-4xl font-bold mb-2">도움말</h1>
<p className="text-lg text-slate-500">
Check Time μ„œλΉ„μŠ€μ— λŒ€ν•΄ κΆκΈˆν•œ 점을 ν•΄κ²°ν•΄ λ³΄μ„Έμš”.
</p>
</header>

{/* 2. 자주 λ¬»λŠ” 질문 (FAQ) μ»΄ν¬λ„ŒνŠΈ */}
<FaqSection />

{/* 3. μΆ”κ°€ 문의 μ„Ήμ…˜ */}
<section className="text-center mt-12">
<h3 className="text-xl font-semibold mb-4">
μ›ν•˜λŠ” 닡변을 μ°Ύμ§€ λͺ»ν•˜μ…¨λ‚˜μš”?
</h3>
<p className="text-slate-600 mb-6 font-medium">
πŸ’¬ 1:1 λ¬Έμ˜ν•˜κΈ° [clolc410@gmail.com]
</p>
</section>
</div>
);
}
2 changes: 1 addition & 1 deletion src/app/ranking/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export default function RankingPage() {
const [loading, setLoading] = useState<boolean>(true);
const [error, setError] = useState<string | null>(null);

const categories = ['전체', 'ν‹°μΌ“νŒ…', 'λŒ€ν•™κ΅'];
const categories = ['전체', 'ν‹°μΌ“νŒ…', 'λŒ€ν•™'];

const fetchSites = useCallback(async () => {
setLoading(true);
Expand Down
47 changes: 47 additions & 0 deletions src/components/FaqSection.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// file: components/FaqSection.tsx

import FaqItem from './ui/FaqItem';

// FAQ λ°μ΄ν„°λŠ” λ™μΌν•˜κ²Œ μœ μ§€ν•©λ‹ˆλ‹€.
const faqData = [
{
id: 1,
question: 'μ²΄ν¬νƒ€μž„μ˜ μ„œλ²„ μ‹œκ°„μ€ μ •ν™•ν•œκ°€μš”?',
answer:
'λ„€, μ²΄ν¬νƒ€μž„μ€ μ£Όμš” ν‹°μΌ“νŒ… μ‚¬μ΄νŠΈμ˜ ν‘œμ€€ μ„œλ²„ μ‹œκ°„μ„ μ‹€μ‹œκ°„μœΌλ‘œ λ™κΈ°ν™”ν•˜μ—¬ 였차 μ—†λŠ” μ •ν™•ν•œ μ‹œκ°„μ„ μ œκ³΅ν•©λ‹ˆλ‹€.',
},
{
id: 2,
question: 'μ§€μ›ν•˜λŠ” ν‹°μΌ“νŒ… μ‚¬μ΄νŠΈλŠ” μ–΄λ””μΈκ°€μš”?',
answer:
'ν˜„μž¬ μΈν„°νŒŒν¬, YES24, λ©œλ‘ ν‹°μΌ“, 티켓링크 λ“± κ΅­λ‚΄ μ£Όμš” ν‹°μΌ“νŒ… μ‚¬μ΄νŠΈλ₯Ό μ§€μ›ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.',
},
{
id: 3,
question: 'λ°˜μ‘μ†λ„ κ²Œμž„μ€ ν‹°μΌ“νŒ…μ— μ–΄λ–€ 도움이 λ˜λ‚˜μš”?',
answer:
'λ°˜μ‘μ†λ„ κ²Œμž„μ„ 톡해 μžμ‹ μ˜ 클릭 λ°˜μ‘μ†λ„λ₯Ό μΈ‘μ •ν•˜κ³  κ°œμ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기둝은 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜μ–΄, μ•Œλ¦Ό κΈ°λŠ₯ κ°œμ„ μ— ν™œμš©λ©λ‹ˆλ‹€.',
},
{
id: 4,
question: 'μ•Œλ¦Ό κΈ°λŠ₯은 μ–΄λ– ν•œ μ›λ¦¬λ‘œ μž‘λ™ν•˜λ‚˜μš”?',
answer:
'μ²΄ν¬νƒ€μž„μ˜ μ•Œλ¦Ό κΈ°λŠ₯은 url μ„œλ²„ μ‹œκ°„μ— rtt(왕볡 μ‹œκ°„)κ³Ό μ‚¬μš©μž λ°˜μ‘μ†λ„ 기둝을 λ°˜μ˜ν•˜μ—¬ 졜적의 타이밍에 μ•Œλ¦Όμ„ μ œκ³΅ν•©λ‹ˆλ‹€.',
},
];

export default function FaqSection() {
return (
<main className="bg-white rounded-xl shadow-lg">
<div className="divide-y divide-slate-100">
{faqData.map((item) => (
<FaqItem
key={item.id}
question={item.question}
answer={item.answer}
/>
))}
</div>
</main>
);
}
20 changes: 20 additions & 0 deletions src/components/ui/FaqItem.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use client';

interface FaqItemProps {
question: string;
answer: string;
}

export default function FaqItem({ question, answer }: FaqItemProps) {
return (
<details className="group p-6">
<summary className="flex justify-between items-center font-bold text-lg cursor-pointer list-none">
{question}
<span className="transition-transform duration-200 group-open:rotate-45">
+
</span>
</summary>
<div className="text-slate-600 mt-4 leading-relaxed">{answer}</div>
</details>
);
}
2 changes: 1 addition & 1 deletion src/components/ui/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export default function Header(props: HeaderProps) {
>
뢁마크
</Link>
<Link href="#" className="hover:text-black transition-colors">
<Link href="/help" className="hover:text-black transition-colors">
도움말
</Link>
</nav>
Expand Down