diff --git a/app/about-us/page.js b/app/about-us/page.js index 7d33c89..b34449e 100644 --- a/app/about-us/page.js +++ b/app/about-us/page.js @@ -3,6 +3,41 @@ import Layout from "@/components/layout/Layout" import Link from "next/link" import { useState } from 'react' import { teamMembers } from "@/utils/constant.utils"; +import CounterUp from "@/components/elements/CounterUp"; + +import { Autoplay, Navigation, Pagination } from "swiper/modules"; +import { Swiper, SwiperSlide } from "swiper/react"; +import 'swiper/css'; +import 'swiper/css/navigation'; +import 'swiper/css/pagination'; + +const swiperOptions = { + modules: [Autoplay, Pagination, Navigation], + slidesPerView: 1, + spaceBetween: 0, + loop: true, + autoplay: { + delay: 2500, + disableOnInteraction: false, + }, + navigation: { + nextEl: '.swiper-button-next', + prevEl: '.swiper-button-prev', + }, + pagination: { + el: '.swiper-pagination', + clickable: true, + }, +}; + +const images = [ + '/assets/images/BrandPartners/1.png', + '/assets/images/BrandPartners/2.png', + '/assets/images/BrandPartners/3.png', + '/assets/images/BrandPartners/4.png', + '/assets/images/BrandPartners/5.png', + '/assets/images/BrandPartners/6.png', +]; export default function Home() { const [isOpen, setOpen] = useState(false) @@ -48,7 +83,7 @@ export default function Home() {
-
+
@@ -91,7 +126,7 @@ export default function Home() {

Mission Vision & Values

-
+
{contents.map((item, index) => { const isActive = activeIndex === index; @@ -222,6 +257,144 @@ export default function Home() {
+
+
+
+
+
+
+
+
+ {/* Why Choose Us */} +

WHY CHOOSE ETOBICOKE PHYSIOTHERAPY

+

Physiotherapy Etobicoke – We are a team of health care professionals provide physiotherapy, massage therapy services in etobicoke assist you in improving your health.

+
+
+
+
+
+
+

Expert Team

+

At Etobicoke Physiotherapy, we have expert team of professionals

+
+
+
+
+
+
+
+

Understand your Pain

+

Etobicoke physiotherapy offer Treatment for faster recovery

+
+
+
+
+
+
+
+

Ready To Go

+

Flexible opening hours conveniently located in etobicoke

+
+
+
+ {/*
+
+
+
+

24/7 Services

+

Amet minim mollit non deserunt aliqua dolor do amet sint.

+
+
+
*/} +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+ Professionals +
+
+
+
+
+
+ +
+ + +
+ Years Experience +
+
+
+
+
+
+ +
+ + +
+ Happy Customers +
+
+
+
+
+
+ +
+ % +
+ Client Satisfaction +
+
+
+
+
+
+
+ + +
+
+
+ + {images.map((src, index) => ( + + {`Slide + + ))} + +
+ +
+
+ ) diff --git a/app/ourapproach-physiotherapy-etobicoke/page.js b/app/ourapproach-physiotherapy-etobicoke/page.js index 660e605..5f75c83 100644 --- a/app/ourapproach-physiotherapy-etobicoke/page.js +++ b/app/ourapproach-physiotherapy-etobicoke/page.js @@ -11,7 +11,7 @@ export default function About() {
-
+
@@ -24,7 +24,7 @@ export default function About() {
-
+
diff --git a/app/shortcodes/page.js b/app/shortcodes/page.js index 0a87e55..60e9efd 100644 --- a/app/shortcodes/page.js +++ b/app/shortcodes/page.js @@ -4,6 +4,7 @@ import Layout from "@/components/layout/Layout" import { motion } from "framer-motion" import TestimonialSlider1 from "@/components/slider/ShortcodeTestimonial" import PortfolioFilter1 from "@/components/elements/Shortcodes" +import CounterUp from "@/components/elements/CounterUp" export default function Home() { @@ -11,7 +12,7 @@ export default function Home() {
@@ -462,6 +463,59 @@ export default function Home() {
+
+
+
+
+
+
+
+ +
+ + +
+ Professionals +
+
+
+
+
+
+ +
+ + +
+ Years Experience +
+
+
+
+
+
+ +
+ + +
+ Happy Customers +
+
+
+
+
+
+ +
+ % +
+ Client Satisfaction +
+
+
+
+
+
+
+
diff --git a/app/what-to-expect/page.js b/app/what-to-expect/page.js index cc16901..c575ce1 100644 --- a/app/what-to-expect/page.js +++ b/app/what-to-expect/page.js @@ -19,7 +19,7 @@ export default function About() {
-
+
diff --git a/app/works/page.js b/app/works/page.js index 400e1e6..94031c7 100644 --- a/app/works/page.js +++ b/app/works/page.js @@ -22,7 +22,7 @@ export default function Home() {

How it Helps You to
Keep Healthy

-
+
{/* Processing Blocks */} {[1, 2, 3].map((count) => ( diff --git a/components/elements/Counter.js b/components/elements/Counter.js index 35ea3ac..0100587 100644 --- a/components/elements/Counter.js +++ b/components/elements/Counter.js @@ -1,56 +1,25 @@ -import { useEffect, useRef, useState } from 'react' +'use client' +import { useEffect, useState } from 'react' - -export default function Counter({ end, duration }) { +export default function Counter({ end, duration = 2 }) { const [count, setCount] = useState(0) - const countRef = useRef(null) - const increment = end / duration useEffect(() => { - const observer = new IntersectionObserver( - ([entry]) => { - if (entry.isIntersecting) { - startCount() - observer.disconnect() - } - }, - { threshold: 0 } - ) + let start = 0 + const totalFrames = duration * 60 // 60 FPS + const increment = end / totalFrames - if (countRef.current) { - observer.observe(countRef.current) - } + const counter = setInterval(() => { + start += increment + if (start >= end) { + start = end + clearInterval(counter) + } + setCount(Math.floor(start)) + }, 1000 / 60) - return () => { - observer.disconnect() - } - }, []) + return () => clearInterval(counter) + }, [end, duration]) - useEffect(() => { - const interval = setInterval(() => { - setCount((prevCount) => { - const newCount = prevCount + increment - if (newCount >= end) { - clearInterval(interval) - return end - } else { - return newCount - } - }) - }, 1000 / duration) - - return () => { - clearInterval(interval) - } - }, [end, increment]) - - const startCount = () => { - setCount(0) - } - - return ( - - {Math.round(count)} - - ) -} \ No newline at end of file + return <>{count} +} diff --git a/components/elements/CounterUp.js b/components/elements/CounterUp.js index 1676587..8d72338 100644 --- a/components/elements/CounterUp.js +++ b/components/elements/CounterUp.js @@ -1,31 +1,30 @@ 'use client' -import { useEffect, useState } from 'react' +import { useEffect, useState, useRef } from 'react' import Counter from './Counter' -export default function CounterUp({ end }) { +export default function CounterUp({ end, duration = 2 }) { const [inViewport, setInViewport] = useState(false) + const ref = useRef(null) - const handleScroll = () => { - const elements = document.getElementsByClassName('count-text') - if (elements.length > 0) { - const element = elements[0] - const rect = element.getBoundingClientRect() - const isInViewport = rect.top >= 0 && rect.bottom <= window.innerHeight - if (isInViewport && !inViewport) { + const checkInView = () => { + if (ref.current) { + const rect = ref.current.getBoundingClientRect() + const isVisible = rect.top < window.innerHeight && rect.bottom >= 0 + if (isVisible && !inViewport) { setInViewport(true) } } } useEffect(() => { - window.addEventListener('scroll', handleScroll) - return () => { - window.removeEventListener('scroll', handleScroll) - } + checkInView() // Trigger immediately if already visible + window.addEventListener('scroll', checkInView) + return () => window.removeEventListener('scroll', checkInView) }, []) + return ( - <> - {inViewport && } - + + {inViewport && } + ) } diff --git a/components/sections/home/AboutSection.js b/components/sections/home/AboutSection.js index a865319..1337c15 100644 --- a/components/sections/home/AboutSection.js +++ b/components/sections/home/AboutSection.js @@ -7,7 +7,7 @@ export default function AboutSection() {
-
+
diff --git a/components/sections/home/FaqSection.js b/components/sections/home/FaqSection.js index a2d5d4d..56c8dc3 100644 --- a/components/sections/home/FaqSection.js +++ b/components/sections/home/FaqSection.js @@ -37,7 +37,7 @@ export default function FaqSection() {
-
+
diff --git a/components/sections/home/ProcessSection.js b/components/sections/home/ProcessSection.js index ca46954..254898e 100644 --- a/components/sections/home/ProcessSection.js +++ b/components/sections/home/ProcessSection.js @@ -15,7 +15,7 @@ export default function ProcessSection() {

How Physiotherapy Helps You Heal
and Stay Strong

-
+
{/* Step 01 */}
diff --git a/components/sections/home1/About.js b/components/sections/home1/About.js index 1ff88e1..f79818d 100644 --- a/components/sections/home1/About.js +++ b/components/sections/home1/About.js @@ -9,7 +9,7 @@ export default function about() {
-
+
diff --git a/components/sections/home1/Process.js b/components/sections/home1/Process.js index 76d9e98..8b2ca61 100644 --- a/components/sections/home1/Process.js +++ b/components/sections/home1/Process.js @@ -15,7 +15,7 @@ export default function Process() {

How it Helps You to
Keep Healthy

-
+
01 diff --git a/components/sections/home2/About.js b/components/sections/home2/About.js index 17b4103..e1f26d8 100644 --- a/components/sections/home2/About.js +++ b/components/sections/home2/About.js @@ -6,7 +6,7 @@ export default function About() {
-
+
diff --git a/components/sections/home3/About.js b/components/sections/home3/About.js index e2eecb1..ed6a66c 100644 --- a/components/sections/home3/About.js +++ b/components/sections/home3/About.js @@ -16,7 +16,7 @@ export default function About() {
-
+
diff --git a/components/sections/home3/Process.js b/components/sections/home3/Process.js index f36bde3..c2784b5 100644 --- a/components/sections/home3/Process.js +++ b/components/sections/home3/Process.js @@ -15,7 +15,7 @@ export default function Process() {

How it Helps You to
Keep Healthy

-
+
01 diff --git a/components/sections/onepage/About.js b/components/sections/onepage/About.js index 76dc40e..c2f78d8 100644 --- a/components/sections/onepage/About.js +++ b/components/sections/onepage/About.js @@ -9,7 +9,7 @@ export default function about() {
-
+
diff --git a/components/sections/onepage/Process.js b/components/sections/onepage/Process.js index 9a63bad..d3a748f 100644 --- a/components/sections/onepage/Process.js +++ b/components/sections/onepage/Process.js @@ -15,7 +15,7 @@ export default function Process() {

How it Helps You to
Keep Healthy

-
+
01 diff --git a/public/assets/images/BrandPartners/1.png b/public/assets/images/BrandPartners/1.png new file mode 100644 index 0000000..a193a55 Binary files /dev/null and b/public/assets/images/BrandPartners/1.png differ diff --git a/public/assets/images/BrandPartners/2.png b/public/assets/images/BrandPartners/2.png new file mode 100644 index 0000000..f61ee3f Binary files /dev/null and b/public/assets/images/BrandPartners/2.png differ diff --git a/public/assets/images/BrandPartners/3.png b/public/assets/images/BrandPartners/3.png new file mode 100644 index 0000000..93e7fa2 Binary files /dev/null and b/public/assets/images/BrandPartners/3.png differ diff --git a/public/assets/images/BrandPartners/4.png b/public/assets/images/BrandPartners/4.png new file mode 100644 index 0000000..57d980f Binary files /dev/null and b/public/assets/images/BrandPartners/4.png differ diff --git a/public/assets/images/BrandPartners/5.png b/public/assets/images/BrandPartners/5.png new file mode 100644 index 0000000..1c2e4d1 Binary files /dev/null and b/public/assets/images/BrandPartners/5.png differ diff --git a/public/assets/images/BrandPartners/6.png b/public/assets/images/BrandPartners/6.png new file mode 100644 index 0000000..ac47ffd Binary files /dev/null and b/public/assets/images/BrandPartners/6.png differ