Merge version_2_1781551004081 into main #2
@@ -8,7 +8,7 @@
|
||||
--background: #0a0a0a;
|
||||
--card: #1a1a1a;
|
||||
--foreground: #ffffffe6;
|
||||
--primary-cta: #e6e6e6;
|
||||
--primary-cta: #ff3366;
|
||||
--primary-cta-text: #0a0a0a;
|
||||
--secondary-cta: #1a1a1a;
|
||||
--secondary-cta-text: #ffffffe6;
|
||||
|
||||
@@ -1,160 +1,36 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ExpertiseSection from './HomePage/sections/Expertise';
|
||||
import ProjectsSection from './HomePage/sections/Projects';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="AI & Systems Consultant"
|
||||
title="Eriane Laxamana: Innovating the Digital Future"
|
||||
description="I specialize in creating efficient AI-driven systems and high-performing digital platforms that scale businesses and solve complex challenges."
|
||||
primaryButton={{
|
||||
text: "View Projects", href: "#projects"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Me", href: "#contact"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/businesswoman-working-laptop-background_53876-104033.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Driven by innovation, precision, and the goal to simplify complex systems through cutting-edge technology."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="expertise" data-section="expertise">
|
||||
<SectionErrorBoundary name="expertise">
|
||||
<FeaturesRevealCards
|
||||
tag="Core Competencies"
|
||||
title="My Technical Focus"
|
||||
description="Comprehensive skill set across systems design, AI development, and digital product strategy."
|
||||
items={[
|
||||
{
|
||||
title: "AI System Architecture", description: "Designing and deploying neural architectures that drive intelligent business automation.", imageSrc: "http://img.b2bpic.net/free-photo/5g-connection-technology-background-with-man-using-futuristic-virtual-screen-digital-remix_53876-108511.jpg"},
|
||||
{
|
||||
title: "Strategic Digital Design", description: "Creating high-converting user interfaces and experiences for data-heavy software.", imageSrc: "http://img.b2bpic.net/free-photo/artist-using-tablet-stylus-pen_23-2152007744.jpg"},
|
||||
{
|
||||
title: "Full-Stack Development", description: "Building robust backends and frontend experiences that perform under heavy scale.", imageSrc: "http://img.b2bpic.net/free-photo/computers-data-center-running-server-rigs-diagnostic-tests_482257-118495.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ExpertiseSection />
|
||||
|
||||
<div id="projects" data-section="projects">
|
||||
<SectionErrorBoundary name="projects">
|
||||
<FeaturesImageBento
|
||||
tag="Portfolio"
|
||||
title="Select Work Showcase"
|
||||
description="A collection of impactful projects ranging from AI-driven apps to corporate platforms."
|
||||
items={[
|
||||
{
|
||||
title: "Neural Connect App", description: "AI communication tool.", imageSrc: "http://img.b2bpic.net/free-photo/still-life-books-versus-technology_23-2150063043.jpg"},
|
||||
{
|
||||
title: "DataDash Hub", description: "Corporate BI dashboard.", imageSrc: "http://img.b2bpic.net/free-photo/digital-dashboard_23-2151957114.jpg"},
|
||||
{
|
||||
title: "Smart Chat System", description: "Intelligent automated support.", imageSrc: "http://img.b2bpic.net/free-photo/phone-with-ai-chat_1268-21801.jpg"},
|
||||
{
|
||||
title: "ShopLogic Pro", description: "E-commerce scaling engine.", imageSrc: "http://img.b2bpic.net/free-photo/still-life-fashion-designer-s-office_23-2150543698.jpg"},
|
||||
{
|
||||
title: "CloudStream Architect", description: "Enterprise cloud platform.", imageSrc: "http://img.b2bpic.net/free-vector/infographic-template-design_1262-2522.jpg"},
|
||||
{
|
||||
title: "BrandSphere UI", description: "Corporate branding visualizer.", imageSrc: "http://img.b2bpic.net/free-photo/minimal-style-device-screen_23-2151913296.jpg"},
|
||||
{
|
||||
title: "Portfolio Showcase", description: "Digital portfolio framework.", imageSrc: "http://img.b2bpic.net/free-photo/blank-folded-paper-poster-hanging-wooden-wall-template-mock-up-adding-your-design_1253-1604.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProjectsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Client Success"
|
||||
title="What Partners Say"
|
||||
description="Trusted by industry leaders to deliver exceptional results."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Marcus Thorne", role: "CEO", quote: "Eriane's expertise in system design transformed our output metrics.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stylish-young-redhead-woman-wearing-grey-checkered-shirt-laughing-out-loud-while-having-fun-indoors_273609-9041.jpg"},
|
||||
{
|
||||
name: "Sarah Jenkins", role: "CTO", quote: "Professional, precise, and results-oriented. A true technical partner.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-young-businesswoman-wearing-eyeglasses_1262-4761.jpg"},
|
||||
{
|
||||
name: "David Wu", role: "Founder", quote: "The AI architecture Eriane built is foundational to our entire platform.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-happy-middle-aged-business-leader_1262-4823.jpg"},
|
||||
{
|
||||
name: "Emma Roberts", role: "Product Manager", quote: "Exceptional communication and technical execution every single time.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg"},
|
||||
{
|
||||
name: "James Chen", role: "Head of Engineering", quote: "I highly recommend Eriane for complex, high-stakes system integration.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crazy-man-angry-expression_1194-4808.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Impact"
|
||||
title="Performance Driven"
|
||||
description="Quantifiable results from my recent system integrations and deployments."
|
||||
metrics={[
|
||||
{
|
||||
value: "150+", description: "Projects successfully deployed"},
|
||||
{
|
||||
value: "99.9%", description: "System uptime performance"},
|
||||
{
|
||||
value: "2x", description: "Average client efficiency gain"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Common Inquiries"
|
||||
description="Answering the most frequent questions about my consultancy and working model."
|
||||
categories={[
|
||||
{
|
||||
name: "Consultancy", items: [
|
||||
{
|
||||
question: "What is your typical onboarding process?", answer: "I conduct a thorough initial discovery call to understand business constraints before drafting a technical roadmap."},
|
||||
{
|
||||
question: "Do you work on ongoing retainer basis?", answer: "Yes, I offer monthly retainers for long-term systems management and architecture support."},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready to work?"
|
||||
text="Let's build the future together. Reach out for a discovery session."
|
||||
primaryButton={{
|
||||
text: "Email Me", href: "mailto:erianelaxamana@example.com"}}
|
||||
secondaryButton={{
|
||||
text: "View LinkedIn", href: "https://linkedin.com/in/erianelaxamana"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
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';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Driven by innovation, precision, and the goal to simplify complex systems through cutting-edge technology."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Contact.tsx
Normal file
23
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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 ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready to work?"
|
||||
text="Let's build the future together. Reach out for a discovery session."
|
||||
primaryButton={{
|
||||
text: "Email Me", href: "mailto:erianelaxamana@example.com"}}
|
||||
secondaryButton={{
|
||||
text: "View LinkedIn", href: "https://linkedin.com/in/erianelaxamana"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Expertise.tsx
Normal file
28
src/pages/HomePage/sections/Expertise.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "expertise" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ExpertiseSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="expertise" data-section="expertise">
|
||||
<SectionErrorBoundary name="expertise">
|
||||
<FeaturesRevealCards
|
||||
tag="Core Competencies"
|
||||
title="My Technical Focus"
|
||||
description="Comprehensive skill set across systems design, AI development, and digital product strategy."
|
||||
items={[
|
||||
{
|
||||
title: "AI System Architecture", description: "Designing and deploying neural architectures that drive intelligent business automation.", imageSrc: "http://img.b2bpic.net/free-photo/5g-connection-technology-background-with-man-using-futuristic-virtual-screen-digital-remix_53876-108511.jpg"},
|
||||
{
|
||||
title: "Strategic Digital Design", description: "Creating high-converting user interfaces and experiences for data-heavy software.", imageSrc: "http://img.b2bpic.net/free-photo/artist-using-tablet-stylus-pen_23-2152007744.jpg"},
|
||||
{
|
||||
title: "Full-Stack Development", description: "Building robust backends and frontend experiences that perform under heavy scale.", imageSrc: "http://img.b2bpic.net/free-photo/computers-data-center-running-server-rigs-diagnostic-tests_482257-118495.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/Faq.tsx
Normal file
30
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Common Inquiries"
|
||||
description="Answering the most frequent questions about my consultancy and working model."
|
||||
categories={[
|
||||
{
|
||||
name: "Consultancy", items: [
|
||||
{
|
||||
question: "What is your typical onboarding process?", answer: "I conduct a thorough initial discovery call to understand business constraints before drafting a technical roadmap."},
|
||||
{
|
||||
question: "Do you work on ongoing retainer basis?", answer: "Yes, I offer monthly retainers for long-term systems management and architecture support."},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Hero.tsx
Normal file
25
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="AI & Systems Consultant"
|
||||
title="Eriane Laxamana: Innovating the Digital Future"
|
||||
description="I specialize in creating efficient AI-driven systems and high-performing digital platforms that scale businesses and solve complex challenges."
|
||||
primaryButton={{
|
||||
text: "View Projects", href: "#projects"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Me", href: "#contact"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/businesswoman-working-laptop-background_53876-104033.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Metrics.tsx
Normal file
28
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Impact"
|
||||
title="Performance Driven"
|
||||
description="Quantifiable results from my recent system integrations and deployments."
|
||||
metrics={[
|
||||
{
|
||||
value: "150+", description: "Projects successfully deployed"},
|
||||
{
|
||||
value: "99.9%", description: "System uptime performance"},
|
||||
{
|
||||
value: "2x", description: "Average client efficiency gain"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Projects.tsx
Normal file
36
src/pages/HomePage/sections/Projects.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "projects" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProjectsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="projects" data-section="projects">
|
||||
<SectionErrorBoundary name="projects">
|
||||
<FeaturesImageBento
|
||||
tag="Portfolio"
|
||||
title="Select Work Showcase"
|
||||
description="A collection of impactful projects ranging from AI-driven apps to corporate platforms."
|
||||
items={[
|
||||
{
|
||||
title: "Neural Connect App", description: "AI communication tool.", imageSrc: "http://img.b2bpic.net/free-photo/still-life-books-versus-technology_23-2150063043.jpg"},
|
||||
{
|
||||
title: "DataDash Hub", description: "Corporate BI dashboard.", imageSrc: "http://img.b2bpic.net/free-photo/digital-dashboard_23-2151957114.jpg"},
|
||||
{
|
||||
title: "Smart Chat System", description: "Intelligent automated support.", imageSrc: "http://img.b2bpic.net/free-photo/phone-with-ai-chat_1268-21801.jpg"},
|
||||
{
|
||||
title: "ShopLogic Pro", description: "E-commerce scaling engine.", imageSrc: "http://img.b2bpic.net/free-photo/still-life-fashion-designer-s-office_23-2150543698.jpg"},
|
||||
{
|
||||
title: "CloudStream Architect", description: "Enterprise cloud platform.", imageSrc: "http://img.b2bpic.net/free-vector/infographic-template-design_1262-2522.jpg"},
|
||||
{
|
||||
title: "BrandSphere UI", description: "Corporate branding visualizer.", imageSrc: "http://img.b2bpic.net/free-photo/minimal-style-device-screen_23-2151913296.jpg"},
|
||||
{
|
||||
title: "Portfolio Showcase", description: "Digital portfolio framework.", imageSrc: "http://img.b2bpic.net/free-photo/blank-folded-paper-poster-hanging-wooden-wall-template-mock-up-adding-your-design_1253-1604.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Testimonials.tsx
Normal file
37
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Client Success"
|
||||
title="What Partners Say"
|
||||
description="Trusted by industry leaders to deliver exceptional results."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Marcus Thorne", role: "CEO", quote: "Eriane's expertise in system design transformed our output metrics.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stylish-young-redhead-woman-wearing-grey-checkered-shirt-laughing-out-loud-while-having-fun-indoors_273609-9041.jpg"},
|
||||
{
|
||||
name: "Sarah Jenkins", role: "CTO", quote: "Professional, precise, and results-oriented. A true technical partner.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-young-businesswoman-wearing-eyeglasses_1262-4761.jpg"},
|
||||
{
|
||||
name: "David Wu", role: "Founder", quote: "The AI architecture Eriane built is foundational to our entire platform.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-happy-middle-aged-business-leader_1262-4823.jpg"},
|
||||
{
|
||||
name: "Emma Roberts", role: "Product Manager", quote: "Exceptional communication and technical execution every single time.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg"},
|
||||
{
|
||||
name: "James Chen", role: "Head of Engineering", quote: "I highly recommend Eriane for complex, high-stakes system integration.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crazy-man-angry-expression_1194-4808.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user