'use client'; import React from 'react'; import { ComponentShareButton } from './ComponentShareButton'; import { Reveal } from './Reveal'; interface MemeCardProps { /** Meme template type: drake, ds (daily struggle), gru, fine, clown, expanding, distracted, rollsafe */ template: string; /** Pipe-delimited captions */ captions: string; /** Optional local image path. If provided, overrides the text-based template. */ image?: string; className?: string; } /** * Premium text-based meme cards with dedicated layouts per template. * Uses emoji + typography instead of images for on-brand aesthetics. */ export const MemeCard: React.FC = ({ template, captions, image, className = '' }) => { const captionList = (captions || '').split('|').map(s => s.trim()).filter(Boolean); const shareId = `meme-${Math.random().toString(36).substring(7).toUpperCase()}`; if (image) { return (
{/* eslint-disable-next-line @next/next/no-img-element */} {`Meme:
); } return (
{template === 'drake' && } {template === 'ds' && } {template === 'gru' && } {template === 'fine' && } {template === 'clown' && } {template === 'expanding' && } {template === 'distracted' && } {!['drake', 'ds', 'gru', 'fine', 'clown', 'expanding', 'distracted'].includes(template) && ( )}
); }; function DrakeMeme({ captions }: { captions: string[] }) { return (
πŸ™…

{captions[0]}

😎

{captions[1]}

); } function DailyStruggleMeme({ captions }: { captions: string[] }) { return (
😰

Daily Struggle

{captions[0]}

{captions[1]}

); } function GruMeme({ captions }: { captions: string[] }) { const steps = captions.slice(0, 4); return (
{(steps || []).map((caption, i) => { const isLast = i >= 2; return (
{isLast ? '😱' : '😏'}

{caption}

); })}
); } function FineMeme({ captions }: { captions: string[] }) { return (
πŸ”₯

This is Fine

{captions[0]}

β˜•

“{captions[1] || 'Alles im grΓΌnen Bereich.'}”

); } function ClownMeme({ captions }: { captions: string[] }) { const steps = captions.slice(0, 4); const emojis = ['😐', '🀑', 'πŸ’€', 'πŸŽͺ']; return (

Clown Progression

{steps.map((caption, i) => (
{emojis[i] || '🀑'}

{caption}

))}
); } function ExpandingBrainMeme({ captions }: { captions: string[] }) { const steps = captions.slice(0, 4); const emojis = ['🧠', '🧠✨', 'πŸ§ πŸ’‘', 'πŸ§ πŸš€']; const shadows = [ '', 'shadow-[0_0_15px_rgba(59,130,246,0.1)]', 'shadow-[0_0_20px_rgba(99,102,241,0.2)]', 'shadow-[0_0_25px_rgba(168,85,247,0.3)]', ]; return (

Expanding Intelligence

{steps.map((caption, i) => (
{emojis[i]}

{caption}

))}
); } function DistractedMeme({ captions }: { captions: string[] }) { return (

The Distraction

πŸ‘€

Subject

{captions[0]}

✨

Temptation

{captions[1]}

😀

Reality

{captions[2]}

); } function GenericMeme({ captions, template }: { captions: string[]; template: string }) { return (

{template}

{(captions || []).map((caption, i) => (

{caption}

))}
); }