responsive issues fixed

This commit is contained in:
Alaguraj0361 2025-10-29 20:29:23 +05:30
parent 3b28c6907d
commit 76b28c32ee
21 changed files with 250 additions and 284 deletions

View File

@ -4,15 +4,12 @@ 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-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';
import 'swiper/css/navigation';
import 'swiper/css/pagination';
import Image from "next/image";
const swiperOptions = {
modules: [Autoplay, Pagination, Navigation],
@ -84,7 +81,7 @@ export default function Home() {
<div className="shape-1 rotate-me" style={{ backgroundImage: 'url(/assets/images/shape/shape-8.webp)' }}></div>
<div className="shape-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-33.png"
alt="Physiotherapy at Rapharehab"
fill
@ -95,7 +92,7 @@ export default function Home() {
{/* <div className="shape-3" style={{ backgroundImage: 'url(/assets/images/shape/shape-7.png)' }}></div> */}
<div className="shape-4">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-34.png"
alt="Physiotherapy at Rapharehab"
fill
@ -105,7 +102,7 @@ export default function Home() {
<div className="shape-5">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-11.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -145,7 +142,7 @@ export default function Home() {
<section className="process-section sec-pad pt-0">
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-19.png"
alt="Physiotherapy at Rapharehab"
fill
@ -167,7 +164,7 @@ export default function Home() {
<div className="inner-container">
<div className="arrow-shape">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-18.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -307,7 +304,7 @@ export default function Home() {
<section className="chooseus-section">
<div className="bg-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/about-us/section4/why-choose-right.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -318,7 +315,7 @@ export default function Home() {
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-12.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -2,8 +2,7 @@
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import { useState } from 'react';
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
import { teamMembers } from "@/utils/constant.utils";
@ -33,7 +32,7 @@ export default function Home() {
<section className="feature-section pt_90 pb_90">
<div className="shape hide-element">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-6.png"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -10,81 +10,72 @@ import Script from "next/script";
export const metadata = {
title: "Best Pain Relief & Physiotherapy - Repharehab Clinic",
description: "Rapharehab offers trusted physiotherapy and pain relief treatments with professional care tailored to restore your health and mobility.",
description:
"Rapharehab offers trusted physiotherapy and pain relief treatments with professional care tailored to restore your health and mobility.",
};
export default function RootLayout({ children }) {
const siteUrl = "https://rapharehab.ca";
const logoUrl = `${siteUrl}/assets/images/logo.png`;
const ogImage = `${siteUrl}/assets/images/logo.jpg`;
return (
<html lang="en" className={`${poppins.variable}`}>
<head>
{/* ✅ Preload critical font */}
<link
{/* <link
rel="preload"
href="/fonts/poppins.woff2"
as="font"
type="font/woff2"
crossOrigin="anonymous"
/>
/> */}
{/* ✅ Canonical Tag */}
<link rel="canonical" href="https://rapharehab.ca/" />
<link rel="canonical" href={siteUrl} />
{/* ✅ Open Graph Meta Tags */}
<meta
property="og:title"
content="Rapha Rehab Your Trusted Physiotherapy & Rehabilitation Clinic in Etobicoke"
/>
{/* ✅ Open Graph Meta */}
<meta property="og:title" content="Rapha Rehab Physiotherapy Clinic" />
<meta
property="og:description"
content="Rapha Rehab provides evidence-based physiotherapy, sports injury rehab, massage therapy, chiropractic care, orthotics and more in Etobicoke. Regain mobility, reduce pain and live healthier."
content="Trusted physiotherapy, pain relief and rehab clinic in Etobicoke. Book your appointment now."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content={siteUrl} />
<meta property="og:site_name" content="Rapha Rehab" />
<meta property="og:image" content={ogImage} />
<meta
property="og:image:alt"
content="Rapha Rehab clinic interior physiotherapy treatment in progress"
/>
<meta property="og:site_name" content="Rapha Rehab" />
<meta property="og:locale" content="en_CA" />
{/* ✅ Twitter Card Meta Tags */}
{/* ✅ Twitter Meta */}
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Rapha Rehab Physiotherapy & Rehabilitation Clinic in Etobicoke"
content="Rapha Rehab Physiotherapy & Rehab Clinic in Etobicoke"
/>
<meta
name="twitter:description"
content="Experience expert physiotherapy, sports rehab, massage therapy, chiropractic care, and orthotics at Rapha Rehab in Etobicoke. Get personalized treatment to restore your strength and mobility."
content="Expert physiotherapy and pain relief treatments tailored to you."
/>
<meta name="twitter:image" content={ogImage} />
<meta
name="twitter:image:alt"
content="Physiotherapy session at Rapha Rehab Clinic, Etobicoke"
/>
<meta name="twitter:site" content="@YourTwitterHandle" />
<meta name="twitter:url" content={siteUrl} />
{/* Microsoft Clarity */}
<Script id="clarity-script" strategy="afterInteractive">
{`
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/th7p0lr1ca";
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "th7p0lr1ca");
`}
</Script>
{/* ✅ Preconnect — Faster 3rd-party requests */}
<link rel="preconnect" href="https://www.googletagmanager.com" />
<link rel="preconnect" href="https://connect.facebook.net" />
<link rel="preconnect" href="https://www.facebook.com" />
<link rel="preconnect" href="https://scripts.clarity.ms" />
{/* Google Tag Manager */}
{/* ✅ fetchpriority for LCP Image */}
<link
rel="preload"
as="image"
href="/assets/images/banner/mobile-banner/4.webp"
fetchpriority="high"
/>
</head>
<body>
{/* ✅ Google Tag Manager — non-blocking */}
<Script id="gtm-init" strategy="afterInteractive">
{`
(function(w,d,s,l,i){
@ -100,107 +91,46 @@ export default function RootLayout({ children }) {
`}
</Script>
{/* ✅ Facebook Meta Pixel */}
<Script id="facebook-pixel" strategy="afterInteractive">
{/* ✅ Microsoft Clarity — lazy load to reduce LCP impact */}
<Script id="clarity-script" strategy="lazyOnload">
{`
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1133141855537200');
fbq('track', 'PageView');
window.onload = function() {
setTimeout(() => {
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/th7p0lr1ca";
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "th7p0lr1ca");
}, 3000);
};
`}
</Script>
{/* PhysiotherapyClinic Schema Markup */}
<Script
id="schema-physiotherapy"
type="application/ld+json"
strategy="afterInteractive"
>
{JSON.stringify({
"@context": "https://schema.org",
"@type": "PhysiotherapyClinic",
name: "Repharehab Clinic",
image: logoUrl,
"@id": siteUrl,
url: siteUrl,
telephone: "+16477223434",
priceRange: "$$",
medicalSpecialty: "PhysicalTherapy",
address: {
"@type": "PostalAddress",
streetAddress: "5 4335 Bloor Street West",
addressLocality: "Etobicoke",
addressRegion: "ON",
postalCode: "M9C 2A5",
addressCountry: "CA",
},
geo: {
"@type": "GeoCoordinates",
latitude: 43.6389,
longitude: -79.5716,
},
openingHoursSpecification: [
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Monday",
opens: "10:00",
closes: "20:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Tuesday",
opens: "14:00",
closes: "19:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Wednesday",
opens: "10:00",
closes: "20:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Thursday",
opens: "10:00",
closes: "20:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Friday",
opens: "10:00",
closes: "20:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Saturday",
opens: "10:00",
closes: "19:00",
},
{
"@type": "OpeningHoursSpecification",
dayOfWeek: "Sunday",
opens: "00:00",
closes: "00:00",
closed: true,
},
],
sameAs: [
"https://www.facebook.com/ELRaphaRehabCenter/",
"https://www.instagram.com/elrapharehab/",
],
})}
{/* ✅ Facebook Pixel — lazy load to avoid blocking */}
<Script id="facebook-pixel" strategy="lazyOnload">
{`
setTimeout(() => {
!function(f,b,e,v,n,t,s){
if(f.fbq)return;
n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;
n.push=n;
n.loaded=!0;
n.version='2.0';
n.queue=[];
t=b.createElement(e);t.async=!0;
t.src=v;
s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)
}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1133141855537200');
fbq('track', 'PageView');
}, 4000);
`}
</Script>
</head>
<body>
{/* GTM noscript fallback */}
{/* ✅ Facebook & GTM noscript fallback */}
<noscript>
<iframe
src="https://www.googletagmanager.com/ns.html?id=G-KM1KJW539N"
@ -208,10 +138,6 @@ export default function RootLayout({ children }) {
width="0"
style={{ display: "none", visibility: "hidden" }}
></iframe>
</noscript>
{/* ✅ Facebook Pixel noscript fallback */}
<noscript>
<img
height="1"
width="1"

View File

@ -1,7 +1,6 @@
import Link from "next/link"
import Layout from "@/components/layout/Layout"
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -21,7 +20,7 @@ export default function About() {
<div className="pattern-1 rotate-me" style={{ backgroundImage: "url(/assets/images/shape/shape-8.webp)" }}></div>
<div className="pattern-2 rotate-me absolute w-[140px] h-[140px]">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-9.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -40,7 +39,7 @@ export default function About() {
<div className="image-shape">
<div className="shape-1 rotate-me">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-8.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -50,7 +49,7 @@ export default function About() {
<div className="shape-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-33.png"
alt="Physiotherapy at Rapharehab"
fill
@ -69,7 +68,7 @@ export default function About() {
<div className="shape-4">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-34.png"
alt="Physiotherapy at Rapharehab"
fill
@ -79,7 +78,7 @@ export default function About() {
<div className="shape-5">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-11.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -5,8 +5,7 @@ import { motion } from "framer-motion"
import TestimonialSlider1 from '@/components/slider/TestimonialSlider1'
import PortfolioFilter1 from "@/components/elements/Shortcodes"
import CounterUp from "@/components/elements/CounterUp"
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
import { teamMembers } from "@/utils/constant.utils";
@ -352,7 +351,7 @@ export default function Home() {
<section className="process-section pt_90 pb_90">
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-19.png"
alt="Physiotherapy at Rapharehab"
fill
@ -368,7 +367,7 @@ export default function Home() {
<div className="inner-container">
<div className="arrow-shape">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-18.webp"
alt=" Physiotherapy at Rapharehab"
fill
@ -491,7 +490,7 @@ export default function Home() {
<section className="testimonial-section pt_90 pb_90 bg-color-1" id="testimonial">
<div className="bg-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shortcodes/testimonials-carousel.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -501,7 +500,7 @@ export default function Home() {
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-21.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,7 +1,6 @@
import Link from "next/link"
import Layout from "@/components/layout/Layout"
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -27,7 +26,7 @@ export default function About() {
<div className="image-shape">
<div className="shape-1 rotate-me">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-8.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -37,7 +36,7 @@ export default function About() {
<div className="shape-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-33.png"
alt="Physiotherapy at Rapharehab"
fill
@ -56,7 +55,7 @@ export default function About() {
<div className="shape-4">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-34.png"
alt="Physiotherapy at Rapharehab"
fill
@ -66,7 +65,7 @@ export default function About() {
<div className="shape-5">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-11.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,8 +1,7 @@
'use client';
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -28,7 +27,7 @@ export default function Team() {
<div className="pattern-layer">
<div className="pattern-1">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-13.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -38,7 +37,7 @@ export default function Team() {
<div className="pattern-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-14.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -88,7 +87,7 @@ export default function Team() {
<section className="testimonial-style-two pb_90 p_relative">
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-19.png"
alt="Physiotherapy at Rapharehab"
fill
@ -170,7 +169,7 @@ export default function Team() {
<section className="video-section p_relative">
<div className="bg-layer parallax-bg" data-parallax='{"y": 100}'>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/why-us/bg.webp"
alt=" Physiotherapy at Rapharehab "
fill
@ -183,7 +182,7 @@ export default function Team() {
<div className="inner-box">
<div className="shape new-arrow">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-17.png"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -0,0 +1,33 @@
import Link from "next/link"
// import { useRouter } from "next/router"
export default function Menu() {
// const router = useRouter()
return (
<>
{/* <ul className="sub-menu">
<Link className={router.pathname == "/" ? "active" : ""}>Home Default</Link>
<Link className={router.pathname == "/index-2" ? "active" : ""}>Home Interior</Link>
</ul> */}
<ul className="navigation clearfix">
<li className=" dropdown"><Link href="/">Home</Link>
<ul>
<li><Link href="/">Home Page One</Link></li>
<li><Link href="/index-2">Home Page Two</Link></li>
<li><Link href="/index-3">Home Page Three</Link></li>
<li><Link href="/onepage">OnePage Home</Link></li>
</ul>
</li>
<li><Link href="#about">About</Link></li>
<li><Link href="#service">Service</Link></li>
<li><Link href="#team">Team</Link></li>
<li><Link href="#news">News</Link></li>
<li><Link href="#footer">Footer</Link></li>
</ul>
</>
)
}

View File

@ -0,0 +1,59 @@
import Link from "next/link"
export default function Sidebar({ isSidebar, handleSidebar }) {
return (
<>
<div className={`xs-sidebar-group info-group info-sidebar ${isSidebar ? "isActive" : ""}`} >
<div className="xs-overlay xs-bg-black"></div>
<div className="xs-overlay xs-overlay-2 xs-bg-black" onClick={handleSidebar}></div>
<div className="xs-overlay xs-overlay-3 xs-bg-black" onClick={handleSidebar}></div>
<div className="xs-overlay xs-overlay-4 xs-bg-black" onClick={handleSidebar}></div>
<div className="xs-overlay xs-overlay-5 xs-bg-black" onClick={handleSidebar}></div>
<div className="xs-sidebar-widget">
<div className="sidebar-widget-container">
<div className="widget-heading">
<a className="close-side-widget" onClick={handleSidebar}><i className="fa fa-times"></i></a>
</div>
<div className="sidebar-textwidget">
<div className="sidebar-info-contents">
<div className="content-inner">
<div className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</div>
<div className="content-box">
<h4>About Us</h4>
<p>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</p>
<p>Research oriented solutions for Data Science and Machine Learning business needs.</p>
<Link href="#" className="theme-btn btn-one"><span>About Us</span></Link>
</div>
<div className="contact-info">
<h4>Contact Info</h4>
<ul>
<li>Chicago 12, Melborne City, USA</li>
<li><Link href="tel:+8801682648101">+88 01682648101</Link></li>
<li><Link href="mailto:info@example.com">info@example.com</Link></li>
</ul>
</div>
<ul className="social-box">
<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>
</div>
</div>
</div>
</div>
</div>
</>
)
}

View File

@ -1,7 +1,6 @@
import React from "react";
import Link from "next/link";
import Image from "next-image-export-optimizer";
import exportableLoader from "next-image-export-optimizer";
import Image from "next/image";
export default function AboutSection() {
return (
@ -16,7 +15,7 @@ export default function AboutSection() {
style={{ width: "120px", height: "120px" }}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-8.webp"
alt="Decorative Shape"
width={120}
@ -33,7 +32,7 @@ export default function AboutSection() {
style={{ width: "60px", height: "60px" }}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-9.webp"
alt="Decorative Shape"
width={60}
@ -50,7 +49,7 @@ export default function AboutSection() {
style={{ width: "150px", height: "150px" }}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-11.webp"
alt="Decorative Shape"
width={150}
@ -82,7 +81,7 @@ export default function AboutSection() {
}}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-26.webp"
alt="Background Shape"
width={600}
@ -105,7 +104,7 @@ export default function AboutSection() {
}}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/welcome/home-welcome.webp"
alt="Physiotherapy at Rapha Rehab"
width={600}
@ -115,7 +114,7 @@ export default function AboutSection() {
priority
quality={70} // ✅ reduce file size without visible loss
placeholder="blur"
blurDataURL="/assets/images/home/welcome/home-welcome-blur.webp"
blurDataURL="/assets/images/home/welcome/home-welcome.webp"
style={{ width: "100%", height: "auto", borderRadius: "8px", display: "block" }}
/>
@ -127,7 +126,7 @@ export default function AboutSection() {
style={{ width: "80px", height: "80px" }}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/welcome/top-icon.webp"
alt="Physiotherapy Icon"
width={80}
@ -145,7 +144,7 @@ export default function AboutSection() {
style={{ width: "80px", height: "80px" }}
>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/welcome/bottom-icon.webp"
alt="Physiotherapy Icon"
width={80}

View File

@ -1,7 +1,6 @@
import React from 'react';
import Link from "next/link";
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
import { areaOfInjuryData } from '@/utils/AreaOfInjery.utils';
@ -23,7 +22,7 @@ export default function AreaOfInjury() {
<div className="pattern-layer">
<div className="pattern-1">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-13.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -33,7 +32,7 @@ export default function AreaOfInjury() {
<div className="pattern-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-14.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,8 +1,7 @@
'use client'
import Layout from "@/components/layout/Layout"
import Link from "next/link"
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
import { useState } from 'react'
@ -39,7 +38,7 @@ export default function FaqSection() {
<div className="image-shape">
<div className="shape-1 rotate-me">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-8.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -49,7 +48,7 @@ export default function FaqSection() {
<div className="shape-2">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-33.png"
alt="Physiotherapy at Rapharehab"
fill
@ -68,7 +67,7 @@ export default function FaqSection() {
<div className="shape-4">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-34.png"
alt="Physiotherapy at Rapharehab"
fill
@ -78,7 +77,7 @@ export default function FaqSection() {
<div className="shape-5">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-11.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,7 +1,6 @@
import { servicesList } from "@/utils/Services.utils"
import Link from "next/link"
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -12,7 +11,7 @@ export default function MobileServices() {
<div className="pattern-layer">
<div className="pattern-1 ">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/our-services/top-right.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,6 +1,5 @@
import React from 'react';
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -9,7 +8,7 @@ export default function ProcessSection() {
<section className="process-section sec-pad bg-color-1">
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-19.png"
alt="Physiotherapy at Rapharehab"
fill
@ -29,7 +28,7 @@ export default function ProcessSection() {
<div className="inner-container">
<div className="arrow-shape">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-18.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,8 +1,7 @@
import { servicesList } from '@/utils/Services.utils';
import Link from 'next/link';
import React from 'react';
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -12,7 +11,7 @@ export default function ServicesSection() {
<div className="pattern-layer">
<div className="pattern-1 ">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/our-services/top-right.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -22,7 +21,7 @@ export default function ServicesSection() {
<div className="pattern-2 ">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/our-services/bottom-left.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,7 +1,6 @@
import Link from 'next/link';
import React from 'react';
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -10,7 +9,7 @@ export default function WhyChooseUsSection() {
<section className="chooseus-section">
<div className="bg-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/why-choose/why-choose-right.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -21,7 +20,7 @@ export default function WhyChooseUsSection() {
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-12.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,7 +1,6 @@
import TestimonialSlider1 from '@/components/slider/TestimonialSlider1'
import Link from "next/link";
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
@ -11,7 +10,7 @@ export default function Testimonial() {
<section className="testimonial-section sec-pad bg-color-1">
<div className="bg-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/testimonial-left.webp"
alt="Physiotherapy at Rapharehab"
fill
@ -21,7 +20,7 @@ export default function Testimonial() {
<div className="pattern-layer">
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/shape/shape-21.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,8 +1,7 @@
'use client'
import React, { useState } from 'react';
import Link from "next/link";
import Image from 'next-image-export-optimizer';
import exportableLoader from 'next-image-export-optimizer';
import Image from "next/image";
import ModalVideo from 'react-modal-video'
@ -13,7 +12,7 @@ export default function Video() {
<section className="video-section p_relative">
<div className="bg-layer parallax-bg" data-parallax='{"y": 100}'>
<Image
loader={exportableLoader}
// loader={exportableLoader}
src="/assets/images/home/make-an-appointment/make-an-appopintment-bg.webp"
alt="Physiotherapy at Rapharehab"
fill

View File

@ -1,35 +1,35 @@
// /** @type {import('next').NextConfig} */
// const nextConfig = {
// output: "export", // keep: needed for next export
// trailingSlash: true,
// images: {
// unoptimized: true, // ✅ needed
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "export", // keep: needed for next export
trailingSlash: true,
images: {
unoptimized: true, // ✅ needed
},
swcMinify: true, // explicit SWC minify
// experimental: {
// forceSwcTransforms: true, // use SWC only
// modern: true, // ✅ enable modern build (ES6+ for modern browsers)
// polyfillsOptimization: true // ✅ remove unnecessary polyfills
// },
// swcMinify: true, // explicit SWC minify
// // experimental: {
// // forceSwcTransforms: true, // use SWC only
// // modern: true, // ✅ enable modern build (ES6+ for modern browsers)
// // polyfillsOptimization: true // ✅ remove unnecessary polyfills
// // },
// };
};
// module.exports = nextConfig;
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export', // static HTML export
trailingSlash: true,
images: {
// loader: 'custom', // required by next-image-export-optimizer
unoptimized: true, // prevents runtime optimization
},
transpilePackages: ['next-image-export-optimizer'],
env: {
nextImageExportOptimizer_imageFolderPath: 'public/assets/images',
nextImageExportOptimizer_exportFolderPath: 'out',
nextImageExportOptimizer_quality: '65',
nextImageExportOptimizer_storePicturesInWEBP: 'true',
},
};
// /** @type {import('next').NextConfig} */
// const nextConfig = {
// output: 'export', // static HTML export
// trailingSlash: true,
// images: {
// // loader: 'custom', // required by next-image-export-optimizer
// unoptimized: true, // prevents runtime optimization
// },
// transpilePackages: ['next-image-export-optimizer'],
// env: {
// nextImageExportOptimizer_imageFolderPath: '/assets/images',
// nextImageExportOptimizer_exportFolderPath: 'out',
// nextImageExportOptimizer_quality: '65',
// nextImageExportOptimizer_storePicturesInWEBP: 'true',
// },
// };
module.exports = nextConfig;
// module.exports = nextConfig;

34
package-lock.json generated
View File

@ -18,7 +18,6 @@
"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",
@ -3949,26 +3948,6 @@
}
}
},
"node_modules/next-image-export-optimizer": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/next-image-export-optimizer/-/next-image-export-optimizer-1.19.0.tgz",
"integrity": "sha512-DHecMn1FE3xPyABXf9CUelJwzFrHgGt2RQIQLIB9kN1wUfm+6lEjZD4beku8T9NXG2heWHku3AU+ohZV+tGYFw==",
"license": "MIT",
"dependencies": {
"sharp": "^0.33.1",
"typescript": "^5.2.2"
},
"bin": {
"next-image-export-optimizer": "dist/optimizeImages.js"
},
"engines": {
"node": ">=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",
@ -5261,19 +5240,6 @@
"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",

View File

@ -23,7 +23,6 @@
"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",