diff --git a/src/Pages/About/About.js b/src/Pages/About/About.js
index 756eceed2..5b8c1b67b 100644
--- a/src/Pages/About/About.js
+++ b/src/Pages/About/About.js
@@ -1,6 +1,35 @@
-import React from 'react';
+import React, { useEffect, useState } from 'react';
+
+function useScrollSpy() {
+ const [activeId, setActiveId] = useState(null);
+
+ useEffect(() => {
+ const sections = document.querySelectorAll("[data-spy]");
+
+ const observer = new IntersectionObserver(
+ (entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting) {
+ setActiveId(entry.target.id);
+ }
+ });
+ },
+ {
+ rootMargin: "-100px 0px -80% 0px", // adjust to activate earlier/later
+ threshold: 0,
+ }
+ );
+
+ sections.forEach((section) => observer.observe(section));
+ return () => observer.disconnect();
+ }, []);
+
+ return activeId;
+}
export default function AboutPage() {
+ const activeId = useScrollSpy();
+
const scrollToSection = (id) => {
document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' });
};
@@ -19,7 +48,7 @@ export default function AboutPage() {
-
+
Introduction
@@ -37,7 +66,7 @@ export default function AboutPage() {
-
+
Location & Hours
@@ -66,7 +95,7 @@ export default function AboutPage() {
-
+
Becoming an SCE Member
@@ -102,7 +131,7 @@ export default function AboutPage() {
-
+
Development Team
@@ -127,7 +156,7 @@ export default function AboutPage() {
-
+
Summer Internship Program
@@ -153,7 +182,7 @@ export default function AboutPage() {
-
+
Join Our Community
@@ -195,37 +224,55 @@ export default function AboutPage() {