diff --git a/.gitignore b/.gitignore index 6db9066..de8e519 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # next.js /.next/ /out/ +/.zip/ # production /build diff --git a/app/about-us/AboutClient.js b/app/about-us/AboutClient.js index 7ebb0b2..0e3ddae 100644 --- a/app/about-us/AboutClient.js +++ b/app/about-us/AboutClient.js @@ -4,7 +4,10 @@ import Link from "next/link" import { useState } from 'react' import { teamMembers } from "@/utils/constant.utils"; import CounterUp from "@/components/elements/CounterUp"; -import Image from "next/image"; +import Image from 'next-image-export-optimizer';; +import exportableLoader from 'next-image-export-optimizer'; + + import { Autoplay, Navigation, Pagination } from "swiper/modules"; import { Swiper, SwiperSlide } from "swiper/react"; import 'swiper/css'; @@ -81,6 +84,7 @@ export default function Home() {
Physiotherapy at Rapharehab
*/}
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab
Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab - - + {/* ✅ Preload critical font */} + + {/* ✅ Canonical Tag */} diff --git a/app/ourapproach-physiotherapy-etobicoke/page.js b/app/ourapproach-physiotherapy-etobicoke/page.js index 535ab32..9369d21 100644 --- a/app/ourapproach-physiotherapy-etobicoke/page.js +++ b/app/ourapproach-physiotherapy-etobicoke/page.js @@ -1,6 +1,9 @@ import Link from "next/link" import Layout from "@/components/layout/Layout" -import Image from "next/image"; +import Image from 'next-image-export-optimizer'; +import exportableLoader from 'next-image-export-optimizer'; + + export const metadata = { title: "Our Healing Approach – Rapharehab’s Proven Methods", @@ -18,6 +21,7 @@ export default function About() {
Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab
 Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab
 Physiotherapy at Rapharehab
Physiotherapy at Rapharehab { - const elements = document.querySelectorAll('[data-bg]') + useEffect(() => { + const elements = document.querySelectorAll("[data-bg]"); - elements.forEach((element) => { - element.style.backgroundImage = `url(${element.getAttribute('data-bg')})` - }) - }, []) - return ( - <> + requestAnimationFrame(() => { + elements.forEach((element) => { + const bg = element.getAttribute("data-bg"); + if (bg) element.style.backgroundImage = `url(${bg})`; + }); + }); + }, []); - - ) -} \ No newline at end of file + return null; +} diff --git a/components/elements/Preloader.js b/components/elements/Preloader.js index 0ff25d7..4cc797b 100644 --- a/components/elements/Preloader.js +++ b/components/elements/Preloader.js @@ -16,7 +16,7 @@ export default function Preloader() { if (!loading) return null; return ( -
+
rapharehab {/*
Preloader Close
*/} diff --git a/components/layout/Layout.js b/components/layout/Layout.js index 7b39782..da3a9ea 100644 --- a/components/layout/Layout.js +++ b/components/layout/Layout.js @@ -9,13 +9,12 @@ const WOW = dynamic(() => import('wowjs/dist/wow')); import BackToTop from '../elements/BackToTop'; import DataBg from "../elements/DataBg"; import Breadcrumb from './Breadcrumb'; -import Sidebar from "./Sidebar"; +// import Sidebar from "./Sidebar"; import Footer1 from './footer/Footer1'; import Footer2 from './footer/Footer2'; import Header1 from "./header/Header1"; -import Header2 from './header/Header2'; -import Header3 from "./header/Header3"; -import Header4 from "./header/Header4"; +import Header2 from "./header/Header2"; + import ContactFloat from "../ContactFloat"; import SocialFloat from "../SocialFloat"; @@ -52,10 +51,8 @@ export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumb
{(headerStyle === 1 || !headerStyle) && } {headerStyle === 2 && } - {headerStyle === 3 && } - {headerStyle === 4 && } - + {/* */} {breadcrumbTitle && ( @@ -66,8 +63,8 @@ export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumb {(footerStyle === 1 || !footerStyle) && } {footerStyle === 2 && }
- {/* */} - {/* */} + {/* */} + {/* */} ); diff --git a/components/layout/MobileMenu2.js b/components/layout/MobileMenu2.js deleted file mode 100644 index 67f62ca..0000000 --- a/components/layout/MobileMenu2.js +++ /dev/null @@ -1,85 +0,0 @@ -'use client' -import Link from "next/link" -import { useState } from "react" -export default function MobileMenu({ isSidebar, handleMobileMenu, handleSidebar }) { - const [isActive, setIsActive] = useState({ - status: false, - key: "", - }) - - const handleToggle = (key) => { - if (isActive.key === key) { - setIsActive({ - status: false, - }) - } else { - setIsActive({ - status: true, - key, - }) - } - } - return ( - <> -
-
-
- -
- -
{/* End Mobile Menu */} -
- - ); -} diff --git a/components/layout/OnepageMenu.js b/components/layout/OnepageMenu.js deleted file mode 100644 index 3477039..0000000 --- a/components/layout/OnepageMenu.js +++ /dev/null @@ -1,33 +0,0 @@ -import Link from "next/link" -// import { useRouter } from "next/router" - -export default function Menu() { - // const router = useRouter() - - return ( - <> - - {/*
    - Home Default - Home Interior -
*/} - -
    -
  • Home -
      -
    • Home Page One
    • -
    • Home Page Two
    • -
    • Home Page Three
    • -
    • OnePage Home
    • -
    -
  • -
  • About
  • -
  • Service
  • -
  • Team
  • -
  • News
  • -
  • Footer
  • -
- - - ) -} diff --git a/components/layout/Sidebar.js b/components/layout/Sidebar.js deleted file mode 100644 index 9f9eb2c..0000000 --- a/components/layout/Sidebar.js +++ /dev/null @@ -1,59 +0,0 @@ -import Link from "next/link" - -export default function Sidebar({ isSidebar, handleSidebar }) { - return ( - <> - - -
-
-
-
-
-
-
-
-
- -
-
-
-
-
- rapharehab -
-
-

About Us

-

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi

-

Research oriented solutions for Data Science and Machine Learning business needs.

- About Us -
-
-

Contact Info

-
    -
  • Chicago 12, Melborne City, USA
  • -
  • +88 01682648101
  • -
  • info@example.com
  • -
-
-
    -
  • -
  • -
  • -
  • -
-
-
-
-
-
-
- - - - - - - - ) -} diff --git a/components/layout/header/Header1.js b/components/layout/header/Header1.js index 0601b01..6d3caf6 100644 --- a/components/layout/header/Header1.js +++ b/components/layout/header/Header1.js @@ -70,8 +70,8 @@ export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSide
-
- rapharehab +
+ rapharehab
@@ -97,7 +97,7 @@ export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSide
- rapharehab + rapharehab
diff --git a/components/layout/header/Header2.js b/components/layout/header/Header2.js index 3170ef6..e099ef7 100644 --- a/components/layout/header/Header2.js +++ b/components/layout/header/Header2.js @@ -63,7 +63,7 @@ export default function Header2({
- rapharehab + rapharehab
@@ -89,7 +89,7 @@ export default function Header2({
-
+
rapharehab
diff --git a/components/layout/header/Header3.js b/components/layout/header/Header3.js deleted file mode 100644 index 4eaeeb1..0000000 --- a/components/layout/header/Header3.js +++ /dev/null @@ -1,98 +0,0 @@ -'use client' -import Link from "next/link"; -import Menu from "../Menu" -import MobileMenu from "../MobileMenu" -export default function Header3({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) { - return ( - <> -
- {/* Header Top */} -
-
-
-
    -
  • Mon - Fri 8:00 - 18:00 / Sunday 8:00 - 14:00
  • -
  • Email: 0198-9526503
  • -
  • location 47 Bakery Street, London, UK
  • -
-
    -
  • -
  • -
  • -
  • -
-
-
-
- - {/* Header Upper */} -
-
-
-
-
-
rapharehab
-
-
- {/* Mobile Navigation Toggler */} -
- - - -
- {/* Main Menu */} - - -
- {/* Menu Right Content */} -
    - -
  • - -
  • -
  • - -
  • -
-
-
-
-
- {/*End Header Upper*/} - {/* Sticky Header */} -
-
-
-
-
rapharehab
-
- - -
    - -
  • - -
  • -
  • - -
  • -
- -
-
-
{/* End Sticky Menu */} - {/* Mobile Menu */} - - -
- - ) -} diff --git a/components/layout/header/Header4.js b/components/layout/header/Header4.js deleted file mode 100644 index 06035bd..0000000 --- a/components/layout/header/Header4.js +++ /dev/null @@ -1,92 +0,0 @@ -'use client' -import Link from "next/link"; -import OnepageMenu from "../OnepageMenu" -import MobileMenu from "../MobileMenu" - -export default function Header4({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) { - return ( - <> -
- {/* Header Top */} -
-
-
-
    -
  • Mon - Fri 8:00 - 18:00 / Sunday 8:00 - 14:00
  • -
  • Email: 0198-9526503
  • -
  • location 47 Bakery Street, London, UK
  • -
-
    -
  • -
  • -
  • -
  • -
-
-
-
- - {/* Header Upper */} -
-
-
-
-
-
rapharehab
-
-
- {/* Mobile Navigation Toggler */} -
- - - -
- {/* Main Menu */} - - -
- {/* Menu Right Content */} -
    - - -
    - Request A Pickup -
    -
-
-
-
-
- {/*End Header Upper*/} - {/* Sticky Header */} -
-
-
-
-
rapharehab
-
- -
- -
-
- Request A Pickup -
-
-
-
{/* End Sticky Menu */} - {/* Mobile Menu */} - - -
- - ) -} diff --git a/components/sections/home/AboutSection.js b/components/sections/home/AboutSection.js index 2909554..a11ece1 100644 --- a/components/sections/home/AboutSection.js +++ b/components/sections/home/AboutSection.js @@ -1,108 +1,169 @@ -import Image from "next/image"; -import Link from "next/link"; import React from "react"; +import Link from "next/link"; +import Image from "next-image-export-optimizer"; +import exportableLoader from "next-image-export-optimizer"; export default function AboutSection() { return ( -
- {/* Pattern Layers with fixed sizes */} +
+ {/* ===== Pattern Layers ===== */}
-
+
Physiotherapy at Rapharehab
-
+
Physiotherapy at Rapharehab
-
+
Physiotherapy at Rapharehab
+ {/* ===== Content Area ===== */}
- {/* Image Column */} + {/* Left: Image Column */}
+ {/* Background Shape */} -
+
Background shape
- {/* Main Hero Image (LCP) */} -
+ {/* Main Hero Image */} +
Physiotherapy
{/* Top Icon */} -
+
Physiotherapy at Rapharehab
{/* Bottom Icon */} -
+
Physiotherapy at Rapharehab
- {/* Content Column */} + {/* Right: Text Column */}
@@ -113,24 +174,20 @@ export default function AboutSection() {

- At Rapha Rehab, we specialize in evidence-based - physiotherapy tailored to your needs. Our expert care helps - you recover, relieve pain, and regain strength for a better - quality of life. + At Rapha Rehab, we specialize in evidence-based physiotherapy tailored to + your needs. Our expert care helps you recover, relieve pain, and regain + strength for a better quality of life.

    -
  • Chronic pain (back, neck, joints).
  • -
  • Sports injuries (sprains, strains, post-surgery rehab).
  • -
  • Work-related injuries (WCB claims supported).
  • -
  • Movement disorders (stroke rehab, mobility issues).
  • +
  • Chronic pain (back, neck, joints)
  • +
  • Sports injuries (sprains, strains, post-surgery rehab)
  • +
  • Work-related injuries (WCB claims supported)
  • +
  • Movement disorders (stroke rehab, mobility issues)
- + Explore Our Service
diff --git a/components/sections/home/AreaOfInjury.js b/components/sections/home/AreaOfInjury.js index bc4847e..373769d 100644 --- a/components/sections/home/AreaOfInjury.js +++ b/components/sections/home/AreaOfInjury.js @@ -1,6 +1,9 @@ import React from 'react'; import Link from "next/link"; -import Image from 'next/image'; +import Image from 'next-image-export-optimizer'; +import exportableLoader from 'next-image-export-optimizer'; + + import { areaOfInjuryData } from '@/utils/AreaOfInjery.utils'; export default function AreaOfInjury() { @@ -20,6 +23,7 @@ export default function AreaOfInjury() {
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
*/}
-
- Start Your Treatment Today!
Visit our healthcare team in Etobicoke.
-

Area Of Injury

-
+
+ Start Your Treatment Today!
Visit our healthcare team in Etobicoke.
+

Area Of Injury

+
{areaOfInjuryData.slice(0, 8).map((area, index) => (
diff --git a/components/sections/home/FaqSection.js b/components/sections/home/FaqSection.js index 772e9e4..474726e 100644 --- a/components/sections/home/FaqSection.js +++ b/components/sections/home/FaqSection.js @@ -1,7 +1,10 @@ 'use client' import Layout from "@/components/layout/Layout" import Link from "next/link" -import Image from "next/image" +import Image from 'next-image-export-optimizer'; +import exportableLoader from 'next-image-export-optimizer'; + + import { useState } from 'react' export default function FaqSection() { const [isActive, setIsActive] = useState({ @@ -36,6 +39,7 @@ export default function FaqSection() {
Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab -
- Physiotherapy at Rapharehab -
+
+ Physiotherapy at Rapharehab +
{/*
@@ -23,14 +27,15 @@ export default function ProcessSection() {

How Physiotherapy Helps You Heal
and Stay Strong

-
- Physiotherapy at Rapharehab -
+
+ Physiotherapy at Rapharehab +
{/* Step 01 */}
diff --git a/components/sections/home/ServicesSection.js b/components/sections/home/ServicesSection.js index f2218ba..02b34c5 100644 --- a/components/sections/home/ServicesSection.js +++ b/components/sections/home/ServicesSection.js @@ -1,7 +1,10 @@ import { servicesList } from '@/utils/Services.utils'; import Link from 'next/link'; import React from 'react'; -import Image from 'next/image'; +import Image from 'next-image-export-optimizer'; +import exportableLoader from 'next-image-export-optimizer'; + + export default function ServicesSection() { return ( @@ -9,6 +12,7 @@ export default function ServicesSection() {
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab Physiotherapy at Rapharehab
Physiotherapy at Rapharehab=16.0.0" + }, + "peerDependencies": { + "next": "^14.2.18 || ^15.0.3", + "react": "^18.2.0 || ^19.0.0-0" + } + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -5240,6 +5261,19 @@ "node": ">= 0.4" } }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/uint8array-extras": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", diff --git a/package.json b/package.json index 703405a..47b42c6 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "isotope-layout": "^3.0.6", "keen-slider": "^6.8.6", "next": "^14.0.4-canary.36", + "next-image-export-optimizer": "^1.19.0", "react": "18.2.0", "react-dom": "18.2.0", "react-google-recaptcha": "^3.1.0", @@ -40,4 +41,4 @@ "last 2 Safari versions", "last 2 Edge versions" ] -} \ No newline at end of file +} diff --git a/public/assets/css/module-css/about.css b/public/assets/css/module-css/about.css index d77549d..66be13e 100644 --- a/public/assets/css/module-css/about.css +++ b/public/assets/css/module-css/about.css @@ -772,24 +772,35 @@ } @media only screen and (max-width: 376px) and (min-width: 200px) { - - .image_block_three .image-box .icon-box{ + + .image_block_three .image-box .icon-box { display: none !important; } - .image_block_two .image-box .icon-box{ + .image_block_two .image-box .icon-box { - display: none !important; + display: none !important; } - .image_block_three .image-box{ + .image_block_three .image-box { margin-right: 0px !important; } +} + +.about-main-image { + min-height: 420px +} + +@media (max-width:768px) { + + .about-main-image { + min-height: 300px + } } \ No newline at end of file diff --git a/public/assets/css/module-css/banner.css b/public/assets/css/module-css/banner.css index 7343447..17acc9b 100644 --- a/public/assets/css/module-css/banner.css +++ b/public/assets/css/module-css/banner.css @@ -778,4 +778,55 @@ padding: 15px 20px !important; } } */ - \ No newline at end of file + + +.new .logo-box { + + width:8% +} + +.logo-box{ + width:10% +} + +@media (max-width:1500px) { +.logo-box{ + width:9% +} +.new .logo-box { + width:8% +} + +} + + +@media (max-width:1450px) { +.logo-box{ + width:8% +} +.new .logo-box { + width:8% +} + +} + +@media (max-width:992px) { +.logo-box{ + width:15% +} +.new .logo-box { + width:12% +} + +} + +@media (max-width:500px) { +.logo-box{ + width:30% +} +.new .logo-box { + width:30% +} + + +} \ No newline at end of file diff --git a/public/assets/images/icons/call.webp b/public/assets/images/icons/call.webp index 492406d..e4c5cce 100644 Binary files a/public/assets/images/icons/call.webp and b/public/assets/images/icons/call.webp differ diff --git a/public/assets/images/icons/mail.webp b/public/assets/images/icons/mail.webp index 5f09470..9754229 100644 Binary files a/public/assets/images/icons/mail.webp and b/public/assets/images/icons/mail.webp differ diff --git a/public/assets/images/logo.png b/public/assets/images/logo.png index e1afe20..3ee5994 100644 Binary files a/public/assets/images/logo.png and b/public/assets/images/logo.png differ