diff --git a/src/app/api/brevo/export/route.ts b/src/app/api/brevo/export/route.ts index 5acec9f..cd436b0 100644 --- a/src/app/api/brevo/export/route.ts +++ b/src/app/api/brevo/export/route.ts @@ -1,4 +1,5 @@ import { NextRequest, NextResponse } from 'next/server'; +import { getBrevoCampaignUrl } from '@/lib/brevo'; export async function POST(req: NextRequest) { try { @@ -63,7 +64,7 @@ export async function POST(req: NextRequest) { success: true, updated: true, campaignId: Number(existingCampaignId), - brevoUrl: 'https://app.brevo.com/campaigns/listing', + brevoUrl: getBrevoCampaignUrl(existingCampaignId), brevoListingUrl: 'https://app.brevo.com/campaigns/listing', message: 'Kampaň bola úspešne aktualizovaná v Brevo!' }); @@ -113,7 +114,7 @@ export async function POST(req: NextRequest) { success: true, updated: false, campaignId: data.id, - brevoUrl: 'https://app.brevo.com/campaigns/listing', + brevoUrl: getBrevoCampaignUrl(data.id), brevoListingUrl: 'https://app.brevo.com/campaigns/listing', message: 'Kampaň bola úspešne vytvorená v Brevo!' }); diff --git a/src/app/api/brevo/verify/route.ts b/src/app/api/brevo/verify/route.ts index 8f13501..7aa20ce 100644 --- a/src/app/api/brevo/verify/route.ts +++ b/src/app/api/brevo/verify/route.ts @@ -1,4 +1,5 @@ import { NextRequest, NextResponse } from 'next/server'; +import { getBrevoCampaignUrl } from '@/lib/brevo'; export async function GET(req: NextRequest) { try { @@ -51,7 +52,7 @@ export async function GET(req: NextRequest) { name: data.name, status: data.status, subject: data.subject, - brevoUrl: 'https://app.brevo.com/campaigns/listing', + brevoUrl: getBrevoCampaignUrl(data.id), brevoListingUrl: 'https://app.brevo.com/campaigns/listing' }); } catch (err: any) { diff --git a/src/app/page.tsx b/src/app/page.tsx index d87d7ab..d111872 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -6,6 +6,7 @@ import { DEFAULT_CAMPAIGN, SUPABASE_ASSETS_BASE } from '@/lib/defaultCampaign'; import { renderEmailHtml, renderSingleModuleHtml } from '@/lib/emailRenderer'; import { supabase } from '@/lib/supabase'; import { DEFAULT_BADGE_TEMPLATES } from '@/lib/badgeUtils'; +import { getBrevoCampaignUrl } from '@/lib/brevo'; import { TopBar } from '@/components/editor/TopBar'; import { ConfigPanel } from '@/components/editor/ConfigPanel'; import { ProductImportModal } from '@/components/editor/ProductImportModal'; @@ -144,7 +145,7 @@ export default function Home() { modules: enforceAnchors(dbItem.data.modules) }); if (dbItem.brevo_campaign_id) { - setBrevoUrl('https://app.brevo.com/campaigns/listing'); + setBrevoUrl(getBrevoCampaignUrl(dbItem.brevo_campaign_id)); } } } @@ -831,7 +832,7 @@ export default function Home() { setCampaign({ ...selected, modules: enforceAnchors(selected.modules) }); setSelectedModuleId(selected.modules[1]?.id || selected.modules[0]?.id || null); if (selected.brevoCampaignId) { - setBrevoUrl('https://app.brevo.com/campaigns'); + setBrevoUrl(getBrevoCampaignUrl(selected.brevoCampaignId)); } else { setBrevoUrl(null); } diff --git a/src/components/editor/TopBar.tsx b/src/components/editor/TopBar.tsx index 70d7782..1e0a472 100644 --- a/src/components/editor/TopBar.tsx +++ b/src/components/editor/TopBar.tsx @@ -16,6 +16,7 @@ import { Check } from 'lucide-react'; import { NewsletterCampaign } from '@/types/newsletter'; +import { getBrevoCampaignUrl } from '@/lib/brevo'; interface TopBarProps { campaign: NewsletterCampaign; @@ -214,11 +215,11 @@ export const TopBar: React.FC = ({
{/* Odkaz na zoznam / úpravu v Brevo */} Otvoriť v Brevo diff --git a/src/lib/brevo.ts b/src/lib/brevo.ts new file mode 100644 index 0000000..2f9d7f0 --- /dev/null +++ b/src/lib/brevo.ts @@ -0,0 +1,4 @@ +// Priamy odkaz na úpravu konkrétnej kampane v Brevo +export function getBrevoCampaignUrl(campaignId: number | string): string { + return `https://app.brevo.com/marketing-campaign/edit/${encodeURIComponent(String(campaignId))}`; +}