From c9ab7a37b9b666499eb999f8b871507444a40a1a Mon Sep 17 00:00:00 2001 From: Timothy Pidashev Date: Mon, 27 Jan 2025 11:29:24 -0800 Subject: [PATCH] Update rss feed path --- src/package.json | 1 + src/pnpm-lock.yaml | 28 ++++++++++++++++++++++++++++ src/src/components/about/intro.tsx | 14 +++++++++----- src/src/pages/{rss.xml.ts => rss.ts} | 0 4 files changed, 38 insertions(+), 5 deletions(-) rename src/src/pages/{rss.xml.ts => rss.ts} (100%) diff --git a/src/package.json b/src/package.json index dff4606..9d16e8b 100644 --- a/src/package.json +++ b/src/package.json @@ -20,6 +20,7 @@ "@astrojs/mdx": "^4.0.7", "@astrojs/rss": "^4.0.11", "@astrojs/sitemap": "^3.2.1", + "@react-hook/intersection-observer": "^3.1.2", "lucide-react": "^0.468.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 29483a4..12976b4 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@astrojs/sitemap': specifier: ^3.2.1 version: 3.2.1 + '@react-hook/intersection-observer': + specifier: ^3.1.2 + version: 3.1.2(react@18.3.1) lucide-react: specifier: ^0.468.0 version: 0.468.0(react@18.3.1) @@ -502,6 +505,16 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@react-hook/intersection-observer@3.1.2': + resolution: {integrity: sha512-mWU3BMkmmzyYMSuhO9wu3eJVP21N8TcgYm9bZnTrMwuM818bEk+0NRM3hP+c/TqA9Ln5C7qE53p1H0QMtzYdvQ==} + peerDependencies: + react: '>=16.8' + + '@react-hook/passive-layout-effect@1.2.1': + resolution: {integrity: sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg==} + peerDependencies: + react: '>=16.8' + '@rollup/pluginutils@5.1.4': resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} @@ -1183,6 +1196,9 @@ packages: inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + intersection-observer@0.10.0: + resolution: {integrity: sha512-fn4bQ0Xq8FTej09YC/jqKZwtijpvARlRp6wxL5WTA6yPe2YWSJ5RJh7Nm79rK2qB0wr6iDQzH60XGq5V/7u8YQ==} + iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} @@ -2722,6 +2738,16 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@react-hook/intersection-observer@3.1.2(react@18.3.1)': + dependencies: + '@react-hook/passive-layout-effect': 1.2.1(react@18.3.1) + intersection-observer: 0.10.0 + react: 18.3.1 + + '@react-hook/passive-layout-effect@1.2.1(react@18.3.1)': + dependencies: + react: 18.3.1 + '@rollup/pluginutils@5.1.4(rollup@4.31.0)': dependencies: '@types/estree': 1.0.6 @@ -3563,6 +3589,8 @@ snapshots: inline-style-parser@0.2.4: {} + intersection-observer@0.10.0: {} + iron-webcrypto@1.2.1: {} is-alphabetical@2.0.1: {} diff --git a/src/src/components/about/intro.tsx b/src/src/components/about/intro.tsx index 9373dfe..7a088eb 100644 --- a/src/src/components/about/intro.tsx +++ b/src/src/components/about/intro.tsx @@ -3,12 +3,16 @@ import { ChevronDownIcon } from "@/components/icons"; export default function Intro() { const scrollToNext = () => { - window.scrollTo({ - top: window.innerHeight, - behavior: "smooth" - }); + const nextSection = document.querySelector("section")?.nextElementSibling; + if (nextSection) { + const offset = nextSection.offsetTop - (window.innerHeight - nextSection.offsetHeight) / 2; // Center the section + window.scrollTo({ + top: offset, + behavior: "smooth" + }); + } }; - + return (
diff --git a/src/src/pages/rss.xml.ts b/src/src/pages/rss.ts similarity index 100% rename from src/src/pages/rss.xml.ts rename to src/src/pages/rss.ts