/* Home Page sections part 2 — Talleres, Insumos, Testimonios, Newsletter, Blog */
// Deterministic seeded rating: always same per id, varies 4.5-5.0
function seedRating(id) {
const vals = ['4.5', '4.6', '4.7', '4.8', '4.9', '5.0'];
return vals[(id * 7 + 3) % vals.length];
}
const WorkshopCard = ({ t, setPage }) => {
const [showTemario, setShowTemario] = React.useState(false);
const temarioItems = t.temario ? t.temario.split(', ').filter(Boolean) : [];
return (
setPage && setPage('academia')}>
{t.categoria}
Máx. {t.cupos} cupos
{t.categoria} ★ {seedRating(t.id)}
{t.nombre}
{t.descripcion}
{t.duracion}
{t.cupos} personas
{/* Temario dropdown */}
{temarioItems.length > 0 && (
setShowTemario(!showTemario)} style={{ background: showTemario ? 'var(--gr-lt)' : 'var(--bg)', border: '1px solid var(--bd)', borderRadius: 'var(--r)', padding: '7px 12px', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'space-between', width: '100%', fontFamily: 'var(--font-d)', fontWeight: 600, fontSize: 12, color: showTemario ? 'var(--gr-d)' : 'var(--t2)', transition: 'all 150ms' }}>
📋 Ver temario ({temarioItems.length} temas)
{showTemario && (
{temarioItems.map((item, j) => (
✓
{item}
))}
)}
)}
);
};
const TalleresPreview = ({ setPage }) => {
const [filter, setFilter] = React.useState('Todos');
const allTalleres = window.TALLERES_DATA || [];
const destacados = React.useMemo(() => {
const panNames = window.TALLERES_DESTACADOS_PANADERIA || [];
const pasNames = window.TALLERES_DESTACADOS_PASTELERIA || [];
return allTalleres.filter(t => [...panNames, ...pasNames].includes(t.nombre));
}, [allTalleres]);
const filtered = filter === 'Todos' ? destacados
: filter === 'Panadería' ? destacados.filter(t => t.categoria === 'Panadería')
: destacados.filter(t => t.categoria === 'Pastelería');
return (
Academia LK Mejia
Talleres que transforman
Grupos pequeños, participación activa, técnicas reales. Aprende repostería de la manera correcta.
⚡ ¡Alta demanda! Varios talleres con últimos cupos
{['Todos', 'Panadería', 'Pastelería'].map(f => (
setFilter(f)}>{f}
))}
{filtered.map(t => )}
setPage('academia')}>
Ver todos los talleres
);
};
const ProductCard = ({ p }) => (
{p.marca}
◉ {p.presentacion}
★ {seedRating(p.id)}
{p.nombre}
{p.descripcion}
);
const InsumosPreview = ({ setPage }) => {
const [filter, setFilter] = React.useState('Todos');
const allInsumos = window.INSUMOS_DATA || [];
// Pick 2 products from each of the main categories for a balanced showcase
const destacados = React.useMemo(() => {
const picks = [];
const mainCats = ['Chocolatería', 'Harinas y Mezclas', 'Herramientas'];
mainCats.forEach(cat => {
const items = allInsumos.filter(i => i.categoria === cat).slice(0, 2);
picks.push(...items);
});
// Fill remaining slots with other categories
if (picks.length < 6) {
const rest = allInsumos.filter(i => !picks.includes(i)).slice(0, 6 - picks.length);
picks.push(...rest);
}
return picks.slice(0, 6);
}, [allInsumos]);
const cats = ['Todos', 'Chocolatería', 'Harinas y Mezclas', 'Herramientas', 'Azúcares', 'Decoración'];
const catIcons = { 'Chocolatería': 'coffee', 'Harinas y Mezclas': 'wheat', 'Decoración': 'palette', 'Herramientas': 'wrench', 'Azúcares': 'coffee' };
const filtered = filter === 'Todos' ? destacados : (() => {
const catItems = allInsumos.filter(i => i.categoria === filter).slice(0, 6);
return catItems.length ? catItems : destacados;
})();
return (
Tienda LK Mejia
Insumos con asesoría técnica
Cada producto que vendemos está respaldado por expertise real. No vendemos por vender.
Envíos a toda Colombia
{cats.map(c => (
setFilter(c)}>
{c !== 'Todos' && }{c}
))}
setPage('tienda')}>
Ver todo el catálogo
+300 productos en tienda física
{/* Marcas */}
);
};
const TestimonialsSection = () => {
const testimonials = [
{ text: "Excelente lugar, las clases son muy bien explicadas y Luis es un profesional increíble. Los insumos son de la mejor calidad.", name: "Carolina Ruiz", role: "Emprendedora repostera", bg: "var(--or)" },
{ text: "Los talleres son maravillosos, se aprende muchísimo en cada sesión. La atención personalizada marca toda la diferencia.", name: "Andrea Gómez", role: "Estudiante de pastelería", bg: "var(--gr)" },
{ text: "El mejor lugar para comprar insumos de repostería en Bogotá. La asesoría es inigualable, siempre te recomiendan lo mejor.", name: "Martha Sánchez", role: "Chef profesional", bg: "#89CFF0" },
{ text: "Tomé el diplomado de panadería y fue una experiencia transformadora. Los grupos pequeños hacen toda la diferencia.", name: "Diego Hernández", role: "Panadero artesanal", bg: "#FFB347" },
];
return (
Comunidad LK
Lo que dicen nuestros estudiantes
Más de 4.000 personas han transformado su pasión por la repostería con LK Mejia.
{testimonials.map((t, i) => (
★★★★★
"
{t.text}
{t.name.split(' ').map(w => w[0]).join('').slice(0, 2)}
))}
);
};
const NewsletterSection = () => {
const [email, setEmail] = React.useState('');
const [status, setStatus] = React.useState('idle');
const submit = async () => {
if (!email || !email.includes('@')) return;
setStatus('loading');
try {
const SHEET_URL = "https://script.google.com/macros/s/AKfycbxPLACEHOLDER/exec";
await fetch(SHEET_URL + "?email=" + encodeURIComponent(email) + "&ts=" + Date.now(), { method: 'GET', mode: 'no-cors' });
} catch(e) {}
setStatus('ok');
setEmail('');
};
return (
Únete a +4.000 reposteros
que reciben contenido educativo exclusivo cada semana.
{status === 'ok' ? (
¡Suscrito exitosamente!
) : (
setEmail(e.target.value)}
onKeyDown={e => e.key === 'Enter' && submit()}
disabled={status === 'loading'}
/>
{status === 'loading' ? '...' : 'Suscribirme'}
)}
);
};
const BlogPreview = ({ setPage, setActiveArticle }) => {
const allBlogs = window.BLOG_POSTS || [];
const preview = allBlogs.slice(0, 3);
const catColors = { Ingredientes: '#FEF0DC', Técnica: '#EAF5D6', Herramientas: '#E8F6FD', Recetas: '#FFE5B4' };
const openArticle = (p) => {
setActiveArticle(p);
setPage('recetario');
window.scrollTo({ top: 0, behavior: 'instant' });
};
return (
Recetas y Blog
Conocimiento que transforma
Artículos técnicos, recetas adaptadas al contexto colombiano y la ciencia detrás de la repostería.
{preview.map((p, i) => (
openArticle(p)} style={{ cursor: 'pointer' }}>
{p.imagen
?
:
}
LKA Mejía {p.cat}
{p.title}
{p.seo?.metaDesc || ''}
Leer artículo
))}
setPage('recetario')}>
Ver todos los artículos ({allBlogs.length})
);
};
Object.assign(window, { WorkshopCard, TalleresPreview, ProductCard, InsumosPreview, TestimonialsSection, NewsletterSection, BlogPreview });