-
+
{idea.title}
{idea.description && (
@@ -615,7 +615,8 @@ export function IdeasTabView({ mode = "published", onOpenTemplate }: IdeasTabVie
) : (
<>
- {t("ideas.reject", "Rechazar")}
+ {t("ideas.reject", "Rechazar")}
+ {t("ideas.reject", "Rechazar")}
>
)}
@@ -631,7 +632,8 @@ export function IdeasTabView({ mode = "published", onOpenTemplate }: IdeasTabVie
) : (
<>
- {t("ideas.approve", "Aprobar")}
+ {t("ideas.approve", "Aprobar")}
+ {t("ideas.approve", "Aprobar")}
>
)}
diff --git a/client/src/components/top3-cards.tsx b/client/src/components/top3-cards.tsx
index 81cb049..6628e4f 100644
--- a/client/src/components/top3-cards.tsx
+++ b/client/src/components/top3-cards.tsx
@@ -1,6 +1,7 @@
import { motion } from "framer-motion";
-import { Trophy, TrendingUp } from "lucide-react";
+import { Trophy, TrendingUp, User } from "lucide-react";
import { Button } from "@/components/ui/button";
+import { Badge } from "@/components/ui/badge";
import { IdeaResponse } from "@shared/schema";
import { useTranslation } from "react-i18next";
import { cn } from "@/lib/utils";
@@ -121,10 +122,15 @@ export function Top3Cards({
- {idea.suggestedBy && (
-
- {t("ideas.by", "Por")} {idea.suggestedBy}
-
+ {idea.suggestedByUsername && (
+
+
+ {t("ideas.suggestedByAudience")}
+
)}
{/* Vote Section */}
diff --git a/client/src/components/video-template-modal.tsx b/client/src/components/video-template-modal.tsx
index 651ca17..8423a0e 100644
--- a/client/src/components/video-template-modal.tsx
+++ b/client/src/components/video-template-modal.tsx
@@ -57,6 +57,7 @@ interface Section {
labelKey: string;
placeholderKey: string;
icon: typeof Eye;
+ emoji?: string;
}
export default function VideoTemplateModal({
@@ -70,15 +71,15 @@ export default function VideoTemplateModal({
const { user } = useAuth();
const isPremium = user ? hasActivePremiumAccess(user) : false;
- // Define sections with translation keys
+ // Define sections with translation keys and emojis
const sections: Section[] = [
- { key: "hook", labelKey: "videoScript.sections.hook", placeholderKey: "videoScript.sections.hookPlaceholder", icon: Eye },
- { key: "teaser", labelKey: "videoScript.sections.teaser", placeholderKey: "videoScript.sections.teaserPlaceholder", icon: Eye },
- { key: "valorAudiencia", labelKey: "videoScript.sections.valueForAudience", placeholderKey: "videoScript.sections.valueForAudiencePlaceholder", icon: Eye },
- { key: "pointsToCover", labelKey: "videoScript.sections.pointsToCover", placeholderKey: "videoScript.sections.pointsToCoverPlaceholder", icon: Eye },
- { key: "visualsNeeded", labelKey: "videoScript.sections.visualsNeeded", placeholderKey: "videoScript.sections.visualsNeededPlaceholder", icon: Eye },
- { key: "bonus", labelKey: "videoScript.sections.bonus", placeholderKey: "videoScript.sections.bonusPlaceholder", icon: Eye },
- { key: "outro", labelKey: "videoScript.sections.outro", placeholderKey: "videoScript.sections.outroPlaceholder", icon: Eye },
+ { key: "hook", labelKey: "videoScript.sections.hook", placeholderKey: "videoScript.sections.hookPlaceholder", icon: Eye, emoji: "🎣" },
+ { key: "teaser", labelKey: "videoScript.sections.teaser", placeholderKey: "videoScript.sections.teaserPlaceholder", icon: Eye, emoji: "✨" },
+ { key: "valorAudiencia", labelKey: "videoScript.sections.valueForAudience", placeholderKey: "videoScript.sections.valueForAudiencePlaceholder", icon: Eye, emoji: "💎" },
+ { key: "pointsToCover", labelKey: "videoScript.sections.pointsToCover", placeholderKey: "videoScript.sections.pointsToCoverPlaceholder", icon: Eye, emoji: "📋" },
+ { key: "visualsNeeded", labelKey: "videoScript.sections.visualsNeeded", placeholderKey: "videoScript.sections.visualsNeededPlaceholder", icon: Eye, emoji: "🎬" },
+ { key: "bonus", labelKey: "videoScript.sections.bonus", placeholderKey: "videoScript.sections.bonusPlaceholder", icon: Eye, emoji: "🎁" },
+ { key: "outro", labelKey: "videoScript.sections.outro", placeholderKey: "videoScript.sections.outroPlaceholder", icon: Eye, emoji: "👋" },
];
// Text fields
@@ -288,17 +289,17 @@ ${outro.length > 0 ? `## OUTRO / CTA\n${formatItems(outro)}\n` : ''}
@@ -345,13 +346,14 @@ ${outro.length > 0 ? `## OUTRO / CTA\n${formatItems(outro)}\n` : ''}
onChange={(e) => setNewInputs({ ...newInputs, [section.key]: e.target.value })}
placeholder={t(section.placeholderKey)}
onKeyPress={(e) => e.key === "Enter" && handleAddItem(section.key)}
- className="flex-1"
+ className="flex-1 border-2 border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 focus:border-primary/50 text-gray-900 dark:text-white"
data-testid={`input-new-${section.key}`}
/>