Compare commits
5 Commits
version_4_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3fd7ec5ff9 | |||
|
|
fbb82bef5d | ||
|
|
f1a751da49 | ||
| 2039869f5f | |||
|
|
d01ebb8495 |
@@ -12,12 +12,11 @@ export default function Layout() {
|
||||
<NavbarCentered
|
||||
logo="MERYDIAN"
|
||||
navItems={[
|
||||
{ name: "Security", href: "#security" },
|
||||
{ name: "Process", href: "#process" },
|
||||
{ name: "Pricing", href: "#pricing" },
|
||||
{ name: "Team", href: "#team" },
|
||||
{ name: "Empresas", href: "#empresas" },
|
||||
{ name: "Educación", href: "#educacion" },
|
||||
{ name: "Cómo funciona", href: "#como-funciona" },
|
||||
]}
|
||||
ctaButton={{ text: "Book Discovery Call", href: "#contact" }}
|
||||
ctaButton={{ text: "Agenda un diagnóstico", href: "https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao" }}
|
||||
/>
|
||||
<main className="flex-grow">
|
||||
<Outlet />
|
||||
|
||||
@@ -57,7 +57,7 @@ const NavbarCentered = ({ logo, navItems, ctaButton }: NavbarCenteredProps) => {
|
||||
)}
|
||||
>
|
||||
<div className="relative mx-auto flex items-center justify-between h-full w-content-width">
|
||||
<a href="/" className="text-xl font-medium text-foreground">{logo}</a>
|
||||
<a href="/" className="text-xl font-medium text-foreground"><span className="text-foreground">Voria</span> <span className="text-primary-cta">Academy</span></a>
|
||||
|
||||
<div className="hidden md:flex absolute left-1/2 -translate-x-1/2 items-center gap-6">
|
||||
{navItems.map((item) => (
|
||||
|
||||
@@ -1,189 +1,40 @@
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in the sibling sections/ folder (one file per section).
|
||||
// Edit those section files directly. Non-block content (wrappers,
|
||||
// non-inlinable sections) is preserved inline; extracted section blocks
|
||||
// become component refs.
|
||||
|
||||
import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll";
|
||||
import FeaturesBento from "@/components/sections/features/FeaturesBento";
|
||||
import FeaturesBorderGlow from "@/components/sections/features/FeaturesBorderGlow";
|
||||
import AboutText from "@/components/sections/about/AboutText";
|
||||
import PricingLayeredCards from "@/components/sections/pricing/PricingLayeredCards";
|
||||
import TeamOverlayCards from "@/components/sections/team/TeamOverlayCards";
|
||||
import ContactCenter from "@/components/sections/contact/ContactCenter";
|
||||
import { Shield, AlertTriangle, Bug, FileWarning, Skull, Lock, Clock, Zap, Layers } from "lucide-react";
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import SecuritySection from './HomePage/sections/Security';
|
||||
import OutcomesSection from './HomePage/sections/Outcomes';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage() {
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<StyleProvider siteBackground="none" heroBackground="lightRaysCenter" buttonVariant="arrow">
|
||||
<SiteBackgroundSlot />
|
||||
|
||||
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
textAnimation="slide-up"
|
||||
tag="Enterprise AI Infrastructure"
|
||||
title="Secure AI Infrastructure. Owned by You."
|
||||
description="Enterprise-grade AI operations deployed in your environment. Save 10–20 hours per week without exposing your data."
|
||||
primaryButton={{ text: "Book Discovery Call", href: "#contact" }}
|
||||
secondaryButton={{ text: "Learn More", href: "#security" }}
|
||||
imageSrc="https://storage.googleapis.com/webild/default/templates/merydian/breakdown.avif"
|
||||
/>
|
||||
</div>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<AboutText
|
||||
textAnimation="slide-up"
|
||||
title="OpenClaw is the most powerful AI agent on the planet. 247,000+ stars. 900+ contributors. Every business should run it. Almost none can deploy it safely."
|
||||
primaryButton={{ text: "Book Discovery Call", href: "#contact" }}
|
||||
secondaryButton={{ text: "Learn More", href: "#security" }}
|
||||
/>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="security" data-section="security">
|
||||
<FeaturesBento
|
||||
textAnimation="slide-up"
|
||||
tag="The Problem"
|
||||
title="Powerful to deploy. Dangerous to deploy wrong."
|
||||
description="OpenClaw is under attack. Community-built skills are stealing data, injecting code, and compromising supply chains."
|
||||
primaryButton={{ text: "Book Discovery Call", href: "#contact" }}
|
||||
secondaryButton={{ text: "Learn More", href: "#process" }}
|
||||
features={[
|
||||
{
|
||||
bentoComponent: "orbiting-icons",
|
||||
centerIcon: AlertTriangle,
|
||||
orbitIcons: [Bug, FileWarning, Skull, Lock],
|
||||
title: "Malicious Skills",
|
||||
description: "341 dangerous skills identified on ClawHub stealing user data.",
|
||||
},
|
||||
{
|
||||
bentoComponent: "tilted-stack-cards",
|
||||
stackCards: [
|
||||
{ icon: Skull, title: "Credential theft", subtitle: "47 incidents", detail: "Active" },
|
||||
{ icon: Bug, title: "Session hijacking", subtitle: "23 cases", detail: "Growing" },
|
||||
{ icon: FileWarning, title: "Token exposure", subtitle: "18 reports", detail: "Critical" },
|
||||
],
|
||||
title: "Data Extraction",
|
||||
description: "Credential theft with 47 incidents documented this quarter.",
|
||||
},
|
||||
{
|
||||
bentoComponent: "chat-marquee",
|
||||
aiIcon: Bug,
|
||||
userIcon: Shield,
|
||||
exchanges: [
|
||||
{ userMessage: "Execute deployment script", aiResponse: "Injecting malicious payload..." },
|
||||
{ userMessage: "Check system status", aiResponse: "Exfiltrating credentials..." },
|
||||
{ userMessage: "Run diagnostics", aiResponse: "Installing backdoor..." },
|
||||
],
|
||||
placeholder: "Enter command...",
|
||||
title: "Code Injection",
|
||||
description: "Remote execution with 128 unauthorized injections detected.",
|
||||
},
|
||||
{
|
||||
bentoComponent: "icon-text-marquee",
|
||||
centerIcon: FileWarning,
|
||||
marqueeTexts: ["Compromised packages: 166", "Malicious dependencies: 89", "Vulnerable imports: 42", "Unsafe modules: 31"],
|
||||
title: "Supply Chain",
|
||||
description: "Compromised dependencies with 166 malicious packages found.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<SecuritySection />
|
||||
|
||||
<div id="outcomes" data-section="outcomes">
|
||||
<FeaturesBorderGlow
|
||||
textAnimation="slide-up"
|
||||
tag="Outcomes"
|
||||
title="Real outcomes from secure AI operations"
|
||||
description=""
|
||||
features={[
|
||||
{ icon: Clock, title: "10 Hours Saved", description: "Per team, per department. Automated workflows." },
|
||||
{ icon: Zap, title: "24/7 Operations", description: "AI agents working around the clock." },
|
||||
{ icon: Layers, title: "50+ Integrations", description: "Connect across all your platforms." },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<OutcomesSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingLayeredCards
|
||||
textAnimation="slide-up"
|
||||
tag="Pricing"
|
||||
title="One-time deployment. No subscriptions."
|
||||
description="You pay once. You own the infrastructure. No recurring fees, no vendor lock-in."
|
||||
plans={[
|
||||
{
|
||||
tag: "Single Department",
|
||||
price: "$5,000",
|
||||
description: "AI automation for one department.",
|
||||
primaryButton: { text: "Get Started", href: "#contact" },
|
||||
features: [
|
||||
"Multiple OpenClaw instances",
|
||||
"Docker containerization",
|
||||
"Management dashboard",
|
||||
"14-day support",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "Multi-Department",
|
||||
price: "$12,000",
|
||||
description: "AI operations across multiple teams.",
|
||||
primaryButton: { text: "Get Started", href: "#contact" },
|
||||
features: [
|
||||
"Everything in Tier 1",
|
||||
"Cross-department orchestration",
|
||||
"Role-based permissions",
|
||||
"30-day support",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "On-Site",
|
||||
price: "$25,000",
|
||||
description: "Zero cloud dependency. Air-gapped.",
|
||||
primaryButton: { text: "Get Started", href: "#contact" },
|
||||
features: [
|
||||
"Everything in Tier 2",
|
||||
"Physical hardware install",
|
||||
"In-person training",
|
||||
"60-day support",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<TeamOverlayCards
|
||||
textAnimation="slide-up"
|
||||
tag="Team"
|
||||
title="Built by engineers who've deployed AI at scale"
|
||||
description="Years of experience building secure infrastructure for enterprise clients."
|
||||
members={[
|
||||
{
|
||||
name: "Brody Glanville",
|
||||
role: "CEO",
|
||||
imageSrc: "https://storage.googleapis.com/webild/default/templates/merydian/team/ceo.webp",
|
||||
},
|
||||
{
|
||||
name: "Bennett Spooner",
|
||||
role: "COO",
|
||||
imageSrc: "https://storage.googleapis.com/webild/default/templates/merydian/team/coo.webp",
|
||||
},
|
||||
{
|
||||
name: "Jesse Rurka",
|
||||
role: "CTO",
|
||||
imageSrc: "https://storage.googleapis.com/webild/default/templates/merydian/team/cto.webp",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCenter
|
||||
textAnimation="slide-up"
|
||||
tag="Get Started"
|
||||
title="Ready to deploy secure AI infrastructure?"
|
||||
description="Book a discovery call and get started in weeks, not months."
|
||||
inputPlaceholder="Enter your email"
|
||||
buttonText="Book Discovery Call"
|
||||
/>
|
||||
</div>
|
||||
<ContactSection />
|
||||
|
||||
|
||||
</StyleProvider>
|
||||
|
||||
18
src/pages/HomePage/sections/About.tsx
Normal file
18
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutText from "@/components/sections/about/AboutText";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<AboutText
|
||||
textAnimation="slide-up"
|
||||
title="El problema no es la IA. Es no saber por dónde empezar. Mientras tanto, tu equipo pierde horas cada semana en cotizaciones, informes, respuestas repetitivas y tareas administrativas que la IA ya resuelve. Falta el puente entre 'quiero usar IA' y 'mi equipo ya la usa todos los días'. Ese puente es lo que construimos."
|
||||
primaryButton={{ text: "Book Discovery Call", href: "#contact" }}
|
||||
secondaryButton={{ text: "Learn More", href: "#security" }}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
20
src/pages/HomePage/sections/Contact.tsx
Normal file
20
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCenter from "@/components/sections/contact/ContactCenter";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCenter
|
||||
textAnimation="slide-up"
|
||||
tag="CTA Final"
|
||||
title="El futuro con IA no espera. Tu equipo tampoco debería."
|
||||
description="Agenda un diagnóstico gratuito de 45 minutos. Sales sabiendo exactamente qué puede hacer la IA por tu empresa o institución."
|
||||
inputPlaceholder="Ingresa tu correo electrónico"
|
||||
buttonText="Agenda tu diagnóstico gratuito"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Hero.tsx
Normal file
21
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
textAnimation="slide-up"
|
||||
tag="Voria Academy · Capacitación en IA aplicada"
|
||||
title="No te enseñamos inteligencia artificial. Transformamos cómo trabaja tu equipo."
|
||||
description="Capacitación aplicada en IA para empresas e instituciones educativas en Colombia. Salimos de cada programa con procesos reales funcionando — no con un certificado y buenas intenciones."
|
||||
primaryButton={{"href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao","text":"Agenda tu diagnóstico gratuito"}}
|
||||
secondaryButton={{"href":"#como-funciona","text":"Conoce cómo funciona"}}
|
||||
imageSrc="https://storage.googleapis.com/webild/default/templates/merydian/breakdown.avif"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
20
src/pages/HomePage/sections/Outcomes.tsx
Normal file
20
src/pages/HomePage/sections/Outcomes.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "outcomes" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBorderGlow from "@/components/sections/features/FeaturesBorderGlow";
|
||||
import { Shield, AlertTriangle, Bug, FileWarning, Skull, Lock, Clock, Zap, Layers } from "lucide-react";
|
||||
|
||||
export default function OutcomesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="outcomes" data-section="outcomes">
|
||||
<FeaturesBorderGlow
|
||||
textAnimation="slide-up"
|
||||
tag="Impacto"
|
||||
title="Lo que tu empresa se lleva"
|
||||
description="Lo que reportan las empresas que ya cruzaron. Beneficios reportados por MiPymes que ya usan IA. Estudio Microsoft, 2025. No prometemos un número. Te mostramos, en el diagnóstico, cuál es realista para tu operación."
|
||||
features={[{"description":"ahorro de tiempo","title":"58%","icon":"Clock"},{"title":"52%","icon":"Zap","description":"más productividad"},{"description":"menos errores","title":"41%","icon":"Shield"}]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
19
src/pages/HomePage/sections/Pricing.tsx
Normal file
19
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingLayeredCards from "@/components/sections/pricing/PricingLayeredCards";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingLayeredCards
|
||||
textAnimation="slide-up"
|
||||
tag="Educación"
|
||||
title="IA en la educación: enfocarla, no bloquearla."
|
||||
description="Prohibir la IA en el aula es pelear contra el futuro. La respuesta no es bloquear el acceso — es enseñar a usarla con criterio."
|
||||
plans={[{"features":["Emprendimiento","Validación de ideas","Proyectos reales"],"price":"1","tag":"IA para el emprendimiento","primaryButton":{"href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao","text":"Agenda tu diagnóstico gratuito"},"description":"Preparamos a estudiantes para crear, no solo consumir tecnología: emprender, validar ideas y construir proyectos reales."},{"primaryButton":{"href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao","text":"Agenda tu diagnóstico gratuito"},"description":"Uso ético y responsable: cuándo confiar, cuándo verificar, cómo mantener la integridad académica.","price":"2","tag":"Buen uso y pensamiento crítico","features":["Uso ético","Pensamiento crítico","Integridad académica"]},{"description":"Hacia dónde va la IA, qué trabajos transforma y por qué esta habilidad ya no es opcional.","primaryButton":{"text":"Agenda tu diagnóstico gratuito","href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao"},"tag":"El panorama que viene","price":"3","features":["Futuro del trabajo","Transformación digital","Habilidades clave"]},{"features":["Planeación eficiente","Evaluación rápida","Retroalimentación mejorada"],"primaryButton":{"text":"Agenda tu diagnóstico gratuito","href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao"},"description":"Acompañamos a los docentes para que la IA les devuelva tiempo en planeación, evaluación y retroalimentación, y mejore su metodología sin reemplazar su criterio pedagógico.","price":"4","tag":"Para maestros: potenciar la metodología"}]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Security.tsx
Normal file
22
src/pages/HomePage/sections/Security.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "security" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBento from "@/components/sections/features/FeaturesBento";
|
||||
import { Shield, AlertTriangle, Bug, FileWarning, Skull, Lock, Clock, Zap, Layers } from "lucide-react";
|
||||
|
||||
export default function SecuritySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="security" data-section="security">
|
||||
<FeaturesBento
|
||||
textAnimation="slide-up"
|
||||
tag="Para quién"
|
||||
title="Empresas e Instituciones Educativas"
|
||||
description="Capacitamos a tu equipo en las herramientas e infraestructura de IA que tu operación necesita — aplicadas a tus procesos reales, no a ejemplos genéricos. Formamos comunidades educativas para usar la IA con criterio: potenciar el aprendizaje, impulsar el emprendimiento y preparar a estudiantes y maestros para el futuro que ya llegó."
|
||||
primaryButton={{"text":"Agenda tu diagnóstico gratuito","href":"https://calendly.com/ceo-wearevoria/meeting-senior-partner-voriao"}}
|
||||
secondaryButton={{"href":"#como-funciona","text":"Conoce cómo funciona"}}
|
||||
features={[{"description":"Tu equipo domina ChatGPT, Copilot y automatizaciones aplicadas a su día a día: cotizar en minutos, redactar informes solos, responder clientes sin saturarse.","title":"Herramientas que se usan desde el día uno","marqueeTexts":["ChatGPT","Copilot","Automatizaciones","Cotizaciones"],"bentoComponent":"icon-text-marquee","centerIcon":"Zap"},{"bentoComponent":"tilted-stack-cards","description":"Montamos y enseñamos a operar el stack de IA que tu empresa necesita, conectado a tus sistemas. Autonomía real, no dependencia de un consultor.","stackCards":[{"detail":"Conectado","title":"Infraestructura de IA","icon":"Layers","subtitle":"A la medida"},{"icon":"Shield","subtitle":"Sin dependencia","title":"Autonomía","detail":"Real"},{"detail":"Integrado","icon":"Zap","subtitle":"En tus sistemas","title":"Stack de IA"}],"title":"Infraestructura de IA a la medida"},{"exchanges":[{"aiResponse":"Automatizando tarea repetitiva...","userMessage":"Redactar informe mensual"},{"aiResponse":"Generando borrador...","userMessage":"Responder a cliente"},{"aiResponse":"Analizando datos...","userMessage":"Revisar cotización"}],"userIcon":"Shield","bentoComponent":"chat-marquee","description":"La IA se queda con lo tedioso. Tu gente se queda con lo que exige criterio y decisión. Un equipo que rinde como uno más grande, sin contratar.","placeholder":"Escribe un comando...","aiIcon":"Zap","title":"IA que potencia al empleado, no que lo reemplaza"},{"title":"El problema no es la IA","description":"48% de las empresas en Colombia no usa IA — no por miedo ni por costo, sino porque no sabe qué herramienta resuelve su problema. (Fuente: CONPES 4144)","bentoComponent":"orbiting-icons","centerIcon":"Zap","orbitIcons":["Shield","Zap","Layers","Clock"]}]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
35
src/pages/HomePage/sections/Team.tsx
Normal file
35
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamOverlayCards from "@/components/sections/team/TeamOverlayCards";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<TeamOverlayCards
|
||||
textAnimation="slide-up"
|
||||
tag="Cómo funciona"
|
||||
title="3 pasos claros"
|
||||
description="Del 'quiero' al 'ya lo estamos usando', en semanas."
|
||||
members={[
|
||||
{
|
||||
name: "Diagnóstico gratis",
|
||||
role: "Analizamos tu operación y salimos con el mapa de qué se puede automatizar.",
|
||||
imageSrc: ""
|
||||
},
|
||||
{
|
||||
name: "Programa aplicado in-company",
|
||||
role: "Capacitamos a tu equipo sobre tus procesos reales; cada sesión deja algo funcionando.",
|
||||
imageSrc: ""
|
||||
},
|
||||
{
|
||||
name: "Acompañamiento",
|
||||
role: "Te acompañamos hasta que el proceso quede rodando solo, y volvemos por el siguiente.",
|
||||
imageSrc: ""
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user