import React, { useState, useEffect, useMemo } from 'react';
function DynamicTemplateEditor({
const [embedUrl, setEmbedUrl] = useState('');
// Generate layers based on template type
const layerData = useMemo(() => {
image_url: userData.profilePicture
image_url: userData.company?.logo
fill: userData.company?.brandColor || "#f0f0f0"
case 'marketing-campaign':
text: campaignData.title,
color: campaignData.theme?.primaryColor || "#000000"
"campaign-description": {
text: campaignData.description,
image_url: campaignData.heroImage
text: campaignData.ctaText,
background: campaignData.theme?.buttonColor || "#007bff"
image_url: campaignData.brand?.logo
}, [templateType, userData, campaignData]);
if (Object.keys(layerData).length > 0) {
const encodedLayers = btoa(JSON.stringify(layerData));
const url = `https://app.templated.io/editor/${templateId}?embed=${configId}&layers=${encodedLayers}`;
}, [templateId, configId, layerData]);
<div className="template-editor-container">
title="Dynamic Template Editor"
<div>Loading template...</div>
export default DynamicTemplateEditor;