實現完整的後台得獎資訊
This commit is contained in:
@@ -287,7 +287,7 @@ export function PopularityRankings() {
|
||||
|
||||
return (
|
||||
<Card
|
||||
key={app.id}
|
||||
key={`app-${app.id}-${index}`}
|
||||
className="hover:shadow-lg transition-all duration-300 bg-gradient-to-br from-yellow-50 to-orange-50 border border-yellow-200 flex flex-col"
|
||||
>
|
||||
<CardContent className="p-4 flex flex-col flex-1">
|
||||
@@ -454,7 +454,7 @@ export function PopularityRankings() {
|
||||
|
||||
return (
|
||||
<Card
|
||||
key={team.id}
|
||||
key={`team-${team.id}-${index}`}
|
||||
className="hover:shadow-lg transition-all duration-300 bg-gradient-to-br from-green-50 to-blue-50 border border-green-200 flex flex-col"
|
||||
>
|
||||
<CardContent className="p-4 flex flex-col flex-1">
|
||||
@@ -487,8 +487,8 @@ export function PopularityRankings() {
|
||||
<div className="mb-4 flex-1">
|
||||
<h5 className="text-sm font-medium text-gray-700 mb-2">團隊成員 ({team.members.length}人)</h5>
|
||||
<div className="space-y-1">
|
||||
{team.members.slice(0, 3).map((member: any) => (
|
||||
<div key={member.id} className="flex items-center space-x-2 text-xs">
|
||||
{team.members.slice(0, 3).map((member: any, memberIndex: number) => (
|
||||
<div key={`member-${member.id}-${memberIndex}`} className="flex items-center space-x-2 text-xs">
|
||||
<div className="w-6 h-6 bg-green-100 rounded-full flex items-center justify-center text-green-700 font-medium">
|
||||
{member.name[0]}
|
||||
</div>
|
||||
@@ -687,8 +687,8 @@ export function PopularityRankings() {
|
||||
</div>
|
||||
) : competitionJudges.length > 0 ? (
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||
{competitionJudges.map((judge) => (
|
||||
<div key={judge.id} className="flex items-center space-x-3 p-3 bg-gray-50 rounded-lg">
|
||||
{competitionJudges.map((judge, judgeIndex) => (
|
||||
<div key={`judge-${judge.id}-${judgeIndex}`} className="flex items-center space-x-3 p-3 bg-gray-50 rounded-lg">
|
||||
<Avatar>
|
||||
<AvatarImage src={judge.avatar} />
|
||||
<AvatarFallback className="bg-purple-100 text-purple-700">{judge.name[0]}</AvatarFallback>
|
||||
@@ -697,8 +697,8 @@ export function PopularityRankings() {
|
||||
<h4 className="font-medium">{judge.name}</h4>
|
||||
<p className="text-sm text-gray-600">{judge.title}</p>
|
||||
<div className="flex flex-wrap gap-1 mt-1">
|
||||
{judge.expertise.slice(0, 2).map((skill) => (
|
||||
<Badge key={skill} variant="secondary" className="text-xs">
|
||||
{judge.expertise.slice(0, 2).map((skill, skillIndex) => (
|
||||
<Badge key={`skill-${skill}-${skillIndex}`} variant="secondary" className="text-xs">
|
||||
{skill}
|
||||
</Badge>
|
||||
))}
|
||||
|
Reference in New Issue
Block a user