2025-09-16 17:19:58 +08:00

125 lines
5.7 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use client';
import { useState } from 'react';
import Link from 'next/link';
import Header from '@/app/components/Header';
import Footer from '@/app/components/Footer';
import { supportTranslations, type SupportLanguage } from '../../translations';
interface SupportPageClientProps {
locale: string;
}
export default function SupportPageClient({ locale }: SupportPageClientProps) {
const [language, setLanguage] = useState<SupportLanguage>(
locale === 'zh' ? 'zh-CN' : locale === 'zh-TW' ? 'zh-TW' : 'en',
);
const [activeTab, setActiveTab] = useState('faq');
const t = supportTranslations[language] || supportTranslations['zh-CN'];
const handleLanguageChange = (newLanguage: string) => {
const validLanguage = newLanguage as SupportLanguage;
setLanguage(validLanguage);
};
return (
<div className="min-h-screen bg-white">
<Header
language={language}
setLanguage={handleLanguageChange}
translations={t}
locale={locale}
/>
<section className="bg-blue-600 text-white h-96 flex items-center justify-center">
<div className="max-w-6xl mx-auto px-4 text-center">
<h1 className="text-4xl font-bold mb-4">{t.title}</h1>
<p className="text-xl">{t.subtitle}</p>
</div>
</section>
<section className="py-16">
<div className="max-w-6xl mx-auto px-4">
<div className="flex justify-center mb-8">
<div className="flex space-x-1 bg-gray-100 p-1 rounded-lg">
{Object.entries(t.tabs).map(([key, label]) => (
<button
key={key}
onClick={() => setActiveTab(key)}
className={`px-6 py-2 rounded-md ${
activeTab === key
? 'bg-blue-600 text-white'
: 'text-gray-700 hover:bg-gray-200'
}`}
>
{label}
</button>
))}
</div>
</div>
{activeTab === 'faq' && (
<div>
<h2 className="text-3xl font-bold text-center mb-12">{t.faq.title}</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
{t.faq.categories.map((category, index) => (
<div key={index} className="bg-white rounded-lg shadow-lg p-6">
<h3 className="text-xl font-bold mb-4">{category.name}</h3>
<div className="space-y-4">
{category.questions.map((item, qIndex) => (
<div key={qIndex}>
<h4 className="font-semibold text-gray-800 mb-2">
{item.q}
</h4>
<p className="text-gray-600 text-sm">
{item.a}
</p>
</div>
))}
</div>
</div>
))}
</div>
</div>
)}
{activeTab === 'contact' && (
<div>
<h2 className="text-3xl font-bold text-center mb-12">
{t.contactSupport.title}
</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
{t.contactSupport.methods.map((method, index) => (
<div
key={index}
className="bg-white rounded-lg shadow-lg p-6 text-center"
>
<div className="text-4xl mb-4">{method.icon}</div>
<h3 className="text-xl font-bold mb-2">{method.type}</h3>
<p className="text-blue-600 font-semibold mb-2">
{method.value}
</p>
<p className="text-gray-600 text-sm">
{method.description}
</p>
</div>
))}
</div>
</div>
)}
{(activeTab === 'docs' || activeTab === 'tickets') && (
<div className="text-center py-16">
<h2 className="text-2xl font-bold mb-4"></h2>
<p className="text-gray-600"></p>
</div>
)}
</div>
</section>
<Footer translations={t} />
</div>
);
}