xiaobo ren
Rebrand to 姣旇抗: Update brand name, colors (primrose yellow #FFF143, fresh green #98FB98), logo icons, and theme throughout application
339fff1
| /** | |
| * Example usage of Feed components | |
| * This file demonstrates how to compose the feed system | |
| */ | |
| import React, { useState } from 'react'; | |
| import FeedTabs, { TabType } from './FeedTabs'; | |
| import Composer from './Composer'; | |
| import FeedList, { FeedItem } from './FeedList'; | |
| import { UserInput } from '../../types'; | |
| const FeedExample: React.FC = () => { | |
| const [activeTab, setActiveTab] = useState<TabType>('for-you'); | |
| const [isComposerExpanded, setIsComposerExpanded] = useState(false); | |
| const [isGenerating, setIsGenerating] = useState(false); | |
| // Example feed items | |
| const exampleItems: FeedItem[] = [ | |
| { | |
| id: '1', | |
| type: 'report', | |
| timestamp: '2小时前', | |
| data: { | |
| id: '1', | |
| title: '张三的比迹分析报告', | |
| timestamp: '2023-12-15 14:30', | |
| summary: '整体命局偏财旺盛,适合从事投资相关行业。30-40岁为事业黄金期。', | |
| score: 85, | |
| peakYear: 35, | |
| name: '张三', | |
| gender: '男', | |
| isLocked: false, | |
| }, | |
| }, | |
| { | |
| id: '2', | |
| type: 'case', | |
| timestamp: '5小时前', | |
| data: { | |
| id: '2', | |
| title: '科技创业者的逆袭之路', | |
| persona: '程序员', | |
| curveType: 'V型反转', | |
| description: '从底层码农到独角兽CTO,看技术人如何把握命运转折点。', | |
| }, | |
| }, | |
| { | |
| id: '3', | |
| type: 'knowledge', | |
| timestamp: '1天前', | |
| data: { | |
| id: '3', | |
| title: '八字中的十神解析:如何看懂你的财运', | |
| category: '基础知识', | |
| summary: '深入浅出讲解八字十神系统,重点分析正财、偏财对个人财运的影响。', | |
| views: 12580, | |
| tags: ['八字', '财运', '十神'], | |
| }, | |
| }, | |
| { | |
| id: '4', | |
| type: 'announcement', | |
| timestamp: '2天前', | |
| data: { | |
| title: '新功能上线:AI智能八字解读', | |
| content: '我们全新推出了基于大语言模型的智能八字分析系统,为您提供更专业、更个性化的命理解读。', | |
| }, | |
| }, | |
| { | |
| id: '5', | |
| type: 'report', | |
| timestamp: '3天前', | |
| data: { | |
| id: '5', | |
| title: '游客测算报告', | |
| timestamp: '2023-12-12 09:15', | |
| summary: '这是一个示例报告,展示了游客未登录状态下的锁定效果。', | |
| score: 78, | |
| peakYear: 42, | |
| isLocked: true, | |
| }, | |
| }, | |
| ]; | |
| const handleSubmit = async (data: UserInput) => { | |
| console.log('Generating K-line for:', data); | |
| setIsGenerating(true); | |
| // Simulate API call | |
| setTimeout(() => { | |
| setIsGenerating(false); | |
| setIsComposerExpanded(false); | |
| alert('比迹报告生成成功!'); | |
| }, 2000); | |
| }; | |
| const handleItemClick = (item: FeedItem) => { | |
| console.log('Item clicked:', item); | |
| alert(`查看 ${item.type}: ${item.id}`); | |
| }; | |
| const feedItems = activeTab === 'for-you' | |
| ? exampleItems | |
| : exampleItems.filter(item => item.type === 'report'); | |
| return ( | |
| <div className="min-h-screen bg-gray-50"> | |
| {/* Header */} | |
| <div className="max-w-2xl mx-auto bg-white sticky top-0 z-20 shadow-sm"> | |
| <div className="px-4 py-4"> | |
| <h1 className="text-2xl font-bold text-dark-slate">比迹</h1> | |
| </div> | |
| <FeedTabs activeTab={activeTab} onTabChange={setActiveTab} /> | |
| </div> | |
| {/* Composer */} | |
| <div className="max-w-2xl mx-auto"> | |
| <Composer | |
| onSubmit={handleSubmit} | |
| isLoading={isGenerating} | |
| isExpanded={isComposerExpanded} | |
| onToggle={setIsComposerExpanded} | |
| /> | |
| </div> | |
| {/* Feed List */} | |
| <div className="max-w-2xl mx-auto p-4"> | |
| <FeedList items={feedItems} onItemClick={handleItemClick} /> | |
| </div> | |
| </div> | |
| ); | |
| }; | |
| export default FeedExample; | |