From 8cff9808f022054b3893b5d7b85d9d33565fac07 Mon Sep 17 00:00:00 2001 From: songtianlun Date: Thu, 3 Jul 2025 00:38:43 +0800 Subject: [PATCH] click to enter --- src/app/page.tsx | 34 +++++++++++++++++++++++++------ src/components/ComparisonForm.tsx | 15 ++++++++++++-- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 7be8b02..4363270 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,6 +11,19 @@ import { saveToHistory } from '@/utils/historyStorage'; export default function Home() { const [comparisonResults, setComparisonResults] = useState(null); const [isLoading, setIsLoading] = useState(false); + const [selectedExample, setSelectedExample] = useState<{ item1: string; item2: string } | null>(null); + + const popularExamples = [ + { item1: 'iPhone 15 Pro', item2: 'Samsung Galaxy S24 Ultra' }, + { item1: 'React', item2: 'Vue.js' }, + { item1: 'Coffee', item2: 'Tea' }, + { item1: 'Netflix', item2: 'Disney+' }, + { item1: 'Python', item2: 'JavaScript' } + ]; + + const handleExampleClick = (example: { item1: string; item2: string }) => { + setSelectedExample(example); + }; const handleComparison = async (item1: string, item2: string, description1: string, description2: string) => { setIsLoading(true); @@ -68,17 +81,26 @@ export default function Home() {

Popular Comparisons

- iPhone vs Samsung Galaxy - React vs Vue.js - Coffee vs Tea - Netflix vs Disney+ - Python vs JavaScript + {popularExamples.map((example, index) => ( + + ))}
- + setSelectedExample(null)} + />
diff --git a/src/components/ComparisonForm.tsx b/src/components/ComparisonForm.tsx index bb7ff49..8c13e18 100644 --- a/src/components/ComparisonForm.tsx +++ b/src/components/ComparisonForm.tsx @@ -1,19 +1,30 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; interface ComparisonFormProps { onSubmit: (item1: string, item2: string, description1: string, description2: string) => void; isLoading: boolean; + selectedExample?: { item1: string; item2: string } | null; + onExampleUsed?: () => void; } -export default function ComparisonForm({ onSubmit, isLoading }: ComparisonFormProps) { +export default function ComparisonForm({ onSubmit, isLoading, selectedExample, onExampleUsed }: ComparisonFormProps) { const [item1, setItem1] = useState(''); const [item2, setItem2] = useState(''); const [description1, setDescription1] = useState(''); const [description2, setDescription2] = useState(''); const [showDescriptions, setShowDescriptions] = useState(false); + // Handle selected example + useEffect(() => { + if (selectedExample) { + setItem1(selectedExample.item1); + setItem2(selectedExample.item2); + onExampleUsed?.(); + } + }, [selectedExample, onExampleUsed]); + const examples = [ { item1: 'iPhone 15 Pro', item2: 'Samsung Galaxy S24 Ultra', category: 'Smartphones' }, { item1: 'React', item2: 'Vue.js', category: 'Frontend Frameworks' },