lifekline / components /HelpGuide.tsx
xiaobo ren
Rebrand to 姣旇抗: Update brand name, colors (primrose yellow #FFF143, fresh green #98FB98), logo icons, and theme throughout application
339fff1
import React, { useState } from 'react';
import { HelpCircle, ChevronDown, ChevronUp, ExternalLink, Key, BookOpen, AlertTriangle, CheckCircle2 } from 'lucide-react';
interface HelpGuideProps {
defaultOpen?: boolean;
}
const HelpGuide: React.FC<HelpGuideProps> = ({ defaultOpen = false }) => {
const [isOpen, setIsOpen] = useState(defaultOpen);
const [activeTab, setActiveTab] = useState<'usage' | 'api'>('usage');
return (
<div className="w-full max-w-md bg-white rounded-2xl shadow-lg border border-gray-100 overflow-hidden">
{/* Header - Always visible */}
<button
onClick={() => setIsOpen(!isOpen)}
className="w-full px-6 py-4 flex items-center justify-between bg-gradient-to-r from-indigo-50 to-purple-50 hover:from-indigo-100 hover:to-purple-100 transition-colors"
>
<div className="flex items-center gap-3">
<div className="bg-indigo-600 text-white p-2 rounded-lg">
<HelpCircle className="w-5 h-5" />
</div>
<div className="text-left">
<h3 className="font-bold text-gray-800">使用帮助</h3>
<p className="text-xs text-gray-500">点击展开查看详细教程</p>
</div>
</div>
{isOpen ? (
<ChevronUp className="w-5 h-5 text-gray-400" />
) : (
<ChevronDown className="w-5 h-5 text-gray-400" />
)}
</button>
{/* Expandable Content */}
{isOpen && (
<div className="animate-fade-in">
{/* Tab Buttons */}
<div className="flex border-b border-gray-100">
<button
onClick={() => setActiveTab('usage')}
className={`flex-1 px-4 py-3 text-sm font-bold flex items-center justify-center gap-2 transition-colors ${
activeTab === 'usage'
? 'text-indigo-600 border-b-2 border-indigo-600 bg-indigo-50/50'
: 'text-gray-500 hover:text-gray-700 hover:bg-gray-50'
}`}
>
<BookOpen className="w-4 h-4" />
使用教程
</button>
<button
onClick={() => setActiveTab('api')}
className={`flex-1 px-4 py-3 text-sm font-bold flex items-center justify-center gap-2 transition-colors ${
activeTab === 'api'
? 'text-emerald-600 border-b-2 border-emerald-600 bg-emerald-50/50'
: 'text-gray-500 hover:text-gray-700 hover:bg-gray-50'
}`}
>
<Key className="w-4 h-4" />
API设置
</button>
</div>
{/* Content */}
<div className="p-5 max-h-96 overflow-y-auto">
{activeTab === 'usage' ? (
<div className="space-y-4 text-sm">
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-indigo-100 text-indigo-600 rounded-full flex items-center justify-center text-xs font-bold">1</span>
获取八字信息
</h4>
<p className="text-gray-600 pl-8">
打开
<a
href="https://pcbz.iwzwh.com/#/paipan/index"
target="_blank"
rel="noopener noreferrer"
className="text-indigo-600 hover:underline mx-1 inline-flex items-center gap-1"
>
问真八字排盘 <ExternalLink className="w-3 h-3" />
</a>
输入出生信息,点击【开始排盘】
</p>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-indigo-100 text-indigo-600 rounded-full flex items-center justify-center text-xs font-bold">2</span>
记录关键信息
</h4>
<div className="text-gray-600 pl-8 space-y-1">
<p>选择【专业细盘】,记录以下内容:</p>
<ul className="list-disc list-inside space-y-1 text-gray-500">
<li>四柱:年柱、月柱、日柱、时柱</li>
<li>起运年龄:看"小运"右边第一个运上面的年龄(虚岁)</li>
<li>第一步大运:第一个大运的干支</li>
</ul>
</div>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-indigo-100 text-indigo-600 rounded-full flex items-center justify-center text-xs font-bold">3</span>
填写表单
</h4>
<p className="text-gray-600 pl-8">
将信息填入本站表单,或使用【智能输入】模式自动计算。
</p>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-indigo-100 text-indigo-600 rounded-full flex items-center justify-center text-xs font-bold">4</span>
生成报告
</h4>
<p className="text-gray-600 pl-8">
点击【生成比迹报告】,等待3-5分钟即可获得完整报告。
</p>
{/* Quick Link */}
<a
href="https://jcnjmxofi1yl.feishu.cn/wiki/OPa4woxiBiFP9okQ9yWcbcXpnEw"
target="_blank"
rel="noopener noreferrer"
className="mt-4 flex items-center justify-center gap-2 bg-indigo-50 text-indigo-600 px-4 py-2.5 rounded-lg hover:bg-indigo-100 transition-colors font-medium"
>
<ExternalLink className="w-4 h-4" />
查看图文详细教程
</a>
</div>
) : (
<div className="space-y-4 text-sm">
<div className="bg-amber-50 border border-amber-200 rounded-lg p-3 flex gap-2">
<AlertTriangle className="w-4 h-4 text-amber-600 flex-shrink-0 mt-0.5" />
<p className="text-amber-800 text-xs">
<strong>推荐使用免费模式</strong>:填写邮箱密码即可,系统自动注册登录。如需自定义API请参考以下教程。
</p>
</div>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-emerald-100 text-emerald-600 rounded-full flex items-center justify-center text-xs font-bold">1</span>
购买API
</h4>
<p className="text-gray-600 pl-8">
去闲鱼搜索 <strong>"gemini API"</strong>,大概5块钱能用60次。
</p>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-emerald-100 text-emerald-600 rounded-full flex items-center justify-center text-xs font-bold">2</span>
获取配置信息
</h4>
<div className="text-gray-600 pl-8 space-y-1">
<p>卖家会提供:</p>
<ul className="list-disc list-inside space-y-1 text-gray-500">
<li><strong>URL地址</strong>:如 https://xxx.com/v1</li>
<li><strong>API Key</strong>:sk-xxxxxxxx...</li>
<li><strong>推荐模型</strong>:gemini-3-pro-preview</li>
</ul>
</div>
<h4 className="font-bold text-gray-800 flex items-center gap-2">
<span className="w-6 h-6 bg-emerald-100 text-emerald-600 rounded-full flex items-center justify-center text-xs font-bold">3</span>
填写API配置
</h4>
<p className="text-gray-600 pl-8">
在表单底部选择【自定义API】,填入URL、Key和模型名称。
</p>
<h4 className="font-bold text-gray-800 flex items-center gap-2 text-emerald-700">
<CheckCircle2 className="w-5 h-5" />
推荐模型
</h4>
<div className="pl-8 space-y-1">
<code className="block bg-gray-100 px-2 py-1 rounded text-xs">gemini-3-pro-preview</code>
<code className="block bg-gray-100 px-2 py-1 rounded text-xs">gemini-2.5-pro</code>
<code className="block bg-gray-100 px-2 py-1 rounded text-xs">grok-4</code>
</div>
{/* Common Errors */}
<div className="mt-4 p-3 bg-red-50 border border-red-100 rounded-lg">
<h5 className="font-bold text-red-700 text-xs mb-2">常见错误</h5>
<ul className="text-xs text-red-600 space-y-1">
<li><strong>Failed to fetch</strong>: 网络或VPN问题,尝试关闭VPN</li>
<li><strong>Invalid JSON</strong>: 换个模型试试</li>
<li><strong>超时</strong>: API拥堵,换个时间或模型</li>
</ul>
</div>
{/* Quick Link */}
<a
href="https://jcnjmxofi1yl.feishu.cn/wiki/JX0iwzoeqie3GEkJ8XQcMesan3c"
target="_blank"
rel="noopener noreferrer"
className="mt-4 flex items-center justify-center gap-2 bg-emerald-50 text-emerald-600 px-4 py-2.5 rounded-lg hover:bg-emerald-100 transition-colors font-medium"
>
<ExternalLink className="w-4 h-4" />
查看API详细教程
</a>
</div>
)}
</div>
</div>
)}
</div>
);
};
export default HelpGuide;