Merge version_2_1782141719215 into main #2
@@ -1,5 +1,5 @@
|
||||
import FooterSimpleCard from '@/components/sections/footer/FooterSimpleCard';
|
||||
import NavbarDropdown from '@/components/ui/NavbarDropdown';
|
||||
import NavbarFloatingLogo from '@/components/ui/NavbarFloatingLogo';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import { Outlet } from 'react-router-dom';
|
||||
@@ -41,8 +41,9 @@ export default function Layout() {
|
||||
<StyleProvider buttonVariant="default" siteBackground="gridDots" heroBackground="lightRaysCenter">
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarDropdown
|
||||
<NavbarFloatingLogo
|
||||
logo="StudyPhase"
|
||||
logoImageSrc="https://storage.googleapis.com/webild/users/user_3FUrHlCP4jtWJZGQp1CMN4kBeZr/uploaded-1782141202944-19cao9h7.png"
|
||||
ctaButton={{
|
||||
text: "Book Tutor",
|
||||
href: "#contact",
|
||||
@@ -127,4 +128,4 @@ export default function Layout() {
|
||||
</SectionErrorBoundary>
|
||||
</StyleProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,182 +1,39 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TeamStackedCards from '@/components/sections/team/TeamStackedCards';
|
||||
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
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 FeaturesSection from './HomePage/sections/Features';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialSection from './HomePage/sections/Social';
|
||||
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">
|
||||
<HeroBillboard
|
||||
tag="Personalised Tutoring Excellence"
|
||||
title="Unlocking Your Child’s Full Academic Potential"
|
||||
description="Expert home and online tutoring from Early Years to Secondary level. Delivering British, Cambridge, and international curricula with a focus on confidence, performance, and results."
|
||||
primaryButton={{
|
||||
text: "Get Started", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "Learn More", href: "#about"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/concentrated-hipster-writes-notebook-information-he-hears-from-female-who-reads-news-from-internet-website-beautiful-black-girl-keyboards-laptop-computer_273609-44838.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Mission"
|
||||
quote="We focus on building confidence, improving performance, and nurturing each child’s potential. Our highly qualified teachers work across diverse curricula to make learning structured and result-oriented."
|
||||
author="Operations Team"
|
||||
role="StudyPhase Tutoring Service"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/brainstroming-education-concept-two-students-discuss-their-subject-write-notebook-create-article-blog-discuss-ideas-development-sit-coworking-space-tutor-gives-private-lesson_273609-28933.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="Services"
|
||||
title="Comprehensive Educational Support"
|
||||
description="Tailored solutions for every learner, ensuring academic success at every stage."
|
||||
items={[
|
||||
{
|
||||
tag: "Curriculum", title: "Diverse Curricula", description: "Expert delivery across British, Cambridge, Nigerian, and international academic standards.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-working-late-night-computer-home_52683-105038.jpg"},
|
||||
{
|
||||
tag: "Feedback", title: "Progress Tracking", description: "Regular check-ins with our operations team to provide feedback, updates, and follow-up support.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-giving-presentation-office-pandemic-with-mask_23-2148666343.jpg"},
|
||||
{
|
||||
tag: "Recognition", title: "Achievement Awards", description: "Celebrating every success to make learning engaging and motivating for students.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/class-2025-celebration_23-2151966277.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Success Stats"
|
||||
title="Proven Academic Results"
|
||||
description="Our commitment to quality tutoring ensures students thrive in their academic pursuits."
|
||||
metrics={[
|
||||
{
|
||||
value: "5.0", title: "Google Rating", features: [
|
||||
"Verified reviews", "Top-tier service", "Trusted teachers"],
|
||||
},
|
||||
{
|
||||
value: "100%", title: "Personalized", features: [
|
||||
"Custom curricula", "Confidence building", "Result-oriented"],
|
||||
},
|
||||
{
|
||||
value: "24/7", title: "Accessibility", features: [
|
||||
"Always open", "Global support", "Flexible hours"],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamStackedCards
|
||||
tag="Our Experts"
|
||||
title="Highly Qualified Educators"
|
||||
description="Experienced teachers dedicated to nurturing your child's academic journey."
|
||||
members={[
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Head of Primary", imageSrc: "http://img.b2bpic.net/free-photo/man-teacher-wearing-glasses-sitting-school-desk-with-class-register-front-blackboard-classroom-holding-number-plates-explaining-lesson-showing-thumb-up-happy-positive_141793-131601.jpg"},
|
||||
{
|
||||
name: "Mark Adeyemi", role: "Senior STEM Tutor", imageSrc: "http://img.b2bpic.net/free-photo/serious-young-blonde-female-teacher-wearing-glasses-classroom-standing-front-chalkboard-profile-view-leaning-head-chalkboard-looking-camera_141793-105255.jpg"},
|
||||
{
|
||||
name: "Jane Wilson", role: "International Curriculum Lead", imageSrc: "http://img.b2bpic.net/free-photo/brunette-businesswoman-posing_23-2148142135.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Reviews"
|
||||
title="What Our Families Say"
|
||||
description="Trusted by hundreds of parents and students to deliver academic excellence."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Johnson", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-father-daughter_23-2147615879.jpg"},
|
||||
{
|
||||
name: "Michael Chen", role: "Student", company: "Learner", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-smiling-blond-woman-standing-street-with-notebooks-carries-journal-work_1258-205929.jpg"},
|
||||
{
|
||||
name: "Emily Rodriguez", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-table-with-book_273609-12710.jpg"},
|
||||
{
|
||||
name: "David Kim", role: "Student", company: "Learner", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-young-partners-cooperate-together-workspace-give-high-five-each-other-have-overjoyed-expressions-work-research-write-down-records-notepad-ponder-idea-work-as-team_273609-28945.jpg"},
|
||||
{
|
||||
name: "Linda Thompson", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-helping-kid-with-homework_23-2149610754.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Accredited Excellence"
|
||||
title="Partners & Curriculum Standards"
|
||||
description="Recognized by leading educational bodies globally."
|
||||
names={[
|
||||
"British Council", "Cambridge International", "Nigerian Educational Board", "International Baccalaureate", "Edexcel", "Oxford Learning", "Global Tutor Network"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Support"
|
||||
title="Common Questions"
|
||||
description="Everything you need to know about starting your child's tutoring journey with us."
|
||||
items={[
|
||||
{
|
||||
question: "What curricula do you teach?", answer: "We deliver lessons across British, Cambridge, Nigerian, and international curricula."},
|
||||
{
|
||||
question: "Are tutors qualified?", answer: "Yes, our tutors are highly qualified, experienced, and undergo rigorous selection processes."},
|
||||
{
|
||||
question: "Do you provide progress updates?", answer: "Absolutely. Tutors check in regularly with our operations team to provide feedback and updates."},
|
||||
{
|
||||
question: "Can we do online tutoring?", answer: "Yes, we offer both personalized home-based and flexible online tutoring services."},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/father-being-tutor-her-daughter-indoors_23-2148510994.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Start Today"
|
||||
text="Ready to unlock your child's potential? Book a session with us today."
|
||||
primaryButton={{
|
||||
text: "Call 0907 336 7103", href: "tel:09073367103"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us", href: "mailto:info@studyphase.com"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.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 "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Mission"
|
||||
quote="We focus on building confidence, improving performance, and nurturing each child’s potential. Our highly qualified teachers work across diverse curricula to make learning structured and result-oriented."
|
||||
author="Operations Team"
|
||||
role="StudyPhase Tutoring Service"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/brainstroming-education-concept-two-students-discuss-their-subject-write-notebook-create-article-blog-discuss-ideas-development-sit-coworking-space-tutor-gives-private-lesson_273609-28933.jpg"
|
||||
/>
|
||||
</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="Start Today"
|
||||
text="Ready to unlock your child's potential? Book a session with us today."
|
||||
primaryButton={{
|
||||
text: "Call 0907 336 7103", href: "tel:09073367103"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us", href: "mailto:info@studyphase.com"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Faq.tsx
Normal file
31
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Support"
|
||||
title="Common Questions"
|
||||
description="Everything you need to know about starting your child's tutoring journey with us."
|
||||
items={[
|
||||
{
|
||||
question: "What curricula do you teach?", answer: "We deliver lessons across British, Cambridge, Nigerian, and international curricula."},
|
||||
{
|
||||
question: "Are tutors qualified?", answer: "Yes, our tutors are highly qualified, experienced, and undergo rigorous selection processes."},
|
||||
{
|
||||
question: "Do you provide progress updates?", answer: "Absolutely. Tutors check in regularly with our operations team to provide feedback and updates."},
|
||||
{
|
||||
question: "Can we do online tutoring?", answer: "Yes, we offer both personalized home-based and flexible online tutoring services."},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/father-being-tutor-her-daughter-indoors_23-2148510994.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Features.tsx
Normal file
34
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="Services"
|
||||
title="Comprehensive Educational Support"
|
||||
description="Tailored solutions for every learner, ensuring academic success at every stage."
|
||||
items={[
|
||||
{
|
||||
tag: "Curriculum", title: "Diverse Curricula", description: "Expert delivery across British, Cambridge, Nigerian, and international academic standards.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-working-late-night-computer-home_52683-105038.jpg"},
|
||||
{
|
||||
tag: "Feedback", title: "Progress Tracking", description: "Regular check-ins with our operations team to provide feedback, updates, and follow-up support.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-giving-presentation-office-pandemic-with-mask_23-2148666343.jpg"},
|
||||
{
|
||||
tag: "Recognition", title: "Achievement Awards", description: "Celebrating every success to make learning engaging and motivating for students.", primaryButton: {
|
||||
text: "Explore", href: "#"},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/class-2025-celebration_23-2151966277.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
76
src/pages/HomePage/sections/Hero.tsx
Normal file
76
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,76 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import AvatarGroup from "@/components/ui/AvatarGroup";
|
||||
|
||||
const primaryButton = {
|
||||
text: "Get Started",
|
||||
href: "#contact"
|
||||
};
|
||||
const secondaryButton = {
|
||||
text: "Learn More",
|
||||
href: "#about"
|
||||
};
|
||||
|
||||
type HeroBillboardProps = {
|
||||
tag?: string;
|
||||
title: string;
|
||||
description: string;
|
||||
primaryButton: { text: string; href: string };
|
||||
secondaryButton: { text: string; href: string };
|
||||
avatarsSrc?: string[];
|
||||
avatarsLabel?: string;
|
||||
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
|
||||
|
||||
const HeroInline = () => {
|
||||
return (
|
||||
<section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30">
|
||||
<HeroBackgroundSlot />
|
||||
<div className="flex flex-col gap-12 md:gap-15 w-content-width mx-auto">
|
||||
<div className="flex flex-col items-center gap-3 text-center">
|
||||
<ImageOrVideo imageSrc="https://storage.googleapis.com/webild/users/user_3FUrHlCP4jtWJZGQp1CMN4kBeZr/uploaded-1782141202943-h6c7igr8.png" className="h-24 md:h-32 w-auto mb-4 object-contain" />
|
||||
<div className="px-3 py-1 mb-1 text-sm card rounded w-fit">
|
||||
<p>Personalised Tutoring Excellence</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"Unlocking Your Child’s Full Academic Potential"}
|
||||
variant="fade"
|
||||
gradientText={true}
|
||||
tag="h1"
|
||||
className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={"Expert home and online tutoring from Early Years to Secondary level. Delivering British, Cambridge, and international curricula with a focus on confidence, performance, and results."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance"
|
||||
/>
|
||||
|
||||
<div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3">
|
||||
<Button text={primaryButton.text} href={primaryButton.href} variant="primary"/>
|
||||
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary" animationDelay={0.1} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ScrollReveal variant="fade-blur" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden">
|
||||
<ImageOrVideo imageSrc={"http://img.b2bpic.net/free-photo/concentrated-hipster-writes-notebook-information-he-hears-from-female-who-reads-news-from-internet-website-beautiful-black-girl-keyboards-laptop-computer_273609-44838.jpg"} className="aspect-4/5 md:aspect-video" />
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function HeroSection() {
|
||||
return (
|
||||
<div data-webild-section="hero" id="hero">
|
||||
<HeroInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Metrics.tsx
Normal file
34
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// 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 MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Success Stats"
|
||||
title="Proven Academic Results"
|
||||
description="Our commitment to quality tutoring ensures students thrive in their academic pursuits."
|
||||
metrics={[
|
||||
{
|
||||
value: "5.0", title: "Google Rating", features: [
|
||||
"Verified reviews", "Top-tier service", "Trusted teachers"],
|
||||
},
|
||||
{
|
||||
value: "100%", title: "Personalized", features: [
|
||||
"Custom curricula", "Confidence building", "Result-oriented"],
|
||||
},
|
||||
{
|
||||
value: "24/7", title: "Accessibility", features: [
|
||||
"Always open", "Global support", "Flexible hours"],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Social.tsx
Normal file
22
src/pages/HomePage/sections/Social.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 "social" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Accredited Excellence"
|
||||
title="Partners & Curriculum Standards"
|
||||
description="Recognized by leading educational bodies globally."
|
||||
names={[
|
||||
"British Council", "Cambridge International", "Nigerian Educational Board", "International Baccalaureate", "Edexcel", "Oxford Learning", "Global Tutor Network"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Team.tsx
Normal file
28
src/pages/HomePage/sections/Team.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 "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamStackedCards from '@/components/sections/team/TeamStackedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamStackedCards
|
||||
tag="Our Experts"
|
||||
title="Highly Qualified Educators"
|
||||
description="Experienced teachers dedicated to nurturing your child's academic journey."
|
||||
members={[
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Head of Primary", imageSrc: "http://img.b2bpic.net/free-photo/man-teacher-wearing-glasses-sitting-school-desk-with-class-register-front-blackboard-classroom-holding-number-plates-explaining-lesson-showing-thumb-up-happy-positive_141793-131601.jpg"},
|
||||
{
|
||||
name: "Mark Adeyemi", role: "Senior STEM Tutor", imageSrc: "http://img.b2bpic.net/free-photo/serious-young-blonde-female-teacher-wearing-glasses-classroom-standing-front-chalkboard-profile-view-leaning-head-chalkboard-looking-camera_141793-105255.jpg"},
|
||||
{
|
||||
name: "Jane Wilson", role: "International Curriculum Lead", imageSrc: "http://img.b2bpic.net/free-photo/brunette-businesswoman-posing_23-2148142135.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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Reviews"
|
||||
title="What Our Families Say"
|
||||
description="Trusted by hundreds of parents and students to deliver academic excellence."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Johnson", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-father-daughter_23-2147615879.jpg"},
|
||||
{
|
||||
name: "Michael Chen", role: "Student", company: "Learner", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-smiling-blond-woman-standing-street-with-notebooks-carries-journal-work_1258-205929.jpg"},
|
||||
{
|
||||
name: "Emily Rodriguez", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-table-with-book_273609-12710.jpg"},
|
||||
{
|
||||
name: "David Kim", role: "Student", company: "Learner", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-young-partners-cooperate-together-workspace-give-high-five-each-other-have-overjoyed-expressions-work-research-write-down-records-notepad-ponder-idea-work-as-team_273609-28945.jpg"},
|
||||
{
|
||||
name: "Linda Thompson", role: "Parent", company: "Client", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-helping-kid-with-homework_23-2149610754.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user