Compare commits
No commits in common. "77bcd5b1c8667f5e1d8ba371d3c9a754de3d9397" and "b64a67a064d57473204dac1ee3ee964ba13ac4e5" have entirely different histories.
77bcd5b1c8
...
b64a67a064
@ -2,15 +2,15 @@ import Layout from "@/components/layout/Layout";
|
||||
import AboutClient from "../about-us/AboutClient";
|
||||
|
||||
export const metadata = {
|
||||
title: "The Best Physiotherapy in Etobicoke - Rapha Rehab Clinic",
|
||||
title: "About Us – Rapharehab Clinic",
|
||||
description:
|
||||
"Rapha Rehab offers top physiotherapy, osteopath & massage therapy in Etobicoke, Mississauga. Trusted physio & hand massage specialists.",
|
||||
"Learn more about Rapha Rehab Physiotherapy and Rehabilitation Clinic in Etobicoke. Discover our mission, vision, values, and experienced physiotherapy team.",
|
||||
};
|
||||
|
||||
export default function AboutPage() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="About Us"
|
||||
bannerImage="/assets/images/about-us/about-us-banner.webp"
|
||||
|
||||
@ -33,7 +33,7 @@ export default function AccidentDetailsPage({ params }) {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle={`${service.title}`}
|
||||
bannerImage={service.bannerImage}
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
|
||||
export default function AccidentPage() {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Accident" bannerImage="/assets/images/accident/accident-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Accident" bannerImage="/assets/images/accident/accident-banner.webp">
|
||||
<section className="service-section sec-pad-2">
|
||||
<div className="auto-container">
|
||||
<div className="row clearfix">
|
||||
|
||||
@ -34,7 +34,7 @@ export default function AreaOfInjuryDetails({ params }) {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle={service.title}
|
||||
bannerImage={service.bannerImage}
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function AreaOfInjury() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="Areas of Injury"
|
||||
bannerImage="/assets/images/areas-of-injury/area-of-injury-banner.webp"
|
||||
|
||||
@ -36,7 +36,7 @@ export default function BlogDetails({ params }) {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle={blog.title}
|
||||
bannerImage={blog.bannerImage}
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
|
||||
export default function Blog() {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Blog" bannerImage="/assets/images/blog/blog-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Blog" bannerImage="/assets/images/blog/blog-banner.webp">
|
||||
<section className="news-section sec-pad">
|
||||
<div className="auto-container">
|
||||
<div className="sec-title mb_50 centred">
|
||||
|
||||
@ -24,7 +24,7 @@ export default function Home() {
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Caregivers" bannerImage="/assets/images/caregivers/caregivers-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Caregivers" bannerImage="/assets/images/caregivers/caregivers-banner.webp">
|
||||
<section className="feature-section pt_90 pb_90">
|
||||
<div className="shape" style={{ backgroundImage: 'url(/assets/images/shape/shape-6.png)' }}></div>
|
||||
<div className="auto-container">
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function ContactPage() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="Contact Us"
|
||||
bannerImage="/assets/images/contact/contact-us-banner.webp"
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function CovidPage() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="COVID-19 Updates"
|
||||
bannerImage="/assets/images/covid/covid-19-banner.webp"
|
||||
|
||||
@ -34,7 +34,7 @@ export default function ServiceDetailPage({ params }) {
|
||||
}
|
||||
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1}
|
||||
<Layout headerStyle={2} footerStyle={1}
|
||||
breadcrumbTitle={service.shortTitle}
|
||||
bannerImage={service.bannerImage}>
|
||||
<ServiceDetailClient slug={slug} service={service} servicesList={servicesList} />
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
|
||||
export default function ServicesPage() {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Services"
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Services"
|
||||
bannerImage="/assets/images/areas-of-injury/area-of-injury-banner.webp">
|
||||
<section className="service-section sec-pad-2">
|
||||
<div className="auto-container">
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function FaqPage() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="Faq's"
|
||||
bannerImage="/assets/images/faq/faq-banner.webp"
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function GalleryPage() {
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="Gallery"
|
||||
bannerImage="/assets/images/gallery-page/gallery-banner.webp"
|
||||
|
||||
@ -3,14 +3,14 @@ const PortfolioFilter1 = dynamic(() => import('@/components/elements/Locations')
|
||||
import Layout from "@/components/layout/Layout"
|
||||
|
||||
export const metadata = {
|
||||
title: "Rapha Rehab Locations - The Best Physiotherapy Clinic ",
|
||||
title: "Locations - rapharehab",
|
||||
description:
|
||||
"Explore Rapha Rehab locations across Chicago, Kansas, New Mexico, Nevada, New York & Texas. Find expert physiotherapy near you.",
|
||||
"Learn more about Rapha Rehab Physiotherapy and Rehabilitation Clinic in Etobicoke. Discover our mission, vision, values, and experienced physiotherapy team.",
|
||||
};
|
||||
|
||||
export default function Gallery() {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Locations" bannerImage="/assets/images/location/location-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Locations" bannerImage="/assets/images/location/location-banner.webp">
|
||||
<section className="gallery-section sec-pad">
|
||||
<div className="outer-container">
|
||||
<div className="sec-title centred mb_30">
|
||||
|
||||
@ -6,7 +6,7 @@ import { teamMembers } from "@/utils/constant.utils";
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Our Team" bannerImage="/assets/images/our-team/our-team-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Our Team" bannerImage="/assets/images/our-team/our-team-banner.webp">
|
||||
<section className="team-section pt_90 pb_90 centred">
|
||||
<div className="auto-container">
|
||||
<div className="sec-title mb_50">
|
||||
@ -24,11 +24,7 @@ export default function Home() {
|
||||
<div className="inner-box">
|
||||
<div className="image-box">
|
||||
<figure className="image">
|
||||
<img
|
||||
src={member.image}
|
||||
alt={member.name}
|
||||
style={{ width: "410px", height: "444px", objectFit: "cover" }}
|
||||
/>
|
||||
<img src={member.image} alt={member.name} />
|
||||
</figure>
|
||||
</div>
|
||||
<div className="lower-content">
|
||||
|
||||
@ -29,8 +29,8 @@ export async function generateMetadata({ params }) {
|
||||
}
|
||||
|
||||
return {
|
||||
title: member.metaTitle || `${member.name} – Rapha Rehab Clinic`,
|
||||
description: member.metaDis || `Learn more about ${member.name}, their experience, expertise, and services at Rapha Rehab Clinic in Etobicoke and Scarborough.`,
|
||||
title: `${member.name} – Rapha Rehab Clinic`,
|
||||
description: member.description || `Learn more about ${member.name}, their experience, expertise, and services at Rapha Rehab Clinic in Etobicoke and Scarborough.`,
|
||||
};
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ export default function TeamDetails({ params }) {
|
||||
|
||||
if (!member) {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Not Found">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Not Found">
|
||||
<div className="auto-container">
|
||||
<h2>Team member not found!</h2>
|
||||
<Link href="/" className="theme-btn btn-one">Go Back</Link>
|
||||
@ -50,7 +50,7 @@ export default function TeamDetails({ params }) {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle={member.name}
|
||||
bannerImage={member.bannerImage}
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
export default function About() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Our Approach" bannerImage="/assets/images/our-approach/our-approach-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Our Approach" bannerImage="/assets/images/our-approach/our-approach-banner.webp">
|
||||
{/* about-section */}
|
||||
<section className="about-style-two pt_90 pb_90">
|
||||
<div className="pattern-layer">
|
||||
|
||||
@ -11,7 +11,7 @@ export const metadata = {
|
||||
export default function About() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Payment And Insurance" bannerImage="/assets/images/payment-insurance/payment-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Payment And Insurance" bannerImage="/assets/images/payment-insurance/payment-banner.webp">
|
||||
{/* chooseus-section */}
|
||||
<section className="solutions-section">
|
||||
<div className="auto-container">
|
||||
|
||||
@ -28,7 +28,7 @@ export default function RehabilitationDetailsPage({ params }) {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle={`${service.title}`}
|
||||
bannerImage={service.bannerImage}
|
||||
|
||||
@ -10,7 +10,7 @@ export const metadata = {
|
||||
|
||||
export default function RehabilitationPage() {
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Rehabilitation" bannerImage="/assets/images/rehabilitation/rehabilation-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Rehabilitation" bannerImage="/assets/images/rehabilitation/rehabilation-banner.webp">
|
||||
<section className="service-section sec-pad-2">
|
||||
<div className="auto-container">
|
||||
<div className="row clearfix">
|
||||
|
||||
@ -10,7 +10,7 @@ export default function Home() {
|
||||
|
||||
return (
|
||||
<Layout
|
||||
headerStyle={1}
|
||||
headerStyle={2}
|
||||
footerStyle={1}
|
||||
breadcrumbTitle="Shortcodes"
|
||||
bannerImage="/assets/images/shortcodes/shortcodes-banner.webp"
|
||||
|
||||
@ -2,9 +2,9 @@ import Layout from "@/components/layout/Layout";
|
||||
import ShortcodesClient from "../shortcodes/ShortcodesClient";
|
||||
|
||||
export const metadata = {
|
||||
title: "Rapha Rehab Shortcodes - Helpful Service Snippets",
|
||||
title: "Shortcodes - rapharehab",
|
||||
description:
|
||||
"Explore Rapha Rehab’s service snippets: FAQs, payment & insurance, areas of injury, and more - quick access to key info in one place.",
|
||||
"Explore all available shortcodes for Rapha Rehab Clinic, including icon lists, care steps, team members, testimonials, and interactive content.",
|
||||
};
|
||||
|
||||
export default function ShortcodesPage() {
|
||||
|
||||
@ -11,7 +11,7 @@ export const metadata = {
|
||||
export default function About() {
|
||||
return (
|
||||
<>
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle=" What To Expect" bannerImage="/assets/images/what-we-expect/expect-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle=" What To Expect" bannerImage="/assets/images/what-we-expect/expect-banner.webp">
|
||||
{/* chooseus-section */}
|
||||
<section className="about-style-three pt_90 pb_90">
|
||||
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-35.webp)' }}></div>
|
||||
|
||||
@ -18,7 +18,7 @@ export default function Team() {
|
||||
{ name: 'Pre/Post Surgical Management', image: '/assets/images/why-us/img/surgical.webp' },
|
||||
];
|
||||
return (
|
||||
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Why Us" bannerImage="/assets/images/why-us/why-us-banner.webp">
|
||||
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Why Us" bannerImage="/assets/images/why-us/why-us-banner.webp">
|
||||
<section className="team-section pt_90 centred pb-0">
|
||||
<div className="pattern-layer">
|
||||
<div className="pattern-1" style={{ backgroundImage: 'url(/assets/images/shape/shape-13.webp)' }}></div>
|
||||
|
||||
@ -1,29 +1,14 @@
|
||||
'use client'
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
export default function Preloader() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
return (
|
||||
<>
|
||||
<div className="loader-wrap">
|
||||
<div className="preloader"><div className="preloader-close">Preloader Close</div></div>
|
||||
<div className="layer layer-one"><span className="overlay" /></div>
|
||||
<div className="layer layer-two"><span className="overlay" /></div>
|
||||
<div className="layer layer-three"><span className="overlay" /></div>
|
||||
</div>
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
const timer = setTimeout(() => {
|
||||
setLoading(false);
|
||||
}, 2000);
|
||||
|
||||
return () => clearTimeout(timer);
|
||||
}, []);
|
||||
|
||||
if (!loading) return null;
|
||||
|
||||
return (
|
||||
<div className="loader-wrap">
|
||||
<div className="preloader">
|
||||
<img src="/assets/images/logo.png" alt="rapharehab" className="preloader-icon" />
|
||||
{/* <div className="preloader-close">Preloader Close</div> */}
|
||||
</div>
|
||||
<div className="layer layer-one"><span className="overlay" /></div>
|
||||
<div className="layer layer-two"><span className="overlay" /></div>
|
||||
<div className="layer layer-three"><span className="overlay" /></div>
|
||||
</div>
|
||||
);
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ export default function Menu() {
|
||||
<Link className={router.pathname == "/index-2" ? "active" : ""}>Home Interior</Link>
|
||||
</ul> */}
|
||||
|
||||
<ul className="navigation new-nav clearfix">
|
||||
<ul className="navigation clearfix">
|
||||
<li className="dropdown"><Link href="/">Home</Link>
|
||||
{/* <ul>
|
||||
<li><Link href="/">Home Page One</Link></li>
|
||||
|
||||
@ -4,101 +4,107 @@ import Menu from "../Menu"
|
||||
import MobileMenu from "../MobileMenu"
|
||||
|
||||
export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) {
|
||||
return (
|
||||
<>
|
||||
<header className={`main-header ${scroll ? "fixed-header" : ""}`}>
|
||||
{/* Header Top */}
|
||||
<div className="header-top">
|
||||
<div className="auto-container">
|
||||
<div className="top-inner">
|
||||
<ul className="info-list clearfix">
|
||||
<li>
|
||||
<img
|
||||
src="/assets/images/icons/call.png"
|
||||
alt="Phone"
|
||||
style={{ marginRight: "8px" }}
|
||||
className="red-icon"
|
||||
/>
|
||||
<Link href="tel:647-722-3434">647-722-3434</Link>
|
||||
</li>
|
||||
<li>
|
||||
<img
|
||||
src="/assets/images/icons/mail.png"
|
||||
alt="Mail"
|
||||
style={{ marginRight: "8px" }}
|
||||
className="red-icon"
|
||||
/>
|
||||
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul className="social-links clearfix">
|
||||
<li><Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link></li>
|
||||
<li><Link href="/faq-physiotherapy-etobicoke">Faq</Link></li>
|
||||
<li><Link href="/what-to-expect">What To Expect</Link></li>
|
||||
<li><Link href="/payment-insurance">Payment And Insurance</Link></li>
|
||||
<li>
|
||||
<Link href="https://www.instagram.com/elrapharehab/" target="_blank" rel="noopener noreferrer">
|
||||
<i className="icon-4"></i>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank" rel="noopener noreferrer">
|
||||
<i className="icon-7"></i>
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
return (
|
||||
<>
|
||||
<header className={`main-header ${scroll ? "fixed-header" : ""}`}>
|
||||
{/* Header Top */}
|
||||
<div className="header-top">
|
||||
<div className="auto-container">
|
||||
<div className="top-inner">
|
||||
<ul className="info-list clearfix">
|
||||
<li>
|
||||
<i className="icon-1"></i>Mon - Fri 8:00 - 18:00 / Sunday 8:00 - 14:00
|
||||
</li>
|
||||
<li>
|
||||
<i className="icon-2"></i>Email: <Link href="tel:01989526503">0198-9526503</Link>
|
||||
</li>
|
||||
<li>
|
||||
<img src="assets/images/icons/icon-1.png" alt="location" /> 47 Bakery Street, London, UK
|
||||
</li>
|
||||
</ul>
|
||||
<ul className="social-links clearfix">
|
||||
<li>
|
||||
<Link href="/">
|
||||
<i className="icon-4"></i>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/">
|
||||
<i className="icon-5"></i>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/">
|
||||
<i className="icon-6"></i>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/">
|
||||
<i className="icon-7"></i>
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/* Header Upper */}
|
||||
<div className="header-lower">
|
||||
<div className="outer-container">
|
||||
<div className="outer-box new">
|
||||
<div className="logo-box">
|
||||
<figure className="logo">
|
||||
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
<div className="menu-area">
|
||||
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
</div>
|
||||
|
||||
<nav className="main-menu new-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Header Upper */}
|
||||
<div className="header-lower">
|
||||
<div className="outer-container">
|
||||
<div className="auto-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo">
|
||||
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="sticky-header">
|
||||
<div className="auto-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo">
|
||||
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
|
||||
</figure>
|
||||
<div className="menu-area">
|
||||
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
</div>
|
||||
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
<Menu/>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div className="btn-box">
|
||||
<Link href="/" className="theme-btn btn-one"><span>Request A Pickup</span></Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Sticky Header */}
|
||||
<div className="sticky-header">
|
||||
<div className="auto-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
|
||||
</div>
|
||||
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu/>
|
||||
</div>
|
||||
</nav>
|
||||
<ul className="menu-right-content">
|
||||
|
||||
<div className="btn-box">
|
||||
<Link href="/" className="theme-btn btn-one"><span>Request A Pickup</span></Link>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>{/* End Sticky Menu */}
|
||||
{/* Mobile Menu */}
|
||||
|
||||
<MobileMenu handleMobileMenu={handleMobileMenu} />
|
||||
</header>
|
||||
</>
|
||||
)
|
||||
<MobileMenu handleMobileMenu={handleMobileMenu} />
|
||||
</header>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@ -1,114 +1,120 @@
|
||||
'use client'
|
||||
import Link from "next/link";
|
||||
import Menu from "../Menu";
|
||||
import MobileMenu from "../MobileMenu";
|
||||
import Menu from "../Menu"
|
||||
import MobileMenu from "../MobileMenu"
|
||||
import Sidebar from "../Sidebar"
|
||||
|
||||
export default function Header2({
|
||||
scroll,
|
||||
isMobileMenu,
|
||||
handleMobileMenu,
|
||||
handlePopup,
|
||||
handleSidebar,
|
||||
isHome = false,
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<header
|
||||
className={`main-header header-style-two ${scroll ? "fixed-header" : ""} ${isHome ? "home-page" : ""}`}
|
||||
>
|
||||
{/* Header Top */}
|
||||
<div className="header-top">
|
||||
<div className="top-inner">
|
||||
<ul className="info-list clearfix">
|
||||
<li>
|
||||
<img
|
||||
src="/assets/images/icons/call.png"
|
||||
alt="Phone"
|
||||
style={{ marginRight: "8px" }}
|
||||
className="red-icon"
|
||||
/>
|
||||
<Link href="tel:647-722-3434">647-722-3434</Link>
|
||||
</li>
|
||||
<li>
|
||||
<img
|
||||
src="/assets/images/icons/mail.png"
|
||||
alt="Mail"
|
||||
style={{ marginRight: "8px" }}
|
||||
className="red-icon"
|
||||
/>
|
||||
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
|
||||
</li>
|
||||
</ul>
|
||||
export default function Header2({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) {
|
||||
return (
|
||||
<>
|
||||
<header className={`main-header header-style-two ${scroll ? "fixed-header" : ""}`}>
|
||||
{/* Header Top */}
|
||||
<div className="header-top">
|
||||
|
||||
<div className="top-inner">
|
||||
<ul className="info-list clearfix">
|
||||
<li>
|
||||
<img src="/assets/images/icons/call.png" alt="Phone" style={{ marginRight: "8px" }} />
|
||||
<Link href="tel:647-722-3434">647-722-3434</Link>
|
||||
</li>
|
||||
<li>
|
||||
<img src="/assets/images/icons/mail.png" alt="Mail" style={{ marginRight: "8px" }} />
|
||||
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
|
||||
</li>
|
||||
|
||||
<ul className="social-links clearfix">
|
||||
<li><Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link></li>
|
||||
<li><Link href="/faq-physiotherapy-etobicoke">Faq</Link></li>
|
||||
<li><Link href="/what-to-expect">What To Expect</Link></li>
|
||||
<li><Link href="/payment-insurance">Payment And Insurance</Link></li>
|
||||
<li>
|
||||
<Link href="https://www.instagram.com/elrapharehab/" target="_blank" rel="noopener noreferrer">
|
||||
<i className="icon-4"></i>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank" rel="noopener noreferrer">
|
||||
<i className="icon-7"></i>
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
{/* Header Lower */}
|
||||
<div className="header-lower">
|
||||
<div className="outer-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo">
|
||||
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
|
||||
</figure>
|
||||
</div>
|
||||
<ul className="social-links clearfix">
|
||||
<li>
|
||||
<Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/faq-physiotherapy-etobicoke">Faq</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/what-to-expect">What To Expect</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/payment-insurance">Payment And Insurance</Link>
|
||||
</li>
|
||||
<li><Link href="https://www.instagram.com/elrapharehab/" target="_blank"
|
||||
rel="noopener noreferrer"><i className="icon-4"></i></Link></li>
|
||||
{/* <li><Link href="/"><i className="icon-5"></i></Link></li> */}
|
||||
{/* <li><Link href="/"><i className="icon-6"></i></Link></li> */}
|
||||
<li><Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank"
|
||||
rel="noopener noreferrer"><i className="icon-7"></i></Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="menu-area">
|
||||
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
</div>
|
||||
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* Header Upper */}
|
||||
<div className="header-lower">
|
||||
<div className="outer-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
|
||||
</div>
|
||||
|
||||
{/* Sticky Header */}
|
||||
<div className="sticky-header">
|
||||
<div className="auto-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo">
|
||||
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
|
||||
</figure>
|
||||
</div>
|
||||
{/* Menu Right Content */}
|
||||
{/* <ul className="menu-right-content">
|
||||
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
<li className="search-box-outer search-toggler" onClick={handlePopup}>
|
||||
<i className="icon-27"></i>
|
||||
</li>
|
||||
<li className="nav-btn nav-toggler navSidebar-button clearfix" onClick={handleSidebar}>
|
||||
<i className="icon-28"></i>
|
||||
</li>
|
||||
</ul> */}
|
||||
<div className="menu-area">
|
||||
{/* Mobile Navigation Toggler */}
|
||||
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
<i className="icon-bar"></i>
|
||||
</div>
|
||||
{/* Main Menu */}
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/*End Header Upper*/}
|
||||
{/* Sticky Header */}
|
||||
<div className="sticky-header">
|
||||
<div className="auto-container">
|
||||
<div className="outer-box">
|
||||
<div className="logo-box">
|
||||
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
|
||||
</div>
|
||||
|
||||
{/* Mobile Menu */}
|
||||
<MobileMenu handleMobileMenu={handleMobileMenu} />
|
||||
</header>
|
||||
</>
|
||||
);
|
||||
<nav className="main-menu navbar-expand-md navbar-light clearfix">
|
||||
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
|
||||
<Menu />
|
||||
</div>
|
||||
</nav>
|
||||
<ul className="menu-right-content">
|
||||
|
||||
{/* <li className="search-box-outer search-toggler" onClick={handlePopup}>
|
||||
<i className="icon-27"></i>
|
||||
</li> */}
|
||||
{/* <li className="nav-btn nav-toggler navSidebar-button clearfix" onClick={handleSidebar}>
|
||||
<i className="icon-28"></i>
|
||||
</li> */}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>{/* End Sticky Menu */}
|
||||
{/* Mobile Menu */}
|
||||
|
||||
<MobileMenu handleMobileMenu={handleMobileMenu} />
|
||||
</header>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
'use client'
|
||||
import React, { useState } from 'react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import Link from "next/link";
|
||||
import { Autoplay, Navigation, Pagination } from "swiper/modules";
|
||||
import { Swiper, SwiperSlide } from "swiper/react";
|
||||
@ -61,10 +61,71 @@ export default function Banner() {
|
||||
const [activeIndex, setActiveIndex] = useState(0);
|
||||
const [isAnimating, setIsAnimating] = useState(false);
|
||||
|
||||
const slides = [
|
||||
{
|
||||
id: 0,
|
||||
variant: 'topToBottom',
|
||||
bgImage: '/assets/images/home/banner/home-banner-1.webp',
|
||||
upperText: 'The Journey to Better Health Begins here',
|
||||
title: 'Your Path to',
|
||||
titleSpan: 'Recovery',
|
||||
titleEnd: 'Starts Today',
|
||||
subtitle: 'Expert Physiotherapy in Mississauga for You.',
|
||||
description: 'Our skilled team provides physiotherapy in Mississauga to help you regain mobility and live pain-free. Compassionate care designed around your needs.',
|
||||
buttonText: 'Book Your Appointment',
|
||||
buttonLink: 'tel:+647-722-3434',
|
||||
contentStyle: 'mobile-style'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
variant: 'bottomToTop',
|
||||
bgImage: '/assets/images/home/banner/home-banner-2.webp',
|
||||
upperText: 'Compassionate Care, Delivered with Expertise',
|
||||
title: 'Healing Touch,',
|
||||
titleSpan: 'Fresh',
|
||||
titleEnd: 'Inner Strength',
|
||||
subtitle: 'Expert Hand Massage Techniques for Relief',
|
||||
description: 'Experience targeted hand massage therapy to ease tension and promote healing, delivered by experienced therapists focused on your comfort and well-being.',
|
||||
buttonText: 'Schedule a Massage',
|
||||
buttonLink: '/contact',
|
||||
contentStyle: 'with-background'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
variant: 'leftToRight',
|
||||
bgImage: '/assets/images/home/banner/home-banner-3.webp',
|
||||
upperText: 'Your Path to Complete Wellness Starts Here',
|
||||
title: 'Local Physio',
|
||||
titleSpan: 'Experts',
|
||||
titleEnd: 'Near You',
|
||||
subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
|
||||
description: 'Offering comprehensive physiotherapy and rehabilitation services in Etobicoke to support your wellness journey and help restore your strength efficiently.',
|
||||
buttonText: 'Explore Our Service',
|
||||
buttonLink: '/etobicoke-treatment-service',
|
||||
contentStyle: 'with-background'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
variant: 'rightToLeft',
|
||||
bgImage: '/assets/images/home/banner/home-banner-4.webp',
|
||||
upperText: 'Healing Hands, Caring Hearts in Action',
|
||||
title: 'Wellness',
|
||||
titleSpan: 'by the',
|
||||
titleEnd: 'Waterfront',
|
||||
subtitle: 'Waterfront Physio and Rehab Services.',
|
||||
description: 'Find peace and true healing with our specialized waterfront physio and rehab programs carefully designed for lasting wellness and a better quality of life.',
|
||||
buttonText: 'Visit Our Location',
|
||||
buttonLink: '/contact',
|
||||
contentStyle: 'with-background'
|
||||
}
|
||||
];
|
||||
|
||||
const handleSlideChange = (swiper) => {
|
||||
setIsAnimating(true);
|
||||
setActiveIndex(swiper.realIndex || 0);
|
||||
setTimeout(() => setIsAnimating(false), 1200);
|
||||
setTimeout(() => {
|
||||
setIsAnimating(false);
|
||||
}, 1200);
|
||||
};
|
||||
|
||||
return (
|
||||
@ -72,142 +133,69 @@ export default function Banner() {
|
||||
<Swiper
|
||||
{...swiperOptions}
|
||||
className="banner-carousel owl-theme owl-carousel owl-nav-none owl-dots-none"
|
||||
onSwiper={(swiper) => setActiveIndex(swiper.realIndex || 0)}
|
||||
onSwiper={(swiper) => {
|
||||
setActiveIndex(swiper.realIndex || 0);
|
||||
}}
|
||||
onSlideChange={handleSlideChange}
|
||||
>
|
||||
{/* Slide 1 */}
|
||||
<SwiperSlide>
|
||||
<AnimatePresence mode="wait">
|
||||
{activeIndex === 0 && (
|
||||
<motion.div
|
||||
key="slide-0"
|
||||
className="slide-item banner-slide"
|
||||
variants={variants.topToBottom}
|
||||
initial="initial"
|
||||
animate="animate"
|
||||
exit="exit"
|
||||
transition={transition}
|
||||
>
|
||||
<div className="bg-layer bg-slide-0"
|
||||
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-1.webp)' }}>
|
||||
</div>
|
||||
<div className="auto-container" style={{height:"600px"}}>
|
||||
{/* <div className="content-box custom-content-box">
|
||||
<span className="upper-text">Begin Your Health Journey</span>
|
||||
<h2>Better <span>health</span> Forever</h2>
|
||||
<p>Our expert physiotherapists help you restore movement, reduce pain, and live healthier with personalized care in Mississauga.</p>
|
||||
<div className="btn-box mt-3">
|
||||
<Link href="tel:+647-722-3434" className="theme-btn btn-one">
|
||||
<span>Book Your Appointment</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div> */}
|
||||
</div>
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</SwiperSlide>
|
||||
{slides.map((slide, index) => (
|
||||
<SwiperSlide key={slide.id}>
|
||||
<AnimatePresence mode="wait">
|
||||
{activeIndex === index && (
|
||||
<motion.div
|
||||
key={`slide-${index}`}
|
||||
className="slide-item banner-slide"
|
||||
variants={variants[slide.variant]}
|
||||
initial="initial"
|
||||
animate="animate"
|
||||
exit="exit"
|
||||
transition={transition}
|
||||
>
|
||||
<div
|
||||
className={`bg-layer ${slide.id === 0 ? "bg-slide-0" : ""}`}
|
||||
style={{
|
||||
backgroundImage: `url(${slide.bgImage})`,
|
||||
}}
|
||||
></div>
|
||||
<div className="auto-container">
|
||||
<div
|
||||
className={`content-box custom-content-box ${slide.contentStyle || ''}`}
|
||||
style={slide.contentStyle === 'with-background' ? {
|
||||
backgroundColor: '#fff',
|
||||
opacity: 0.8,
|
||||
borderRadius: '20px',
|
||||
padding: '30px'
|
||||
} : {}}
|
||||
>
|
||||
<span className="upper-text">
|
||||
{slide.upperText}
|
||||
</span>
|
||||
|
||||
{/* Slide 2 */}
|
||||
<SwiperSlide>
|
||||
<AnimatePresence mode="wait">
|
||||
{activeIndex === 1 && (
|
||||
<motion.div
|
||||
key="slide-1"
|
||||
className="slide-item banner-slide"
|
||||
variants={variants.bottomToTop}
|
||||
initial="initial"
|
||||
animate="animate"
|
||||
exit="exit"
|
||||
transition={transition}
|
||||
>
|
||||
<div className="bg-layer"
|
||||
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-2.webp)' }}>
|
||||
</div>
|
||||
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
|
||||
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
|
||||
<span className="upper-text">Care That Heals Gently</span>
|
||||
<h2>Relaxing <span>Massage</span> Therapy</h2>
|
||||
<p>Experience soothing massage techniques that release tension, promote circulation, and support your overall wellness.</p>
|
||||
<div className="btn-box mt-3">
|
||||
<Link href="/contact" className="theme-btn btn-one">
|
||||
<span>Schedule a Massage</span>
|
||||
</Link>
|
||||
<h2>
|
||||
{slide.title} <span>{slide.titleSpan}</span> {slide.titleEnd}
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
{slide.subtitle}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{slide.description}
|
||||
</p>
|
||||
|
||||
<div className="btn-box mt-3">
|
||||
<Link href={slide.buttonLink} className="theme-btn btn-one">
|
||||
<span>{slide.buttonText}</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</SwiperSlide>
|
||||
|
||||
{/* Slide 3 */}
|
||||
<SwiperSlide>
|
||||
<AnimatePresence mode="wait">
|
||||
{activeIndex === 2 && (
|
||||
<motion.div
|
||||
key="slide-2"
|
||||
className="slide-item banner-slide"
|
||||
variants={variants.leftToRight}
|
||||
initial="initial"
|
||||
animate="animate"
|
||||
exit="exit"
|
||||
transition={transition}
|
||||
>
|
||||
<div className="bg-layer"
|
||||
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-3.webp)' }}>
|
||||
</div>
|
||||
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
|
||||
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
|
||||
<span className="upper-text">Wellness Near You Always</span>
|
||||
<h2>Trusted <span>Physio</span> Experts</h2>
|
||||
<p>Comprehensive physiotherapy and rehab services designed to restore your strength, mobility, and long-term wellness.</p>
|
||||
<div className="btn-box mt-3">
|
||||
<Link href="/etobicoke-treatment-service" className="theme-btn btn-one">
|
||||
<span>Explore Our Service</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</SwiperSlide>
|
||||
|
||||
{/* Slide 4 */}
|
||||
<SwiperSlide>
|
||||
<AnimatePresence mode="wait">
|
||||
{activeIndex === 3 && (
|
||||
<motion.div
|
||||
key="slide-3"
|
||||
className="slide-item banner-slide"
|
||||
variants={variants.rightToLeft}
|
||||
initial="initial"
|
||||
animate="animate"
|
||||
exit="exit"
|
||||
transition={transition}
|
||||
>
|
||||
<div className="bg-layer"
|
||||
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-4.webp)' }}>
|
||||
</div>
|
||||
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
|
||||
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
|
||||
<span className="upper-text">Healing With Caring Hands</span>
|
||||
<h2>Holistic <span>Wellness</span> Care</h2>
|
||||
<p>Discover holistic physiotherapy and rehab services designed to restore balance, ease pain, and support long-term recovery.</p>
|
||||
<div className="btn-box mt-3">
|
||||
<Link href="/contact" className="theme-btn btn-one">
|
||||
<span>Visit Our Location</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</SwiperSlide>
|
||||
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</SwiperSlide>
|
||||
))}
|
||||
</Swiper>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@ -49,67 +49,61 @@ export default function MobileBanner() {
|
||||
}, []);
|
||||
|
||||
const slides = [
|
||||
// {
|
||||
// id: 0,
|
||||
// variant: 'topToBottom',
|
||||
// bgImage: '/assets/images/banner/mobile-banner/mbl-view-banner-1.png',
|
||||
// upperText: 'Begin Your Health Journey',
|
||||
// title: 'Better',
|
||||
// titleSpan: 'health',
|
||||
// titleEnd: 'Forever',
|
||||
// subtitle: 'Expert Physiotherapy in Mississauga for You.',
|
||||
// description: 'Our expert physiotherapists help you restore movement, reduce pain, and live healthier with personalized care in Mississauga.',
|
||||
// buttonText: 'Book Your Appointment',
|
||||
// buttonLink: 'tel:+647-722-3434',
|
||||
// contentStyle: 'mobile-style'
|
||||
// },
|
||||
{
|
||||
id: 0,
|
||||
variant: 'topToBottom',
|
||||
bgImage: '/assets/images/banner/mobile-banner/1.jpg',
|
||||
hideContent: true
|
||||
bgImage: '/assets/images/banner/mobile-banner/banner-1.webp',
|
||||
upperText: 'The Journey to Better Health Begins here',
|
||||
title: 'Your Path to',
|
||||
titleSpan: 'Recovery',
|
||||
titleEnd: 'Starts Today',
|
||||
subtitle: 'Expert Physiotherapy in Mississauga for You.',
|
||||
description: 'Our skilled team provides physiotherapy in Mississauga to help you regain mobility and live pain-free. Compassionate care designed around your needs.',
|
||||
buttonText: 'Book Your Appointment',
|
||||
buttonLink: 'tel:+647-722-3434',
|
||||
contentStyle: 'mobile-style'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
variant: 'bottomToTop',
|
||||
bgImage: '/assets/images/banner/mobile-banner/2.jpg',
|
||||
upperText: 'Care That Heals Gently',
|
||||
title: 'Relaxing',
|
||||
titleSpan: 'Massage',
|
||||
titleEnd: 'Therapy',
|
||||
// subtitle: 'Expert Hand Massage Techniques for Relief',
|
||||
description: 'Experience soothing massage techniques that release tension, promote circulation, and support your overall wellness.',
|
||||
bgImage: '/assets/images/banner/mobile-banner/banner-2.webp',
|
||||
upperText: 'Compassionate Care, Delivered with Expertise',
|
||||
title: 'Healing Touch,',
|
||||
titleSpan: 'Fresh',
|
||||
titleEnd: 'Inner Strength',
|
||||
subtitle: 'Expert Hand Massage Techniques for Relief',
|
||||
description: 'Experience targeted hand massage therapy to ease tension and promote healing, delivered by experienced therapists focused on your comfort and well-being.',
|
||||
buttonText: 'Schedule a Massage',
|
||||
buttonLink: '/contact',
|
||||
// contentStyle: 'with-background'
|
||||
contentStyle: 'with-background'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
variant: 'leftToRight',
|
||||
bgImage: '/assets/images/banner/mobile-banner/3.jpg',
|
||||
upperText: 'Wellness Near You Always',
|
||||
title: 'Trusted',
|
||||
titleSpan: 'Physio',
|
||||
titleEnd: 'Experts',
|
||||
// subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
|
||||
description: 'Comprehensive physiotherapy and rehab services designed to restore your strength, mobility, and long-term wellness.',
|
||||
bgImage: '/assets/images/banner/mobile-banner/banner-3.webp',
|
||||
upperText: 'Your Path to Complete Wellness Starts Here',
|
||||
title: 'Local Physio',
|
||||
titleSpan: 'Experts',
|
||||
titleEnd: 'Near You',
|
||||
subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
|
||||
description: 'Offering comprehensive physiotherapy and rehabilitation services in Etobicoke to support your wellness journey and help restore your strength efficiently.',
|
||||
buttonText: 'Explore Our Service',
|
||||
buttonLink: '/etobicoke-treatment-service',
|
||||
// contentStyle: 'with-background'
|
||||
contentStyle: 'with-background'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
variant: 'rightToLeft',
|
||||
bgImage: '/assets/images/banner/mobile-banner/4.jpg',
|
||||
upperText: 'Healing With Caring Hands',
|
||||
title: 'Holistic',
|
||||
titleSpan: 'Wellness',
|
||||
titleEnd: 'Care',
|
||||
// subtitle: 'Waterfront Physio and Rehab Services.',
|
||||
description: 'Discover holistic physiotherapy and rehab services designed to restore balance, ease pain, and support long-term recovery.',
|
||||
bgImage: '/assets/images/banner/mobile-banner/banner-4.webp',
|
||||
upperText: 'Healing Hands, Caring Hearts in Action',
|
||||
title: 'Wellness',
|
||||
titleSpan: 'by the',
|
||||
titleEnd: 'Waterfront',
|
||||
subtitle: 'Waterfront Physio and Rehab Services.',
|
||||
description: 'Find peace and true healing with our specialized waterfront physio and rehab programs carefully designed for lasting wellness and a better quality of life.',
|
||||
buttonText: 'Visit Our Location',
|
||||
buttonLink: '/contact',
|
||||
// contentStyle: 'with-background'
|
||||
contentStyle: 'with-background'
|
||||
}
|
||||
];
|
||||
|
||||
@ -165,7 +159,7 @@ export default function MobileBanner() {
|
||||
display: 'flex',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'end',
|
||||
paddingBottom: "20px"
|
||||
paddingBottom:"20px"
|
||||
}}
|
||||
>
|
||||
{!slide.hideContent && (
|
||||
|
||||
@ -177,12 +177,12 @@
|
||||
height: 70%;
|
||||
}
|
||||
} */
|
||||
/*
|
||||
|
||||
.banner-carousel .swiper-slide-active .bg-layer {
|
||||
-webkit-transform: scale(1.25);
|
||||
-ms-transform: scale(1.25);
|
||||
transform: scale(1.25);
|
||||
} */
|
||||
}
|
||||
|
||||
.banner-carousel .content-box {
|
||||
position: relative;
|
||||
@ -722,37 +722,37 @@
|
||||
|
||||
}
|
||||
|
||||
/* @media (max-width: 1440px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -350px center !important;
|
||||
}
|
||||
@media (max-width: 1440px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -350px center !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -550px center !important;
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -550px center !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -720px center !important;
|
||||
}
|
||||
@media (max-width: 1024px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -720px center !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -780px center !important;
|
||||
}
|
||||
@media (max-width: 992px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -780px center !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) and (min-width: 500px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -500px center !important;
|
||||
}
|
||||
} */
|
||||
@media (max-width: 768px) and (min-width: 500px) {
|
||||
.bg-layer.bg-slide-0 {
|
||||
background-position: left -500px center !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* @media screen and (min-width: 500px) and (max-width: 768px) {
|
||||
@media screen and (min-width: 500px) and (max-width: 768px) {
|
||||
.banner-slide:nth-child(1) .custom-content-box.mobile-style, .custom-content-box.with-background, h2 {
|
||||
font-size: 50px !important;
|
||||
line-height: 1 !important;
|
||||
@ -766,4 +766,4 @@
|
||||
font-size: 16px;
|
||||
padding: 15px 20px !important;
|
||||
}
|
||||
} */
|
||||
}
|
||||
@ -114,7 +114,7 @@
|
||||
@media only screen and (max-width: 767px){
|
||||
|
||||
.page-title{
|
||||
padding: 190px 0px;
|
||||
padding: 80px 0px;
|
||||
}
|
||||
|
||||
.page-title h1{
|
||||
|
||||
@ -1014,35 +1014,6 @@
|
||||
padding: 15.5px 0;
|
||||
}
|
||||
|
||||
/* Fully transparent header */
|
||||
.header-style-two,
|
||||
.header-style-two .header-top,
|
||||
.header-style-two .header-area {
|
||||
background: transparent !important;
|
||||
box-shadow: none !important;
|
||||
border: none !important;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.header-style-two .header-top a,
|
||||
.header-style-two .header-top .logo {
|
||||
color: #bc0000 !important;
|
||||
}
|
||||
|
||||
.header-style-two .header-top .top-inner {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-left: 100px;
|
||||
padding-right: 100px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.header-top .top-inner {
|
||||
position: relative;
|
||||
display: flex;
|
||||
@ -1050,7 +1021,7 @@
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
gap: 15px;
|
||||
/* overflow-x: auto; */
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.header-top .top-inner .info-list {
|
||||
@ -1076,11 +1047,6 @@
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.red-icon {
|
||||
filter: brightness(0) saturate(100%) invert(14%) sepia(94%) saturate(7476%) hue-rotate(356deg) brightness(94%) contrast(108%);
|
||||
}
|
||||
|
||||
|
||||
.header-top .top-inner .info-list li a {
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
@ -1210,7 +1176,7 @@
|
||||
}
|
||||
|
||||
.header-top .top-inner {
|
||||
flex-direction: row;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
gap: 8px;
|
||||
@ -1262,13 +1228,6 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* .main-header .header-lower .outer-container {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
} */
|
||||
|
||||
.main-header .header-lower .outer-container {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
@ -1278,20 +1237,13 @@
|
||||
|
||||
.main-header .header-lower .outer-box {
|
||||
position: relative;
|
||||
/* background: #fff; */
|
||||
border-top: 1px solid #1025487a;
|
||||
}
|
||||
|
||||
.new {
|
||||
|
||||
background-color: #fff !important;
|
||||
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.main-header .header-lower .outer-box:before {
|
||||
position: absolute;
|
||||
content: '';
|
||||
/* background: #fff; */
|
||||
background: #fff;
|
||||
width: 5000px;
|
||||
height: 100%;
|
||||
left: -80px;
|
||||
@ -1472,7 +1424,7 @@
|
||||
font-family: var(--soleil);
|
||||
letter-spacing: 0.8px;
|
||||
opacity: 1;
|
||||
color: #bc0000;
|
||||
color: #101A30;
|
||||
z-index: 1;
|
||||
-webkit-transition: all 500ms ease;
|
||||
-moz-transition: all 500ms ease;
|
||||
@ -1481,12 +1433,6 @@
|
||||
transition: all 500ms ease;
|
||||
}
|
||||
|
||||
.new-menu .new-nav>li>a {
|
||||
|
||||
color: #bc0000 !important;
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
.main-menu .navigation>li>a {
|
||||
font-size: 17px;
|
||||
@ -1500,7 +1446,7 @@
|
||||
|
||||
.main-menu .navigation>li.current>a,
|
||||
.main-menu .navigation>li:hover>a {
|
||||
color: #bc0000;
|
||||
color: #101A30;
|
||||
}
|
||||
|
||||
.main-menu .navigation>li>a:before {
|
||||
@ -1726,7 +1672,7 @@
|
||||
font-size: 40px;
|
||||
line-height: 50px;
|
||||
cursor: pointer;
|
||||
/* background: #ffffff; */
|
||||
background: var(--theme-color);
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -1740,7 +1686,7 @@
|
||||
width: 30px;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
background-color: #bc0000;
|
||||
background-color: #fff;
|
||||
-webkit-transition: all 300ms ease;
|
||||
-moz-transition: all 300ms ease;
|
||||
-ms-transition: all 300ms ease;
|
||||
@ -1773,7 +1719,6 @@
|
||||
.sticky-header .main-menu .navigation>li>a {
|
||||
padding-top: 27px;
|
||||
padding-bottom: 27px;
|
||||
color: #bc0000;
|
||||
}
|
||||
|
||||
.sticky-header .main-menu .navigation>li>a:before {
|
||||
@ -2760,7 +2705,6 @@
|
||||
position: relative;
|
||||
padding-left: 100px;
|
||||
padding-right: 100px;
|
||||
/* background: #bc000036 !important; */
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1200px) {
|
||||
@ -2773,10 +2717,10 @@
|
||||
}
|
||||
|
||||
.header-style-two .header-lower .outer-container {
|
||||
/* position: relative; */
|
||||
position: relative;
|
||||
padding-left: 100px;
|
||||
padding-right: 100px;
|
||||
/* background: #fff; */
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
@media (max-width: 1440px) {
|
||||
@ -2800,8 +2744,8 @@
|
||||
margin-left: 6px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-left: 2px solid #bc0000;
|
||||
border-bottom: 2px solid #bc0000;
|
||||
border-left: 2px solid #000;
|
||||
border-bottom: 2px solid #000;
|
||||
transform: rotate(-45deg);
|
||||
vertical-align: middle;
|
||||
}
|
||||
@ -3358,33 +3302,33 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* .custom-content-box.mobile-style {
|
||||
.custom-content-box.mobile-style {
|
||||
background: none;
|
||||
} */
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 1024px) {
|
||||
@media (min-width: 768px) and (max-width: 1024px) {
|
||||
.custom-content-box.mobile-style {
|
||||
top: 190px;
|
||||
background: white;
|
||||
border-radius: 15%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 991px) {
|
||||
.custom-content-box.with-background {
|
||||
top: 170px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 425px) {
|
||||
.custom-content-box.mobile-style {
|
||||
top: 190px;
|
||||
background: white;
|
||||
/* background: white; */
|
||||
border-radius: 15%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 991px) {
|
||||
.custom-content-box.with-background {
|
||||
top: 170px;
|
||||
}
|
||||
}
|
||||
|
||||
/* @media (max-width: 425px) {
|
||||
.custom-content-box.mobile-style {
|
||||
background: white;
|
||||
border-radius: 15%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
} */
|
||||
|
||||
.contact-icon-container {
|
||||
position: fixed;
|
||||
bottom: 60px;
|
||||
@ -3473,36 +3417,12 @@
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) and (min-width: 769px) {
|
||||
|
||||
.header-style-two .header-top .top-inner {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-left: 0px !important;
|
||||
padding-right: 0px !important;
|
||||
position: relative;
|
||||
/* Needed for flex children alignment */
|
||||
}
|
||||
|
||||
|
||||
.info-block-one {
|
||||
padding: 30px 7px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
|
||||
.header-style-two .header-top .top-inner {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding-left: 100px;
|
||||
padding-right: 100px;
|
||||
position: relative;
|
||||
/* Needed for flex children alignment */
|
||||
}
|
||||
|
||||
.blog-details-content .news-block-one .inner-box .lower-content h2 {
|
||||
font-size: 38px !important;
|
||||
line-height: 36px;
|
||||
@ -3553,36 +3473,4 @@
|
||||
padding-top: 30px !important;
|
||||
padding-bottom: 30px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.loader-wrap {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.preloader {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.preloader-icon {
|
||||
font-size: 50px;
|
||||
animation: spin 1.5s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 636 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 618 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 560 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 4.0 MiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 85 KiB |
@ -3,225 +3,86 @@ const path = require("path");
|
||||
const { SitemapStream, streamToPromise } = require("sitemap");
|
||||
const { pathToFileURL } = require("url");
|
||||
|
||||
const hostname = "https://rapharehap.metatronnest.com";
|
||||
const addTrailingSlash = true; // ✅ Set this true if your Next.js uses trailingSlash: true
|
||||
const hostname = "https://rapharehap.metatronnest.com";
|
||||
const appDir = path.join(process.cwd(), "app");
|
||||
const outputPath = path.join(process.cwd(), "public", "sitemap.xml");
|
||||
|
||||
// // 🔧 Utility to format URLs based on config
|
||||
// const formatUrl = (url) => {
|
||||
// if (addTrailingSlash && !url.endsWith('/')) return url + '/';
|
||||
// if (!addTrailingSlash && url.endsWith('/') && url !== '/') return url.slice(0, -1);
|
||||
// return url;
|
||||
// };
|
||||
// Add a trailing slash only for “directory-like” URLs
|
||||
const shouldAddSlash = (url) => {
|
||||
// keep "/" as is
|
||||
if (url === '/') return false;
|
||||
// don't touch file-like URLs (has extension)
|
||||
if (/\.[a-z0-9]{2,6}(\?.*)?$/i.test(url)) return false;
|
||||
return true;
|
||||
};
|
||||
function getRoutesFromApp(dir = appDir, basePath = "") {
|
||||
let routes = [];
|
||||
if (!fs.existsSync(dir)) return routes;
|
||||
|
||||
const formatUrl = (url) => {
|
||||
// normalize to leading slash
|
||||
if (!url.startsWith('/')) url = '/' + url;
|
||||
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
||||
for (const entry of entries) {
|
||||
if (entry.name.startsWith("_") || entry.name === "api" || entry.name.startsWith(".")) continue;
|
||||
const fullPath = path.join(dir, entry.name);
|
||||
|
||||
if (addTrailingSlash && shouldAddSlash(url) && !url.endsWith('/')) {
|
||||
return url + '/';
|
||||
if (entry.isDirectory()) {
|
||||
if (!entry.name.startsWith("[")) {
|
||||
const hasPage =
|
||||
fs.existsSync(path.join(fullPath, "page.js")) ||
|
||||
fs.existsSync(path.join(fullPath, "page.jsx")) ||
|
||||
fs.existsSync(path.join(fullPath, "index.js")) ||
|
||||
fs.existsSync(path.join(fullPath, "index.jsx"));
|
||||
if (hasPage) {
|
||||
const cleaned = path.join(basePath, entry.name).replace(/\\/g, "/");
|
||||
routes.push(`/${cleaned}/`);
|
||||
}
|
||||
}
|
||||
routes = routes.concat(getRoutesFromApp(fullPath, path.join(basePath, entry.name)));
|
||||
} else if (entry.isFile()) {
|
||||
if (["page.js", "page.jsx", "index.js", "index.jsx"].includes(entry.name)) {
|
||||
const cleaned = basePath.replace(/\\/g, "/");
|
||||
const route = "/" + (cleaned ? `${cleaned}/` : "");
|
||||
routes.push(route);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!addTrailingSlash && url.endsWith('/') && url !== '/') {
|
||||
return url.slice(0, -1);
|
||||
}
|
||||
return url;
|
||||
};
|
||||
|
||||
// ✅ Static pages
|
||||
const staticLinks = [
|
||||
{ url: '/', changefreq: 'daily', priority: 1.0 },
|
||||
{ url: '/why-rapha-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.7 },
|
||||
{ url: '/faq-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.7 },
|
||||
{ url: '/what-to-expect/', changefreq: 'weekly', priority: 0.7 },
|
||||
{ url: '/payment-insurance/', changefreq: 'weekly', priority: 0.7 },
|
||||
{ url: '/locations/', changefreq: 'weekly', priority: 0.7 },
|
||||
{ url: '/about-us/', changefreq: 'monthly', priority: 0.5 },
|
||||
{ url: '/ourapproach-physiotherapy-etobicoke/', changefreq: 'monthly', priority: 0.5 },
|
||||
{ url: '/our-team-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/gallery-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/covid-19-updates/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/etobicoke-treatment-service/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/area-of-injury/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/rehabilitation/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/accident/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/blog/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/contact/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/caregivers/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/gallery-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
|
||||
{ url: '/shortcodes/', changefreq: 'weekly', priority: 0.6 },
|
||||
];
|
||||
return [...new Set(routes.map(r => r.replace(/\/{2,}/g, "/")))];
|
||||
}
|
||||
|
||||
// ✅ Dynamic blog posts
|
||||
const blogPosts = [
|
||||
{ slug: '/blog/chronic-pain-treatment-etobicoke/' },
|
||||
{ slug: '/blog/top-rehab-wellness-etobicoke-hand-massage/' },
|
||||
{ slug: '/blog/osteopath-near-me-first-visit-rapha-rehab/' },
|
||||
{ slug: '/blog/strength-training-rehabilitation-rapha-rehab/' },
|
||||
{ slug: '/blog/biceps-triceps-back-workouts-rapha-rehab/' },
|
||||
{ slug: '/beginner-workouts-rehab-wellness-rapha-rehab/' },
|
||||
{ slug: '/blog/recover-strong-post-surgery-rehabilitation-exercises/' },
|
||||
{ slug: '/blog/benefits-massage-therapy-sports-injuries/' },
|
||||
{ slug: '/blog/shockwave-therapy-etobicoke-chronic-pain/' },
|
||||
];
|
||||
|
||||
// Convert blog slugs to sitemap entries
|
||||
const blogLinks = blogPosts.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
|
||||
|
||||
// ✅ Dynamic Services
|
||||
const services = [
|
||||
{ slug: '/etobicoke-treatment-service/physiotherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/sportsinjury-physiotherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/pelvic-floor-physiotherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/massage-therapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/chiropractic-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/chiropdist-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/acupuncture-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/osteopathy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/foot-reflexology-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/custom-knee-braces-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/laser-therapy-electrical-modalities/' },
|
||||
{ slug: '/etobicoke-treatment-service/naturopathy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/orthotics-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/spinal-decompression-therapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/concussion-management-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/chronic-pain-management-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/pre-post-operative-management-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/exercisetherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/workplace-injury-management-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/home-care-physiotherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/virtual-care-physiotherapy-clinic-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/gait-assessment-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/kids-physiotherapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/surgical-rehab-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/fascial-stretch-therapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/cupping-therapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/shiatsu-therapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/deep-tissue-massage-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/neuro-fascial-therapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/cranio-sacral-therapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/motor-vehicle-accident-rehabilitation-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/compression-stockings-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/cardiac-rehabilitation-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/intramuscular-stimulation-ims-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/psychotherapy-etobicoke/' },
|
||||
{ slug: '/etobicoke-treatment-service/shockwave-therapy-etobicoke/' },
|
||||
];
|
||||
|
||||
// Convert services slugs to sitemap entries
|
||||
const servicesLinks = services.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
|
||||
// ✅ Dynamic area-of-injury
|
||||
const areas = [
|
||||
{ slug: '/area-of-injury/head-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/neck-injury-physiotherapy-management-etobicokeneck-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/shoulder-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/elbow-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/wristhand-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/lowback-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/hip-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/legknee-injury-physiotherapy-management-etobicoke/' },
|
||||
{ slug: '/area-of-injury/anklefoot-injury-physiotherapy-management-etobicoke/' },
|
||||
];
|
||||
|
||||
// Convert Areas of Injury slugs to sitemap entries
|
||||
const areasLinks = areas.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
|
||||
// ✅ Dynamic Rehabilitation
|
||||
const rehabilitation = [
|
||||
{ slug: '/rehabilitation/spinalcord-rehabilitation-clinic-etobicoke/' },
|
||||
{ slug: '/rehabilitation/amputee-rehabilitation-clinic-etobicoke/' },
|
||||
{ slug: '/rehabilitation/fracture-rehabilitation-clinic-etobicoke/' },
|
||||
{ slug: '/rehabilitation/neurological-rehabilitation-clinic-etobicoke/' },
|
||||
];
|
||||
|
||||
// Convert Areas of Injury slugs to sitemap entries
|
||||
const rehabilitationLinks = rehabilitation.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
|
||||
// ✅ Dynamic Accident
|
||||
const accident = [
|
||||
{ slug: '/accident/minor-injury-etobicoke/' },
|
||||
{ slug: '/accident/catastropic-injury-etobicoke/' },
|
||||
{ slug: '/accident/slip-and-fall-injury-etobicoke/' },
|
||||
{ slug: '/accident/concussion-management-etobicoke/' },
|
||||
{ slug: '/accident/psychotherapy-management-etobicoke/' },
|
||||
{ slug: '/accident/hydrotherapy-etobicoke/' },
|
||||
{ slug: '/accident/chronic-pain-management-etobicoke/' },
|
||||
];
|
||||
|
||||
// Convert Accident slugs to sitemap entries
|
||||
const accidentLinks = accident.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
|
||||
// ✅ Dynamic Our Team
|
||||
const ourteam = [
|
||||
{ slug: '/our-team-physiotherapy-etobicoke/dhanya-prashant/' },
|
||||
{ slug: '/our-team-physiotherapy-etobicoke/chandra-babu/' },
|
||||
{ slug: '/our-team-physiotherapy-etobicoke/jo-anne/' },
|
||||
];
|
||||
|
||||
// Convert Our Team slugs to sitemap entries
|
||||
const ourteamLinks = ourteam.map(post => ({
|
||||
url: `/${post.slug}`,
|
||||
changefreq: 'weekly',
|
||||
priority: 0.6
|
||||
}));
|
||||
|
||||
const allLinks = [...staticLinks, ...blogLinks, ...servicesLinks, ...areasLinks, ...rehabilitationLinks, ...accidentLinks, ...ourteamLinks].map(link => ({
|
||||
...link,
|
||||
url: formatUrl(link.url),
|
||||
}));
|
||||
async function loadESModule(relativePath) {
|
||||
const fullPath = path.join(process.cwd(), relativePath);
|
||||
if (!fs.existsSync(fullPath)) return null;
|
||||
const mod = await import(pathToFileURL(fullPath).href);
|
||||
return mod.default ?? mod.Blogs ?? [];
|
||||
}
|
||||
|
||||
async function generateSitemap() {
|
||||
try {
|
||||
const sitemap = new SitemapStream({ hostname: hostname });
|
||||
const writeStream = fs.createWriteStream(path.resolve(__dirname, '../out/sitemap.xml'));
|
||||
|
||||
const staticRoutes = getRoutesFromApp();
|
||||
const staticLinks = staticRoutes.map(route => ({
|
||||
url: route,
|
||||
changefreq: "weekly",
|
||||
priority: route === "/" ? 1.0 : 0.8,
|
||||
}));
|
||||
|
||||
const Blogs = await loadESModule("utils/Blog.utils.js");
|
||||
const blogLinks = (Blogs || []).map(post => ({
|
||||
url: `/blog/${post.slug}/`,
|
||||
changefreq: "weekly",
|
||||
priority: 0.8,
|
||||
}));
|
||||
|
||||
const allLinks = [...staticLinks, ...blogLinks];
|
||||
|
||||
const sitemap = new SitemapStream({ hostname });
|
||||
const writeStream = fs.createWriteStream(outputPath);
|
||||
sitemap.pipe(writeStream);
|
||||
|
||||
console.log('📦 Writing URLs to sitemap:');
|
||||
allLinks.forEach(link => {
|
||||
console.log(' -', hostname + link.url);
|
||||
sitemap.write(link);
|
||||
console.log("✅ writing:", link.url);
|
||||
});
|
||||
|
||||
sitemap.end();
|
||||
await streamToPromise(sitemap);
|
||||
|
||||
console.log('✅ sitemap.xml created successfully!');
|
||||
} catch (error) {
|
||||
console.error('❌ Error creating sitemap.xml:', error);
|
||||
console.log(`🎉 sitemap.xml generated at ${outputPath} (${allLinks.length} URLs)`);
|
||||
} catch (err) {
|
||||
console.error("❌ Failed to generate sitemap:", err);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -76,11 +76,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "Chronic Pain Treatment in Etobicoke - Best Physio Solutions",
|
||||
description:
|
||||
"Discover how Rapharehab in Etobicoke treats chronic pain with physiotherapy, osteopathy & hands-on care. Relief, recovery, results near you.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
@ -160,11 +155,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "The Best Hand Massage & Physiotherapy in Etobicoke",
|
||||
description:
|
||||
"Explore the benefits of hand massage paired with physiotherapy in Etobicoke. Relief, strength & mobility from expert physio, osteopathy & massage.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
@ -253,11 +243,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "The Best Osteopath Near Me: Rapha Rehab in Etobicoke",
|
||||
description:
|
||||
"Find out what to expect at your first osteopathy visit at Rapha Rehab Etobicoke - from assessment to gentle treatment, physiotherapy & care.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
@ -351,11 +336,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "Strength Training Rehab in Etobicoke - Build Muscle Safely",
|
||||
description:
|
||||
"Discover safe strength training rehab at Rapha Rehab Etobicoke. Expert physiotherapy & osteopathy to build muscle & speed recovery.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
@ -462,11 +442,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "Best Back & Arms Workouts by Rapha Rehab's in Etobicoke",
|
||||
description:
|
||||
"Build stronger biceps, triceps & back safely with Rapha Rehab’s expert physio & osteopathy-led workouts in Etobicoke. Injury aware, results driven.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
@ -550,11 +525,6 @@ const Blogs = [
|
||||
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
|
||||
</blockquote>
|
||||
`,
|
||||
meta: {
|
||||
title: "Beginner Rehab Workouts in Etobicoke - Gentle Physio Fitness",
|
||||
description:
|
||||
"Kick-start your wellness journey with beginner-friendly rehab workouts in Etobicoke. Guided physiotherapy & osteopathy to safely rebuild strength.",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
|
||||
@ -708,7 +708,7 @@ export const servicesList = [
|
||||
bannerImage: "/assets/images/services/osteopathy/osteopathy-banner.webp",
|
||||
image: "/assets/images/services/osteopathy/left.webp",
|
||||
sidebarImg: "/assets/images/services/osteopathy/left.webp",
|
||||
bigImg: "/assets/images/services/osteopathy/big-img.webp",
|
||||
bigImg: "/assets/images/service/osteopathy/big-img.webp",
|
||||
icon: "/assets/images/services/icons/osteopathy.webp",
|
||||
icon2: "/assets/images/mobile-view/services/osteopathy.webp",
|
||||
metaTitle: "Best Osteopathy Services – Rapharehab Experts",
|
||||
@ -1160,8 +1160,8 @@ export const servicesList = [
|
||||
sidebarImg: "/assets/images/services/orthotics/left.webp",
|
||||
bigImg: "/assets/images/services/orthotics/big-img.webp",
|
||||
icon: "/assets/images/services/icons/orthotics.webp",
|
||||
metaTitle: "Best Orthotics in Etobicoke - Foot & Physio Support Near Me",
|
||||
metaDiscription: "Get custom orthotics in Etobicoke to correct biomechanics, ease foot, knee & lower-back pain. Certified orthotists, gait analysis & expert physio care.",
|
||||
metaTitle: "Ankle & Foot Injury Rehab – Rapharehab Clinic",
|
||||
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
|
||||
shortDescription: "Etobicoke Orthotics are custom-designed shoe inserts to correct foot biomechanics, improve alignment, alleviate pain, support posture, and promote overall lower-limb function.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
@ -1297,8 +1297,8 @@ export const servicesList = [
|
||||
sidebarImg: "/assets/images/services/concussion-management/left.webp",
|
||||
bigImg: "/assets/images/services/concussion-management/big-img.webp",
|
||||
icon: "/assets/images/services/icons/concussion-management.webp",
|
||||
metaTitle: "Concussion Management in Etobicoke - Best Physio Near Me",
|
||||
metaDiscription: "Specialized concussion management in Etobicoke - expert physiotherapy, osteopathy & massage to help recovery from head injuries fast & safely.",
|
||||
metaTitle: "Ankle & Foot Injury Rehab – Rapharehab Clinic",
|
||||
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
|
||||
shortDescription: "Concussion is a brain injury that can cause lasting effects on brain tissue occurs when the brain is violently shaken and changes the chemical.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
@ -1514,8 +1514,8 @@ export const servicesList = [
|
||||
sidebarImg: "/assets/images/services/operative-management/left.webp",
|
||||
bigImg: "/assets/images/services/operative-management/big-img.webp",
|
||||
icon: "/assets/images/services/icons/operative-management.webp",
|
||||
metaTitle: "Top Pre & Post-Operative Physio Management in Etobicoke",
|
||||
metaDiscription: "Prepare for surgery & recover confidently in Etobicoke. Expert physiotherapy, osteopathy & hands-on care to reduce risk, speed healing.",
|
||||
metaTitle: "Ankle & Foot Injury Rehab – Rapharehab Clinic",
|
||||
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
|
||||
shortDescription: "Etobicoke Pre and Post Operative Management is a physiotherapy service designed to optimize surgical outcomes.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
@ -2033,8 +2033,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/gait/big-img.webp",
|
||||
icon: "/assets/images/services/icons/gait.webp",
|
||||
shortDescription: "Etobicoke Gait Assessment is a comprehensive evaluation that analyzes how you walk and move to identify patterns, detect abnormalities, and optimize mobility.",
|
||||
metaTitle: "Gait Assessment in Etobicoke - Physio & Osteopath Near Me",
|
||||
metaDiscription: "Get expert gait assessment in Etobicoke from top physiotherapists & osteopaths. Improve walking, reduce pain - the best physio & rehab near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Gait Assessment Etobicoke</h2>
|
||||
@ -2108,8 +2106,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/kids/big-img.webp",
|
||||
icon: "/assets/images/services/icons/kids.webp",
|
||||
shortDescription: "Etobicoke Kids Physiotherapy focuses on the assessment, treatment, and development of infants, children, and adolescents from birth to 19 years old.",
|
||||
metaTitle: "Kids Physiotherapy in Etobicoke - Best Child Physio Near Me",
|
||||
metaDiscription: "Specialized kids physio in Etobicoke to support growth, motor skills & recovery. Experienced pediatric physiotherapy & osteopathy near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Kids Physiotherapy Etobicoke</h2>
|
||||
@ -2186,8 +2182,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/surgical/big-img.webp",
|
||||
icon: "/assets/images/services/icons/sururgical.webp",
|
||||
shortDescription: "Etobicoke Surgical Rehab is a specialized, comprehensive, evidence-based rehabilitation program designed to optimize recovery before and after surgical procedures.",
|
||||
metaTitle: "Surgical Rehab Etobicoke - The Best Physiotherapy Near Me",
|
||||
metaDiscription: "Top surgical rehab in Etobicoke - expert physiotherapy, osteopathy & massage care post-surgery. Trusted physio & rehab near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Surgical Rehab Etobicoke</h2>
|
||||
@ -2265,8 +2259,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/facial/big-img.webp",
|
||||
icon: "/assets/images/services/icons/fascial-stretch.webp",
|
||||
shortDescription: "Etobicoke Fascial Stretch Therapy is a gentle, assisted stretching method targeting the body’s fascial network - the connective tissue surrounding muscles, joints, and organs.",
|
||||
metaTitle: "Fascial Stretch Therapy in Etobicoke - Rehab Near Me",
|
||||
metaDiscription: "Experience fascial stretch therapy in Etobicoke. Expert physiotherapy & osteopathy to improve mobility, reduce pain & restore function near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Fascial Stretch Therapy Etobicoke</h2>
|
||||
@ -2340,8 +2332,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/cupping/big-img.webp",
|
||||
icon: "/assets/images/services/icons/cupping.webp",
|
||||
shortDescription: "Cupping and Dry Needling Etobicoke are physiotherapy techniques designed to relieve muscle tension, improve circulation, deactivate trigger points, and restore function.",
|
||||
metaTitle: "The Best Cupping Therapy in Etobicoke - Physio Near Me",
|
||||
metaDiscription: "Try cupping therapy in Etobicoke for muscle relief, improved circulation & reduced pain. Physio, osteopathy & massage from experts nearby.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Cupping Therapy Etobicoke</h2>
|
||||
@ -2440,8 +2430,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/shiatsu/big-img.webp",
|
||||
icon: "/assets/images/services/icons/shiatsu.webp",
|
||||
shortDescription: "Etobicoke Shiatsu Therapy is a traditional Japanese bodywork technique that gently applies rhythmic pressure along the body’s energy meridians to promote balance, relaxation, and natural healing.",
|
||||
metaTitle: "Shiatsu Therapy in Etobicoke - The Best Physio Near Me",
|
||||
metaDiscription: "Experience shiatsu therapy in Etobicoke - expert physio & osteopath support to ease tension & restore balance.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Shiatsu Therapy Etobicoke</h2>
|
||||
@ -2512,8 +2500,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/deep-tissue/big-img.webp",
|
||||
icon: "/assets/images/services/icons/deep-tissue.webp",
|
||||
shortDescription: "Etobicoke Deep Tissue Massage is a therapeutic bodywork technique that uses firm, sustained pressure and slow strokes to access deeper layers of muscle and fascia.",
|
||||
metaTitle: "The Best Deep Tissue Massage in Etobicoke - Physio &Rehab ",
|
||||
metaDiscription: "Rapha Rehab offers deep tissue massage in Etobicoke to relieve chronic muscle tension & pain. Trusted physio, osteopathy near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Deep Tissue Massage Etobicoke</h2>
|
||||
@ -2583,8 +2569,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/neuro/big-img.webp",
|
||||
icon: "/assets/images/services/icons/neuro-fascial.webp",
|
||||
shortDescription: "Etobicoke Neuro Fascial Therapy is an advanced technique targeting the nervous system and fascia to alleviate pain, restore mobility, and improve function.",
|
||||
metaTitle: "Neuro Fascial Therapy in Etobicoke - Best Physio & Osteopath",
|
||||
metaDiscription: "Neuro fascial therapy near you in Etobicoke - expert physiotherapy & osteopathy to relieve nerve pain, restore mobility & heal fascia.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Neuro Fascial Therapy Etobicoke</h2>
|
||||
@ -2655,8 +2639,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/cranio/big-img.webp",
|
||||
icon: "/assets/images/services/icons/cranio.webp",
|
||||
shortDescription: "Cranio Sacral Therapy Etobicoke is a hands-on technique that evaluates and enhances the craniosacral rhythm to alleviate pain and support the body’s natural healing processes.",
|
||||
metaTitle: "Cranio-Sacral Therapy in Etobicoke - Gentle Healing Physio",
|
||||
metaDiscription: "Gentle Cranio-Sacral Therapy in Etobicoke - osteopathy & physiotherapy combining hands-on care, massage, and rehab to ease pain.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Cranio Sacral Therapy Etobicoke</h2>
|
||||
@ -2726,8 +2708,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/mva/big-img.webp",
|
||||
icon: "/assets/images/services/icons/mva.webp",
|
||||
shortDescription: "Etobicoke Motor Vehicle Accident Rehabilitation is a specialized physiotherapy program tailored for individuals recovering from injuries sustained in car, motorcycle, and pedestrian accidents.",
|
||||
metaTitle: "Motor Vehicle Accident Rehab Etobicoke - Physio & Osteopathy",
|
||||
metaDiscription: "Recover from car or motorcycle accidents with expert MVA rehabilitation in Etobicoke. Physiotherapy, osteopath care & massage near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Motor Vehicle Accident Rehabilitation Etobicoke</h2>
|
||||
@ -2789,8 +2769,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/compression/big-img.webp",
|
||||
icon: "/assets/images/services/icons/compression.webp",
|
||||
shortDescription: "Etobicoke Compression Stockings provide graduated compression to improve blood flow, reduce swelling, and support vascular health in the legs.",
|
||||
metaTitle: "Compression Stockings in Etobicoke - Physio for Leg Health",
|
||||
metaDiscription: "Medical-grade compression stockings in Etobicoke fitted by experts. Improve blood flow, reduce swelling & support vascular health.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Compression Stockings Etobicoke</h2>
|
||||
@ -2846,8 +2824,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/cardiac/big-img.webp",
|
||||
icon: "/assets/images/services/icons/cardiac.webp",
|
||||
shortDescription: "Etobicoke Cardiac Rehabilitation is a structured, multidisciplinary program designed to support individuals recovering from heart-related conditions and procedures.",
|
||||
metaTitle: "Cardiac Rehabilitation in Etobicoke - Physio & Osteopath",
|
||||
metaDiscription: "Recover strong with cardiac rehab in Etobicoke. Expert physio, osteopathy & exercise programs tailored for heart health near you.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Cardiac Rehabilitation Etobicoke</h2>
|
||||
@ -2917,8 +2893,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/ims/big-img.webp",
|
||||
icon: "/assets/images/services/icons/ims.webp",
|
||||
shortDescription: "Etobicoke Intramuscular Stimulation (IMS) is an electrotherapeutic technique to treat chronic muscle pain using fine needle electrodes.",
|
||||
metaTitle: "Intramuscular Stimulation (IMS) in Etobicoke -Physio Near Me",
|
||||
metaDiscription: "The Best IMS therapy at Rapha Rehab -using fine-needle stimulation for chronic muscle pain, trigger points & functional recovery.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Intramuscular Stimulation (IMS) Etobicoke</h2>
|
||||
@ -2979,8 +2953,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/psychotherapy/big-img.webp",
|
||||
icon: "/assets/images/services/icons/psychotherapy.webp",
|
||||
shortDescription: "Etobicoke Psychotherapy offers evidence-based talk therapy services delivered by licensed therapists to support mental health and emotional well-being.",
|
||||
metaTitle: "Psychotherapy in Etobicoke | Best Mental Health Care Near Me",
|
||||
metaDiscription: "Best psychotherapy in Etobicoke - licensed therapists offering individual, couples & group therapy to improve mental health & emotional wellness.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Psychotherapy Etobicoke</h2>
|
||||
@ -3041,8 +3013,6 @@ export const servicesList = [
|
||||
bigImg: "/assets/images/services/shockwave/big-img.webp",
|
||||
icon: "/assets/images/services/icons/shockwave.webp",
|
||||
shortDescription: "Etobicoke Shockwave Therapy provides advanced treatment using acoustic waves to accelerate healing, relieve pain, and restore mobility.",
|
||||
metaTitle: "Shockwave Therapy in Etobicoke - Best Physiotherapy Near Me",
|
||||
metaDiscription: "Relieve pain & heal faster with shockwave therapy in Etobicoke. Expert physio & osteopathy treatment for tendinopathy, plantar fasciitis & more.",
|
||||
description: `<div>
|
||||
<div class="text-box ">
|
||||
<h2>Shockwave Therapy Etobicoke</h2>
|
||||
|
||||
@ -8,8 +8,6 @@ export const teamMembers = [
|
||||
image: "/assets/images/our-team/dhanya.webp",
|
||||
imageDetail: "/assets/images/our-team/details/dhanya.webp",
|
||||
bannerImage: "/assets/images/our-team/details/our-team-details-banner-1.webp",
|
||||
metaTitle: "Dhanya Prashant - Registered Physiotherapist in Etobicoke",
|
||||
metaDis: "Meet Dhanya Prashant, experienced physiotherapist at Rapha Rehab Etobicoke. Expert in back pain, vestibular therapy & rehab.",
|
||||
description: "Dhanya Prashant is a registered physiotherapist with 10+ years of clinical experience helping people move with comfort and confidence. She has special interests in the McKenzie method for back pain, vestibular rehabilitation for dizziness and balance issues, and complex musculoskeletal injuries. At Rapha Rehab in Etobicoke, Dhanya blends targeted exercise prescription with gentle, hands-on manual therapy to restore function and prevent re-injury. Her approach is collaborative, goal-driven, and tailored to each person’s lifestyle.",
|
||||
about1:
|
||||
"Dhanya began her career in outpatient orthopedic care and quickly developed a reputation for meticulous assessments and clear patient education. She has guided hundreds of clients through recovery from low-back and neck pain, rotator-cuff and shoulder conditions, knee and ankle injuries, and post-operative rehabilitation. Her additional training in vestibular therapy allows her to effectively treat vertigo, post-concussion symptoms, and balance deficits-prioritizing safety and gradual exposure to movement.",
|
||||
@ -38,8 +36,6 @@ export const teamMembers = [
|
||||
bannerImage: "/assets/images/our-team/details/our-team-details-banner-2.webp",
|
||||
image: "/assets/images/our-team/chandra.webp",
|
||||
imageDetail: "/assets/images/our-team/details/chandra.webp",
|
||||
metaTitle: "Chandra Babu - Registered Massage Therapist | Rapha Rehab",
|
||||
metaDis: "Meet Chandra Babu, Registered Massage Therapist at Rapha Rehab Etobicoke. Expert in deep tissue, reflexology & massage therapy.",
|
||||
description: " Chandra Babu is a registered massage therapist with eight years of professional experience helping clients relieve tension, recover from injury, and enhance overall wellness. At Rapha Rehab in Etobicoke, Chandra specializes in deep tissue techniques, reflexology, and wellness-focused massage programs. His treatments are designed to ease muscle tightness, improve circulation, and complement physiotherapy or rehabilitation plans for a complete approach to care.",
|
||||
about1:
|
||||
"Chandra began his career working alongside physiotherapists and chiropractors in multidisciplinary clinics, where he gained valuable insight into injury recovery and preventative care. Over the years, he has refined his ability to identify areas of muscle imbalance and tension, using tailored massage techniques to help clients restore movement and reduce discomfort. His calm, attentive manner puts patients at ease, making each session a positive and restorative experience.",
|
||||
@ -60,37 +56,6 @@ export const teamMembers = [
|
||||
{ label: "Wellness Coaching", percent: 80 },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
slug: "jo-anne",
|
||||
name: "Jo-Anne",
|
||||
designation: "Diet & Nutrition Consultant",
|
||||
bannerImage: "/assets/images/our-team/details/our-team-details-banner-2.webp",
|
||||
image: "/assets/images/our-team/Jo-Anne.png",
|
||||
imageDetail: "/assets/images/our-team/Jo-Anne.png",
|
||||
metaTitle: "Jo-Anne - Diet & Nutrition Consultant | Rapha Rehab",
|
||||
metaDis: "Meet Jo-Anne, a Diet & Nutrition Consultant with over 45 years of experience in hospitals, consulting, and online internationally since Covid.",
|
||||
description: "Jo-Anne has over 45 years of diet and nutrition experience in hospitals, her consulting business, and since Covid, on-line internationally. Growing up, Jo-Anne saw the health burden of extra body weight for a family member and then for herself in her early twenties. This inspired her to go into the field of diet and nutrition. Jo-Anne graduated in 1979 with a college honors diploma in Dietary from the Northern Alberta Institute of Technology (NAIT) in Edmonton, Alberta, Canada. And since has strived to encourage others and to foster her own healthy eating active lifestyle. Her personalized healthy active lifestyle approach can work for anyone because it is adaptable to individual needs and preferences. No one-size-fits-all, each person is different, and that’s why your program is customized to suit you plus you get supportive accountability to keep you going. Look, Feel, Move, & Think Better with Winning Healthy Lifestyle Programs. Get Results that last so you look, feel, move and think your best, have more energy, prevent premature aging, reduce serious health risks like diabetes and heart disease and truly enhance your overall quality of life. Discover which program works best for you and your goals, start with a free no obligation consultation. Call Jo-Anne at 832-273-2131.",
|
||||
about1:
|
||||
"Individual and group options available to fit your schedule and budget. Minimum group size is 6. Individual programs available by appointment. Program length varies depending on goals. Day & time varies daytime and evening programs available. Fee per program: Based on number of meetings plus program guide.",
|
||||
about2:
|
||||
"Winning-Edge for Weight-loss: a doable healthy lifestyle approach to losing weight and keeping it off. This program is informative, supportive and fun. Not only do participants look and feel better as they lose weight, but they feel more empowered to manage their Healthy Weight Zone forever. OPTION #2: Optimizing Health (OH) is an active lifestyle program focused on personal optimization of healthy eating, active living and thoughtful habits (HEALTH). Get science-based information on nutrition/food, fitness and habits so, you can make more thoughtful healthier choices. Learn to separate fact, myth and fiction. Then implement what works for you into your active lifestyle to optimize your health. Habits like eating nutritiously and being physically active are foundational for an overall healthy lifestyle. You will look, feel, move and think your best by optimizing your health with OH tools, information and practice.",
|
||||
experience: "45+ Years",
|
||||
email: " jo-anne@rapharehab.ca",
|
||||
phone: " 832-273-2131",
|
||||
socials: [
|
||||
{ icon: "icon-7", link: "/" },
|
||||
{ icon: "icon-4", link: "/" },
|
||||
{ icon: "icon-6", link: "/" },
|
||||
],
|
||||
skills: [
|
||||
{ label: "Diet & Nutrition Consulting", percent: 95 },
|
||||
{ label: "Healthy Lifestyle Coaching", percent: 90 },
|
||||
{ label: "Weight Management Programs", percent: 92 },
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
];
|
||||
|
||||
|
||||
|
||||