From fa8784601cabbaefd5dc2ac26d07b282fb682014 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 2 Feb 2026 22:20:26 +0530 Subject: [PATCH 01/12] fix: resolve duplicate key warning in Twitter testimonials Signed-off-by: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Signed-off-by: frontend --- components/testimonials.tsx | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/components/testimonials.tsx b/components/testimonials.tsx index b57e19bd..4d4204ab 100644 --- a/components/testimonials.tsx +++ b/components/testimonials.tsx @@ -1,6 +1,7 @@ import React from "react"; import { Marquee } from "./Marquee"; import Tweets from "../services/Tweets"; + const firstRow = Tweets.slice(0, Tweets.length / 2); const secondRow = Tweets.slice(Tweets.length / 2); @@ -17,11 +18,15 @@ const ReviewCard = ({ id: string; content: string; }) => { - const fallbackAvatar = `https://ui-avatars.com/api/?name=${encodeURIComponent(name)}&background=random&size=64`; + const fallbackAvatar = `https://ui-avatars.com/api/?name=${encodeURIComponent( + name + )}&background=random&size=64`; + const localPlaceholder = "/blog/avatars/avatar-placeholder.svg"; + return ( -
+
{ const img = e.target as HTMLImageElement; if (img.src !== localPlaceholder) { - img.onerror = () => { img.src = localPlaceholder; }; + img.onerror = () => { + img.src = localPlaceholder; + }; img.src = fallbackAvatar; } }} /> +
{name}
-

{id}

+

{id}

+
{content}
@@ -50,26 +59,26 @@ const ReviewCard = ({ const TwitterTestimonials = () => { return ( -
+

What our community thinks

-
+
- {firstRow.map((tweet) => ( - + {firstRow.map((tweet, index) => ( + ))} + - {secondRow.map((tweet) => ( - + {secondRow.map((tweet, index) => ( + ))} -
); }; -export default TwitterTestimonials; +export default TwitterTestimonials; \ No newline at end of file From ea5797c80ab1d80a50a47bdd76242c735326fd96 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Fri, 6 Mar 2026 20:43:02 +0530 Subject: [PATCH 02/12] update Signed-off-by: frontend Signed-off-by: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> --- components/testimonials.tsx | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/components/testimonials.tsx b/components/testimonials.tsx index 4d4204ab..c8b0c8c4 100644 --- a/components/testimonials.tsx +++ b/components/testimonials.tsx @@ -18,11 +18,11 @@ const ReviewCard = ({ id: string; content: string; }) => { - const fallbackAvatar = `https://ui-avatars.com/api/?name=${encodeURIComponent( - name - )}&background=random&size=64`; - - const localPlaceholder = "/blog/avatars/avatar-placeholder.svg"; + const { basePath } = useRouter(); + const isExternal = /^https?:\/\//i.test(avatar); + const proxiedAvatar = isExternal + ? `${basePath}/api/proxy-image?url=${encodeURIComponent(avatar)}` + : avatar; return ( @@ -32,19 +32,9 @@ const ReviewCard = ({ className="rounded-full" width="32" height="32" - alt={`${name}'s avatar`} - src={avatar} - onError={(e) => { - const img = e.target as HTMLImageElement; - if (img.src !== localPlaceholder) { - img.onerror = () => { - img.src = localPlaceholder; - }; - img.src = fallbackAvatar; - } - }} + alt={`${name}'s profile picture`} + src={proxiedAvatar} /> -
{name}

{id}

@@ -59,23 +49,26 @@ const ReviewCard = ({ const TwitterTestimonials = () => { return ( -
+

What our community thinks

-
- +
+ {firstRow.map((tweet, index) => ( ))} - + {secondRow.map((tweet, index) => ( ))} + +
+
); From df6b3a0cba934b037e683b71dfe43a26e93d6a81 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Fri, 6 Mar 2026 20:50:15 +0530 Subject: [PATCH 03/12] fix: improve unique keys in Twitter testimonials Signed-off-by: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> --- components/testimonials.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/components/testimonials.tsx b/components/testimonials.tsx index c8b0c8c4..f68f1504 100644 --- a/components/testimonials.tsx +++ b/components/testimonials.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Marquee } from "./Marquee"; import Tweets from "../services/Tweets"; - +import { useRouter } from "next/router"; const firstRow = Tweets.slice(0, Tweets.length / 2); const secondRow = Tweets.slice(Tweets.length / 2); @@ -54,16 +54,17 @@ const TwitterTestimonials = () => { What our community thinks -
- - {firstRow.map((tweet, index) => ( - +
+ + + {firstRow.map((tweet) => ( + ))} - - {secondRow.map((tweet, index) => ( - + + {secondRow.map((tweet) => ( + ))} From 907dfb01a8620046054f953f9b55e69dfeeaf66c Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Sun, 15 Mar 2026 18:37:31 +0530 Subject: [PATCH 04/12] Update --- lint_output.txt | Bin 0 -> 3732 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lint_output.txt diff --git a/lint_output.txt b/lint_output.txt new file mode 100644 index 0000000000000000000000000000000000000000..5b2efa0cb15d718ea31da9207a44f2609a0917ea GIT binary patch literal 3732 zcmd6qYim}6(W-g$R+&hKBh<5oP2A`YV;!Z z(4WvR=}psnpI(K8^FNaGqj(rk;t{%w_!KSH57X{lMvHjQ`WD*Vdm9a-_{Q52(w*3f z1D?)ow#T}PxfX4JhKffoy7c#1HKq;I+YpJ9q`iTsBYG|VKQQm^?dZiv-X~~jU}?cV zefICAu_Ebgv;HXQvafCWSP~`PZpQr4m z?sDc)l@MG9!S$tLcr|`Gjz*{vU$8AlVuCM+*eB{D)`+`lg>ew4K7Jg=JAS*Ydc)`e zo<2t^M{hTIJ3U>IiT%6Qt55L%!Guk6;De<`>Smd65qD4IdE~D~a`m}zGafG)#hc~A z^L*c#vEA(5Alsbh?%5Srqx^sH_43SRC7{P8JQ|Uaz2)Y2zBkr#v(nADZgsGi^2&tU z-JEH*>0sv`701rC?vK@TeFF@ad+*;2Mel5HTW|brnm2R4nO+g|F)`1#lDG49ZsgS? zdO4?MiJb1I8qbQxYUXS;dp|{Fo!^V=Sy`7cD&liIO}e_&+@D!*?l?l@KJT)zNW$ts$8_^4Zh{- ztf1n^b{(+N>RyZMFM%df^-68Gy4RMY^yZ8><;waHCRk;S)0p}6C%fxatw9V6s&0L- zhId>UEo-AwOJ$e*QmVus{btDDH%6(#7VB9@hRl^{A23of=Ghp~%rP?J#i`D@_RFQ@ zq)jZWmeo?ytd-4JHTGhoC128>vc;H*^A;ZNBzbL^fP_|6)ZMZufAz?(`fIJ2vFP70 h$#sLVFR@qc(}aD-$KU$v@=l6pZF6Q}xnQ4O{{h2glXw6C literal 0 HcmV?d00001 From a35f01099239f3f1d5828f6d3503e79180e82739 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Sun, 15 Mar 2026 18:39:52 +0530 Subject: [PATCH 05/12] update --- components/testimonials.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/testimonials.tsx b/components/testimonials.tsx index f68f1504..59621d4b 100644 --- a/components/testimonials.tsx +++ b/components/testimonials.tsx @@ -4,7 +4,7 @@ import Tweets from "../services/Tweets"; import { useRouter } from "next/router"; const firstRow = Tweets.slice(0, Tweets.length / 2); const secondRow = Tweets.slice(Tweets.length / 2); - +import Image from "next/image"; const ReviewCard = ({ avatar, name, @@ -28,10 +28,10 @@ const ReviewCard = ({
- {`${name}'s From d2a27e65a17276a31cae47d619a61ec3ccc85446 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 6 Apr 2026 18:35:24 +0530 Subject: [PATCH 06/12] Fix avatar proxy logic and restore fallback handling --- lint_utf8.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lint_utf8.txt diff --git a/lint_utf8.txt b/lint_utf8.txt new file mode 100644 index 00000000..da5aa44b --- /dev/null +++ b/lint_utf8.txt @@ -0,0 +1,22 @@ + +> lint +> next lint + + +./components/more-stories.tsx +65:6 Warning: React Hook useEffect has a missing dependency: 'localSearchTerm'. Either include it or remove the dependency array. react-hooks/exhaustive-deps +151:6 Warning: React Hook useEffect has missing dependencies: 'buffer.length', 'initialPageInfo?.hasNextPage', and 'loadMoreInBackground'. Either include them or remove the dependency array. react-hooks/exhaustive-deps + +./components/navbar/FloatingNavbarClient.tsx +202:6 Warning: React Hook useEffect has missing dependencies: 'communityState.length', 'router.basePath', and 'techState.length'. Either include them or remove the dependency array. react-hooks/exhaustive-deps +764:6 Warning: React Hook useEffect has a missing dependency: 'router?.basePath'. Either include it or remove the dependency array. react-hooks/exhaustive-deps +784:6 Warning: React Hook useEffect has missing dependencies: 'communityLatest' and 'techLatest'. Either include them or remove the dependency array. react-hooks/exhaustive-deps + +./components/post-body.tsx +152:6 Warning: React Hook useEffect has a missing dependency: 'isUserEnteredURL'. Either include it or remove the dependency array. react-hooks/exhaustive-deps +221:6 Warning: React Hook useEffect has a missing dependency: 'handleHeadingCopyClick'. Either include it or remove the dependency array. react-hooks/exhaustive-deps + +./components/testimonials.tsx +31:11 Warning: Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules From 5ce394212b1d07d0e67221d3e983c361eb3a67e9 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 6 Apr 2026 18:36:19 +0530 Subject: [PATCH 07/12] Fix avatar proxy logic and restore fallback handling --- lint_output.txt | Bin 3732 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lint_output.txt diff --git a/lint_output.txt b/lint_output.txt deleted file mode 100644 index 5b2efa0cb15d718ea31da9207a44f2609a0917ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3732 zcmd6qYim}6(W-g$R+&hKBh<5oP2A`YV;!Z z(4WvR=}psnpI(K8^FNaGqj(rk;t{%w_!KSH57X{lMvHjQ`WD*Vdm9a-_{Q52(w*3f z1D?)ow#T}PxfX4JhKffoy7c#1HKq;I+YpJ9q`iTsBYG|VKQQm^?dZiv-X~~jU}?cV zefICAu_Ebgv;HXQvafCWSP~`PZpQr4m z?sDc)l@MG9!S$tLcr|`Gjz*{vU$8AlVuCM+*eB{D)`+`lg>ew4K7Jg=JAS*Ydc)`e zo<2t^M{hTIJ3U>IiT%6Qt55L%!Guk6;De<`>Smd65qD4IdE~D~a`m}zGafG)#hc~A z^L*c#vEA(5Alsbh?%5Srqx^sH_43SRC7{P8JQ|Uaz2)Y2zBkr#v(nADZgsGi^2&tU z-JEH*>0sv`701rC?vK@TeFF@ad+*;2Mel5HTW|brnm2R4nO+g|F)`1#lDG49ZsgS? zdO4?MiJb1I8qbQxYUXS;dp|{Fo!^V=Sy`7cD&liIO}e_&+@D!*?l?l@KJT)zNW$ts$8_^4Zh{- ztf1n^b{(+N>RyZMFM%df^-68Gy4RMY^yZ8><;waHCRk;S)0p}6C%fxatw9V6s&0L- zhId>UEo-AwOJ$e*QmVus{btDDH%6(#7VB9@hRl^{A23of=Ghp~%rP?J#i`D@_RFQ@ zq)jZWmeo?ytd-4JHTGhoC128>vc;H*^A;ZNBzbL^fP_|6)ZMZufAz?(`fIJ2vFP70 h$#sLVFR@qc(}aD-$KU$v@=l6pZF6Q}xnQ4O{{h2glXw6C From e49ac2e5c84fc26b7811a2b9f58f232c6b3bacc3 Mon Sep 17 00:00:00 2001 From: Sadhana Shree <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 6 Apr 2026 18:46:27 +0530 Subject: [PATCH 08/12] Update components/testimonials.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Sadhana Shree <180205437+SadhanaShree25@users.noreply.github.com> --- components/testimonials.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/testimonials.tsx b/components/testimonials.tsx index 59621d4b..baab4ef7 100644 --- a/components/testimonials.tsx +++ b/components/testimonials.tsx @@ -19,7 +19,7 @@ const ReviewCard = ({ content: string; }) => { const { basePath } = useRouter(); - const isExternal = /^https?:\/\//i.test(avatar); + const isExternal = /^(?:https?:)?\/\//i.test(avatar); const proxiedAvatar = isExternal ? `${basePath}/api/proxy-image?url=${encodeURIComponent(avatar)}` : avatar; From 546579908be35d2e97b30ad3531837de07905667 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:32:13 +0530 Subject: [PATCH 09/12] fix: update lighthouse workflow trigger --- .github/workflows/lighthouse_comment.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lighthouse_comment.yml b/.github/workflows/lighthouse_comment.yml index 403ac4e7..d920fedc 100644 --- a/.github/workflows/lighthouse_comment.yml +++ b/.github/workflows/lighthouse_comment.yml @@ -1,10 +1,9 @@ -name: Lighthouse – Comment +name: Lighthouse CI on: - workflow_run: - workflows: ["Lighthouse – Run"] - types: - - completed + pull_request: + branches: + - main permissions: issues: write @@ -13,7 +12,9 @@ permissions: jobs: comment: runs-on: ubuntu-latest - + permissions: + contents: read + pull-requests: write steps: - name: Download Lighthouse comment artifact uses: actions/download-artifact@v4 From db0682db14e91f85d24ae69bf12dfaace3b962b2 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:50:55 +0530 Subject: [PATCH 10/12] fix: correct YAML indentation for lighthouse workflow --- .github/workflows/lighthouse_comment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lighthouse_comment.yml b/.github/workflows/lighthouse_comment.yml index d920fedc..6f202774 100644 --- a/.github/workflows/lighthouse_comment.yml +++ b/.github/workflows/lighthouse_comment.yml @@ -7,7 +7,7 @@ on: permissions: issues: write - pull-requests: write + jobs: comment: From f5055798703df8bd2a86ca8a7cb490d61f6c9144 Mon Sep 17 00:00:00 2001 From: SadhanaShree25 <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:58:53 +0530 Subject: [PATCH 11/12] fix: correct YAML indentation for on block --- .github/workflows/lighthouse_comment.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lighthouse_comment.yml b/.github/workflows/lighthouse_comment.yml index 6f202774..583fbe78 100644 --- a/.github/workflows/lighthouse_comment.yml +++ b/.github/workflows/lighthouse_comment.yml @@ -1,13 +1,12 @@ name: Lighthouse CI on: - pull_request: - branches: - - main + pull_request: + branches: + - main permissions: issues: write - jobs: comment: @@ -30,4 +29,4 @@ jobs: with: issue-number: ${{ github.event.pull_request.number }} body-path: lighthouse-comment.md - edit-mode: replace + edit-mode: replace \ No newline at end of file From d45d7e8c9cb9070bdeb7bd429274757151aa44e5 Mon Sep 17 00:00:00 2001 From: Sadhana Shree <180205437+SadhanaShree25@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:49:50 +0530 Subject: [PATCH 12/12] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Sadhana Shree <180205437+SadhanaShree25@users.noreply.github.com> --- lint_utf8.txt | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/lint_utf8.txt b/lint_utf8.txt index da5aa44b..e69de29b 100644 --- a/lint_utf8.txt +++ b/lint_utf8.txt @@ -1,22 +0,0 @@ - -> lint -> next lint - - -./components/more-stories.tsx -65:6 Warning: React Hook useEffect has a missing dependency: 'localSearchTerm'. Either include it or remove the dependency array. react-hooks/exhaustive-deps -151:6 Warning: React Hook useEffect has missing dependencies: 'buffer.length', 'initialPageInfo?.hasNextPage', and 'loadMoreInBackground'. Either include them or remove the dependency array. react-hooks/exhaustive-deps - -./components/navbar/FloatingNavbarClient.tsx -202:6 Warning: React Hook useEffect has missing dependencies: 'communityState.length', 'router.basePath', and 'techState.length'. Either include them or remove the dependency array. react-hooks/exhaustive-deps -764:6 Warning: React Hook useEffect has a missing dependency: 'router?.basePath'. Either include it or remove the dependency array. react-hooks/exhaustive-deps -784:6 Warning: React Hook useEffect has missing dependencies: 'communityLatest' and 'techLatest'. Either include them or remove the dependency array. react-hooks/exhaustive-deps - -./components/post-body.tsx -152:6 Warning: React Hook useEffect has a missing dependency: 'isUserEnteredURL'. Either include it or remove the dependency array. react-hooks/exhaustive-deps -221:6 Warning: React Hook useEffect has a missing dependency: 'handleHeadingCopyClick'. Either include it or remove the dependency array. react-hooks/exhaustive-deps - -./components/testimonials.tsx -31:11 Warning: Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element - -info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules