Repository navigation
fix: site optimizations - #40
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the site from the legacy Pages Router to the Next.js App Router, while introducing a new shared theme wrapper and several UI/behavior optimizations (including GSAP-based background parallax and TopBar scroll handling).
Changes:
- Migrate routes from
pages/*toapp/*and move most page bodies into new*Contentcomponents undersrc/components/*. - Introduce
AppThemeWrapperto centralize shared layout/background rendering across pages. - Add/adjust client-only behavior for animations, search modal, filtering, and GA integration.
Reviewed changes
Copilot reviewed 127 out of 132 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Enables Next TS plugin, strict null checks, and includes .next generated types. |
| src/lib/analytics.ts | Removes legacy GA helper utilities used by the Pages Router _app. |
| src/data/inctf/promote.json | Updates promote header copy and JSON formatting. |
| src/data/inctf/about.json | Updates header copy (“Junior” -> removed). |
| src/components/writeups/WriteupsListingContent.tsx | New client listing UI for writeups (search + category filter). |
| src/components/writeups/WriteupContent.tsx | New client writeup detail renderer (markdown + styling). |
| src/components/trainings/TrainingsContent.tsx | New client page content wrapper for trainings schedule. |
| src/components/talent/diversity/acessibility.tsx | Updates chart title copy. |
| src/components/talent-incubation/TalentIncubationContent.tsx | New client content for talent incubation page. |
| src/components/stats/StatsContent.tsx | New client stats page content with year tabs + leaderboard. |
| src/components/start/StartContent.tsx | New client “Get Started” landing composition. |
| src/components/ssi/SSIContent.tsx | New client SSI landing composition. |
| src/components/sponsors/SponsorsContent.tsx | New client sponsors page content. |
| src/components/shared/TopBar/search.tsx | Adjusts search modal formatting and placeholder copy. |
| src/components/shared/TopBar/item.tsx | Switches navigation anchors to Next <Link>. |
| src/components/shared/TopBar/index.tsx | Marks TopBar client-side; optimizes scroll handler and updates logo rendering. |
| src/components/shared/StarfieldBackground.tsx | Moves parallax to GSAP/ScrollTrigger + useGSAP integration. |
| src/components/shared/SocialMediaLinks.tsx | Marks client-side and makes social links access safer with optional chaining. |
| src/components/shared/Logo.tsx | Marks client-side and adds fallback logo behavior when context is missing. |
| src/components/shared/Footer.tsx | Marks client-side and updates footer logo alt text. |
| src/components/shared/DecodedText.tsx | Marks client-side. |
| src/components/shared/Breadcrumb.tsx | Fixes key usage (removes random shortid keys). |
| src/components/shared/AppThemeWrapper.tsx | New wrapper that provides config context + shared background/topbar framing. |
| src/components/rules/RulesContent.tsx | New rules page content for App Router route. |
| src/components/resources/YoutubeVideos.tsx | Improves TS typing for tag state and cleans up formatting. |
| src/components/resources/ResourcesContent.tsx | New resources page content for App Router route. |
| src/components/promote/PromoteClientWrapper.tsx | Adds client wrapper for Promote page rendering. |
| src/components/organizers/OrganizersContent.tsx | New organizers page content for App Router route. |
| src/components/mission-outreach/MissionOutreachPageContent.tsx | New App Router page content wrapper for mission outreach. |
| src/components/mission-outreach/HeroSection.tsx | Tweaks responsive title sizing. |
| src/components/mission-control/MissionControlPageContent.tsx | Reworks mission-control page to use AppThemeWrapper + GSAP scroll animation. |
| src/components/mission-brief/MissionBriefPageContent.tsx | New App Router page content wrapper for mission brief. |
| src/components/mission-brief/MissionBriefContent.tsx | Responsive padding + title sizing tweaks. |
| src/components/landing/search/SearchBar.tsx | Migrates router usage to next/navigation. |
| src/components/landing/StatsCounter.tsx | Improves TS typing for stats state. |
| src/components/landing/PastSponsorsMarquee.tsx | Marks client-side. |
| src/components/landing/PastSpeakers.tsx | Marks client-side; adjusts responsive card sizing + scrolling behavior. |
| src/components/landing/MissionCredentials.tsx | Updates image alt text. |
| src/components/landing/MissionBrief.tsx | Marks client-side. |
| src/components/landing/Header.tsx | Marks client-side; tweaks layout + adds hydration warning suppression on wrapper. |
| src/components/landing/EarlyBirdPopup.tsx | Replaces Framer Motion presence animation with GSAP + portal rendering. |
| src/components/landing/CrewRewards.tsx | Marks client-side. |
| src/components/landing/CrewEligibility.tsx | Marks client-side. |
| src/components/faq/filterUtils.ts | Adds TS annotations and formatting cleanup. |
| src/components/faq/FAQContent.tsx | New App Router FAQ content (uses useSearchParams + Suspense). |
| src/components/comingsoon/ComingSoonContent.tsx | New “Coming Soon” content under App Router. |
| src/components/championship/ChampionshipContent.tsx | New championship page content under App Router. |
| src/components/branding/BrandingContent.tsx | New branding page content under App Router. |
| src/components/blog/BlogPostContent.tsx | New blog post renderer content under App Router. |
| src/components/blog/BlogListingPageContent.tsx | New blog listing renderer content under App Router. |
| src/components/ambassador/AmbassadorContent.tsx | New ambassador page content under App Router. |
| src/components/advisory-board/AdvisoryBoardContent.tsx | New advisory board page content under App Router. |
| src/components/about/stats/index.tsx | Updates heading copy (“InCTF Jr 21” -> “Amrita InCTF”). |
| src/components/about/AboutContent.tsx | New about page content under App Router. |
| src/components/TagSelector.tsx | Tightens TS typing and formatting. |
| src/components/SiteView/index.tsx | Marks client-side. |
| src/components/SiteView/head.tsx | Makes meta optional and fixes optional chaining in title/image access. |
| src/components/SiteView/context.ts | Marks client-side. |
| src/components/PromotePage.tsx | Stabilizes list keys for promotional video items. |
| src/components/ProfileCard.tsx | Adds explicit prop typing and formatting. |
| src/components/PageHeader.tsx | Adds explicit prop typing and safer defaults for breadcrumb/description. |
| src/components/HallOfFame/YearlyLeaderboard.tsx | Improves state typing, stabilizes keys, and updates copy. |
| src/components/HallOfFame/SchoolLeaderboard.tsx | Removes unstable keys and updates copy. |
| package.json | Adds GSAP dependencies and updates package set for App Router implementation. |
| next.config.js | Updates Next config (removes standalone output; adds component caching flag). |
| next-env.d.ts | Updates doc link comment for App Router TS docs. |
| app/writeups/page.tsx | New App Router writeups listing route (server component builds writeups list). |
| app/writeup/[id]/page.tsx | New App Router writeup detail route + static params + metadata generation. |
| app/trainings/page.tsx | New trainings route metadata + page composition. |
| app/telegram/page.tsx | Migrates Telegram redirect to App Router redirect(). |
| app/talent-incubation/page.tsx | New talent-incubation route metadata + composition. |
| app/stats/page.tsx | New stats route metadata + composition. |
| app/start/page.tsx | New start route metadata + composition. |
| app/ssi/page.tsx | New SSI route metadata + composition. |
| app/sponsors/page.tsx | New sponsors route metadata + composition. |
| app/rules/page.tsx | New rules route metadata + composition. |
| app/resources/page.tsx | New resources route metadata + composition. |
| app/register/page.tsx | Migrates register redirect to App Router redirect(). |
| app/publicize/page.tsx | New publicize route metadata + promote wrapper. |
| app/promote/page.tsx | New promote route metadata + promote wrapper. |
| app/privacy/page.tsx | Migrates privacy redirect to App Router redirect(). |
| app/posts/[slug]/page.tsx | New blog post route + static params + metadata generation. |
| app/page.tsx | New App Router landing page composition (server component). |
| app/organizers/page.tsx | New organizers route metadata + composition. |
| app/not-found.tsx | New App Router not-found route page. |
| app/mission-outreach/page.tsx | New mission-outreach route metadata + composition. |
| app/mission-control/page.tsx | New mission-control route metadata + composition. |
| app/mission-brief/page.tsx | New mission-brief route metadata + composition. |
| app/layout.tsx | New App Router root layout (global styles, GA integration, SDK script). |
| app/faq/page.tsx | New FAQ route metadata + composition. |
| app/discord/page.tsx | Migrates Discord redirect to App Router redirect(). |
| app/comingsoon/page.tsx | New comingsoon route metadata + composition. |
| app/championship/page.tsx | New championship route metadata + composition. |
| app/branding/page.tsx | New branding route metadata + composition. |
| app/blog/page.tsx | New blog listing route (server component loads posts list). |
| app/ambassador/page.tsx | New ambassador route metadata + composition. |
| app/advisory-board/page.tsx | New advisory-board route metadata + composition. |
| app/about/page.tsx | New about route metadata + composition. |
| pages/writeups.tsx | Removes legacy Pages Router writeups listing page (migrated to App Router). |
| pages/writeup/[id].tsx | Removes legacy Pages Router writeup detail page (migrated to App Router). |
| pages/trainings.tsx | Removes legacy Pages Router trainings page (migrated to App Router). |
| pages/telegram.tsx | Removes legacy Pages Router telegram redirect (migrated to App Router). |
| pages/talent-incubation.tsx | Removes legacy Pages Router talent-incubation page (migrated to App Router). |
| pages/stats.tsx | Removes legacy Pages Router stats page (migrated to App Router). |
| pages/start.tsx | Removes legacy Pages Router start page (migrated to App Router). |
| pages/ssi.tsx | Removes legacy Pages Router SSI page (migrated to App Router). |
| pages/sponsors.tsx | Removes legacy Pages Router sponsors page (migrated to App Router). |
| pages/rules.tsx | Removes legacy Pages Router rules page (migrated to App Router). |
| pages/resources.tsx | Removes legacy Pages Router resources page (migrated to App Router). |
| pages/register.tsx | Removes legacy Pages Router register redirect (migrated to App Router). |
| pages/publicize.tsx | Removes legacy Pages Router publicize page (migrated to App Router). |
| pages/promote.tsx | Removes legacy Pages Router promote page (migrated to App Router). |
| pages/privacy.tsx | Removes legacy Pages Router privacy redirect (migrated to App Router). |
| pages/posts/[slug].tsx | Removes legacy Pages Router blog post page (migrated to App Router). |
| pages/organizers.tsx | Removes legacy Pages Router organizers page (migrated to App Router). |
| pages/mission-outreach.tsx | Removes legacy Pages Router mission-outreach page (migrated to App Router). |
| pages/mission-brief.tsx | Removes legacy Pages Router mission-brief page (migrated to App Router). |
| pages/index.tsx | Removes legacy Pages Router landing page (migrated to App Router). |
| pages/faq.tsx | Removes legacy Pages Router FAQ page (migrated to App Router). |
| pages/discord.tsx | Removes legacy Pages Router discord redirect (migrated to App Router). |
| pages/comingsoon.tsx | Removes legacy Pages Router comingsoon page (migrated to App Router). |
| pages/championship.tsx | Removes legacy Pages Router championship page (migrated to App Router). |
| pages/branding.tsx | Removes legacy Pages Router branding page (migrated to App Router). |
| pages/blog.tsx | Removes legacy Pages Router blog listing page (migrated to App Router). |
| pages/ambassador.tsx | Removes legacy Pages Router ambassador page (migrated to App Router). |
| pages/advisory-board.tsx | Removes legacy Pages Router advisory-board page (migrated to App Router). |
| pages/about.tsx | Removes legacy Pages Router about page (migrated to App Router). |
| pages/_document.tsx | Removes legacy Pages Router custom document. |
| pages/_app.tsx | Removes legacy Pages Router custom app and GA wiring. |
| pages/404.tsx | Removes legacy Pages Router 404 page (replaced by App Router not-found.tsx). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.