diff --git a/src/app/memes/[id]/page.tsx b/src/app/memes/[id]/page.tsx index 22cfcef..da6942d 100644 --- a/src/app/memes/[id]/page.tsx +++ b/src/app/memes/[id]/page.tsx @@ -4,18 +4,9 @@ interface Props { params: { id: string }; } -interface Meme { - title: string; - imageUrl: string; - description: string; -} - -function getMeme(baseUrl: string, id: string): Meme { - return { - title: 'Generated meme', - imageUrl: `${baseUrl}/api/images/${id}`, - description: 'A funny meme', - }; +function getMeme(id: string): string { + const pinataImageUrl = `https://${process.env.PINATA_GATEWAY}/ipfs/${id}` + return pinataImageUrl; } export async function generateMetadata( @@ -23,37 +14,34 @@ export async function generateMetadata( parent: ResolvingMetadata ): Promise { const baseUrl = process.env.SITE_URL!; - const meme = getMeme(baseUrl, params.id); + const meme = getMeme(params.id); return { - title: meme.title, - description: meme.description, + title: '', + description: '', metadataBase: new URL(baseUrl), openGraph: { type: 'website', url: `${baseUrl}/memes/${params.id}`, siteName: "Mark's meme market", - images: [{ url: meme.imageUrl }], + images: [{ url: meme }], }, }; } export default function MemePage({ params }: Props) { - const baseUrl = process.env.SITE_URL!; - const meme = getMeme(baseUrl, params.id); + const meme = getMeme(params.id); return (
-

{meme.title}

{meme.title}
-

{meme.description}

); diff --git a/src/components/AIServiceCard.tsx b/src/components/AIServiceCard.tsx index 12ef008..9f1010d 100644 --- a/src/components/AIServiceCard.tsx +++ b/src/components/AIServiceCard.tsx @@ -86,6 +86,14 @@ const AIServiceCard: React.FC = ({ } } + const generateTwitterShareUrl = (imageUrl: string): string => { + const baseUrl = window.location.href; + const ipfsImageUrl = imageUrl.split("/ipfs/")[1]; + const memeUrl = `${baseUrl}/memes/${ipfsImageUrl}`; + + return `https://twitter.com/intent/tweet?text=Check%20out%20this%20generated%20image!&url=${encodeURIComponent(memeUrl)}`; + }; + return (
@@ -136,6 +144,16 @@ const AIServiceCard: React.FC = ({ alt="Generated content" className="w-full h-auto rounded-xl shadow-2xl" /> +
)}