responsive issues fixed
This commit is contained in:
parent
3b28c6907d
commit
76b28c32ee
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
198
app/layout.js
198
app/layout.js
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
33
components/layout/OnepageMenu.js
Normal file
33
components/layout/OnepageMenu.js
Normal 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>
|
||||
|
||||
</>
|
||||
)
|
||||
}
|
||||
59
components/layout/Sidebar.js
Normal file
59
components/layout/Sidebar.js
Normal 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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</>
|
||||
)
|
||||
}
|
||||
@ -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}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,35 +1,35 @@
|
||||
// /** @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
|
||||
// // },
|
||||
// };
|
||||
/** @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
|
||||
// },
|
||||
};
|
||||
|
||||
// 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
34
package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user