From b006ed21074af62fd5110787f3eb4cd8c1904472 Mon Sep 17 00:00:00 2001 From: taniandjerry <126204004+taniandjerry@users.noreply.github.com> Date: Fri, 7 Nov 2025 00:09:13 -0500 Subject: [PATCH] docs: October 2025 Community All-Stars spotlight, Hacktoberfest edition (#5625) --- .../src/pages/community/data/config.json | 7 +- .../pages/community/data/october-2025.json | 46 ++++++++++++ documentation/src/pages/community/index.tsx | 75 +++++++++++++------ 3 files changed, 103 insertions(+), 25 deletions(-) create mode 100644 documentation/src/pages/community/data/october-2025.json diff --git a/documentation/src/pages/community/data/config.json b/documentation/src/pages/community/data/config.json index 78eb3571dd..211521c9a1 100644 --- a/documentation/src/pages/community/data/config.json +++ b/documentation/src/pages/community/data/config.json @@ -29,7 +29,12 @@ "id": "september-2025", "display": "September 2025", "file": "september-2025.json" + }, + { + "id": "october-2025", + "display": "October 2025", + "file": "october-2025.json" } ], - "defaultMonth": "september-2025" + "defaultMonth": "october-2025" } \ No newline at end of file diff --git a/documentation/src/pages/community/data/october-2025.json b/documentation/src/pages/community/data/october-2025.json new file mode 100644 index 0000000000..3f9b99ce62 --- /dev/null +++ b/documentation/src/pages/community/data/october-2025.json @@ -0,0 +1,46 @@ +{ + "month": "October 2025", + "communityStars": [ + { + "name": "Arya Pratap Singh", + "handle": "ARYPROGRAMMER" + }, + { + "name": "Halimah", + "handle": "Lymah123" + }, + { + "name": "Dakshata Mishra", + "handle": "the-matrixneo" + }, + { + "name": "Abhi", + "handle": "Better-Boy" + }, + { + "name": "Anudhyan Datta", + "handle": "Anudhyan" + } + ], + "teamStars": [], + "leaderboard": [ + { "handle": "ARYPROGRAMMER", "rank": 1, "medal": "🥇" }, + { "handle": "Lymah123", "rank": 2, "medal": "🥈" }, + { "handle": "the-matrixneo", "rank": 3, "medal": "🥉" }, + { "handle": "Better-Boy", "rank": 4 }, + { "handle": "Anudhyan", "rank": 5 }, + { "handle": "Shreyanshsingh23", "rank": 6 }, + { "handle": "The-Best-Codes", "rank": 7 }, + { "handle": "anthonydmays", "rank": 8 }, + { "handle": "Mohammed-Thaha", "rank": 9 }, + { "handle": "shiv669", "rank": 10 }, + { "handle": "aegntic", "rank": 11 }, + { "handle": "M-A-SAIADITHYAA", "rank": 12 }, + { "handle": "ki3ani", "rank": 13 }, + { "handle": "vietbui1999ru", "rank": 14 }, + { "handle": "Itz-Agasta", "rank": 15 }, + { "handle": "Shahzebdevv", "rank": 16 }, + { "handle": "Roshansingh9", "rank": 17 }, + { "handle": "AdemolaAri", "rank": 18 } + ] +} diff --git a/documentation/src/pages/community/index.tsx b/documentation/src/pages/community/index.tsx index c96dd60d28..e063034bab 100644 --- a/documentation/src/pages/community/index.tsx +++ b/documentation/src/pages/community/index.tsx @@ -12,6 +12,7 @@ import june2025Data from "./data/june-2025.json"; import july2025Data from "./data/july-2025.json"; import august2025Data from "./data/august-2025.json"; import september2025Data from "./data/september-2025.json"; +import october2025Data from "./data/october-2025.json"; import communityContentData from "./data/community-content.json"; // Create a data map for easy access @@ -22,6 +23,7 @@ const communityDataMap = { "july-2025": july2025Data, "august-2025": august2025Data, "september-2025": september2025Data, + "october-2025": october2025Data, }; function UpcomingEventsSection() { @@ -98,19 +100,23 @@ function CommunityAllStarsSection() { ))} - {/* Team Stars */} -
- ⭐ Team Stars -

- Top 5 Contributors from all Block teams! -

-
- -
- {currentData.teamStars.map((contributor, index) => ( - - ))} -
+ {/* Team Stars - only show if there are team stars */} + {currentData.teamStars.length > 0 && ( + <> +
+ ⭐ Team Stars +

+ Top 5 Contributors from all Block teams! +

+
+ +
+ {currentData.teamStars.map((contributor, index) => ( + + ))} +
+ + )} {/* Monthly Leaderboard */}
@@ -216,6 +222,7 @@ function CommunityAllStarsSection() { function CommunityContentSpotlightSection() { const [contentFilter, setContentFilter] = React.useState('all'); + const [showScrollIndicator, setShowScrollIndicator] = React.useState(true); const filteredSubmissions = React.useMemo(() => { if (contentFilter === 'all') return communityContentData.submissions; @@ -227,6 +234,12 @@ function CommunityContentSpotlightSection() { return communityContentData.submissions.filter(content => content.type === contentFilter); }, [contentFilter]); + const handleScroll = (e: React.UIEvent) => { + const { scrollTop, scrollHeight, clientHeight } = (e.target as HTMLDivElement); + const isAtBottom = scrollTop + clientHeight >= scrollHeight - 10; // 10px threshold + setShowScrollIndicator(!isAtBottom); + }; + return (
@@ -258,19 +271,33 @@ function CommunityContentSpotlightSection() {
{/* Content Grid */} -
-
- {/* Persistent Hacktoberfest CTA Card */} - +
+
+
+ {/* Persistent Hacktoberfest CTA Card */} + + + {filteredSubmissions.map((content) => ( + + ))} +
- {filteredSubmissions.map((content, index) => ( - - ))} + {filteredSubmissions.length === 0 && ( +
+

No content found for this filter.

+
+ )}
- {filteredSubmissions.length === 0 && ( -
-

No content found for this filter.

+ {/* Simple scroll indicator - only show when not at bottom */} + {showScrollIndicator && ( +
+ + Scroll for more ↓ +
)}
@@ -434,8 +461,8 @@ export default function Community(): ReactNode { description="Join the goose community - connect with developers, contribute to the project, and help shape the future of AI-powered development tools." >
- +