From 43852f4379c9474ca37781fa5042e7e21fbfcbdb Mon Sep 17 00:00:00 2001 From: Hussain Jamal Date: Fri, 9 Jan 2026 00:33:36 +0500 Subject: [PATCH 1/4] refactor: remove redundant type assertions in frontend --- frontend/src/app/members/[memberKey]/page.tsx | 4 ++-- frontend/src/components/CardDetailsPage.tsx | 2 +- frontend/src/components/ChapterMap.tsx | 2 +- frontend/src/components/MultiSearch.tsx | 2 +- frontend/src/components/SingleModuleCard.tsx | 2 +- frontend/src/components/UserMenu.tsx | 3 +-- frontend/src/hooks/useSearchPage.ts | 2 +- frontend/src/utils/env.server.ts | 4 ++-- 8 files changed, 10 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/members/[memberKey]/page.tsx b/frontend/src/app/members/[memberKey]/page.tsx index bc0b61be66..a93e91fd42 100644 --- a/frontend/src/app/members/[memberKey]/page.tsx +++ b/frontend/src/app/members/[memberKey]/page.tsx @@ -57,13 +57,13 @@ const UserDetailsPage: React.FC = () => { useEffect(() => { const fetchData = async () => { - const result = await fetchHeatmapData(memberKey as string) + const result = await fetchHeatmapData(memberKey) if (!result) { setIsPrivateContributor(true) return } if (result?.contributions) { - setUsername(memberKey as string) + setUsername(memberKey) setData(result as HeatmapData) } } diff --git a/frontend/src/components/CardDetailsPage.tsx b/frontend/src/components/CardDetailsPage.tsx index 9d71515b9b..14c95dfed4 100644 --- a/frontend/src/components/CardDetailsPage.tsx +++ b/frontend/src/components/CardDetailsPage.tsx @@ -127,7 +127,7 @@ const DetailsCard = ({ {type === 'module' && accessLevel === 'admin' && admins?.some( - (admin) => admin.login === ((data as ExtendedSession)?.user?.login as string) + (admin) => admin.login === ((data as ExtendedSession)?.user?.login) ) && } {!isActive && } {isArchived && type === 'repository' && } diff --git a/frontend/src/components/ChapterMap.tsx b/frontend/src/components/ChapterMap.tsx index d32ae4eb3a..fc015ea86c 100644 --- a/frontend/src/components/ChapterMap.tsx +++ b/frontend/src/components/ChapterMap.tsx @@ -62,7 +62,7 @@ const ChapterMap = ({ }) mapRef.current.on('mouseout', (e: L.LeafletMouseEvent) => { - const originalEvent = e.originalEvent as MouseEvent + const originalEvent = e.originalEvent const relatedTarget = originalEvent.relatedTarget as Node | null const container = mapRef.current?.getContainer() const mapParent = container?.parentElement diff --git a/frontend/src/components/MultiSearch.tsx b/frontend/src/components/MultiSearch.tsx index b7b17f178a..c0d09ab376 100644 --- a/frontend/src/components/MultiSearch.tsx +++ b/frontend/src/components/MultiSearch.tsx @@ -62,7 +62,7 @@ const MultiSearchBar: React.FC = ({ if (filteredEvents.length > 0) { results.push({ indexName: 'events', - hits: filteredEvents.slice(0, suggestionCount) as Event[], + hits: filteredEvents.slice(0, suggestionCount), totalPages: 1, }) } diff --git a/frontend/src/components/SingleModuleCard.tsx b/frontend/src/components/SingleModuleCard.tsx index 1de2743282..7aa3e135fc 100644 --- a/frontend/src/components/SingleModuleCard.tsx +++ b/frontend/src/components/SingleModuleCard.tsx @@ -28,7 +28,7 @@ const SingleModuleCard: React.FC = ({ module, accessLevel const isAdmin = accessLevel === 'admin' && - admins?.some((admin) => admin.login === ((data as ExtendedSession)?.user?.login as string)) + admins?.some((admin) => admin.login === ((data as ExtendedSession)?.user?.login)) // Extract programKey from pathname (e.g., /my/mentorship/programs/[programKey]) const programKey = pathname?.split('/programs/')[1]?.split('/')[0] || '' diff --git a/frontend/src/components/UserMenu.tsx b/frontend/src/components/UserMenu.tsx index 95d96f7fa1..8d95855a39 100644 --- a/frontend/src/components/UserMenu.tsx +++ b/frontend/src/components/UserMenu.tsx @@ -7,7 +7,6 @@ import Link from 'next/link' import { signIn } from 'next-auth/react' import { useEffect, useId, useRef, useState } from 'react' import { FaGithub } from 'react-icons/fa' -import { ExtendedSession } from 'types/auth' export default function UserMenu({ isGitHubAuthEnabled, @@ -19,7 +18,7 @@ export default function UserMenu({ const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const dropdownId = useId() - const isProjectLeader = (session as ExtendedSession)?.user?.isLeader + const isProjectLeader = (session)?.user?.isLeader const isOwaspStaff = session?.user?.isOwaspStaff useEffect(() => { diff --git a/frontend/src/hooks/useSearchPage.ts b/frontend/src/hooks/useSearchPage.ts index 09785544f7..d207ce9b29 100644 --- a/frontend/src/hooks/useSearchPage.ts +++ b/frontend/src/hooks/useSearchPage.ts @@ -104,7 +104,7 @@ export function useSearchPage({ if ('hits' in response) { setItems(response.hits) - setTotalPages(response.totalPages as number) + setTotalPages(response.totalPages) } else { handleAppError(response) } diff --git a/frontend/src/utils/env.server.ts b/frontend/src/utils/env.server.ts index 015050a0f3..630dbb3722 100644 --- a/frontend/src/utils/env.server.ts +++ b/frontend/src/utils/env.server.ts @@ -1,5 +1,5 @@ -export const GITHUB_CLIENT_ID = process.env.NEXT_SERVER_GITHUB_CLIENT_ID! -export const GITHUB_CLIENT_SECRET = process.env.NEXT_SERVER_GITHUB_CLIENT_SECRET! +export const GITHUB_CLIENT_ID = process.env.NEXT_SERVER_GITHUB_CLIENT_ID +export const GITHUB_CLIENT_SECRET = process.env.NEXT_SERVER_GITHUB_CLIENT_SECRET export const NEXTAUTH_URL = process.env.NEXTAUTH_URL export const IS_GITHUB_AUTH_ENABLED = Boolean(GITHUB_CLIENT_ID && GITHUB_CLIENT_SECRET) From 6dc1961cbad0c13a7b64fa7d8a47b154142280dd Mon Sep 17 00:00:00 2001 From: hussainjamal760 Date: Fri, 9 Jan 2026 06:41:53 +0500 Subject: [PATCH 2/4] resolved line-ending/formatting issues across backend and frontend files to pass make check --- frontend/src/components/CardDetailsPage.tsx | 6 +++--- frontend/src/components/SingleModuleCard.tsx | 2 +- frontend/src/components/UserMenu.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/CardDetailsPage.tsx b/frontend/src/components/CardDetailsPage.tsx index 14c95dfed4..789c634560 100644 --- a/frontend/src/components/CardDetailsPage.tsx +++ b/frontend/src/components/CardDetailsPage.tsx @@ -126,9 +126,9 @@ const DetailsCard = ({ )} {type === 'module' && accessLevel === 'admin' && - admins?.some( - (admin) => admin.login === ((data as ExtendedSession)?.user?.login) - ) && } + admins?.some((admin) => admin.login === (data as ExtendedSession)?.user?.login) && ( + + )} {!isActive && } {isArchived && type === 'repository' && } {IS_PROJECT_HEALTH_ENABLED && type === 'project' && healthMetricsData.length > 0 && ( diff --git a/frontend/src/components/SingleModuleCard.tsx b/frontend/src/components/SingleModuleCard.tsx index 7aa3e135fc..6a58f8b0ee 100644 --- a/frontend/src/components/SingleModuleCard.tsx +++ b/frontend/src/components/SingleModuleCard.tsx @@ -28,7 +28,7 @@ const SingleModuleCard: React.FC = ({ module, accessLevel const isAdmin = accessLevel === 'admin' && - admins?.some((admin) => admin.login === ((data as ExtendedSession)?.user?.login)) + admins?.some((admin) => admin.login === (data as ExtendedSession)?.user?.login) // Extract programKey from pathname (e.g., /my/mentorship/programs/[programKey]) const programKey = pathname?.split('/programs/')[1]?.split('/')[0] || '' diff --git a/frontend/src/components/UserMenu.tsx b/frontend/src/components/UserMenu.tsx index 8d95855a39..9e4843ec9c 100644 --- a/frontend/src/components/UserMenu.tsx +++ b/frontend/src/components/UserMenu.tsx @@ -18,7 +18,7 @@ export default function UserMenu({ const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const dropdownId = useId() - const isProjectLeader = (session)?.user?.isLeader + const isProjectLeader = session?.user?.isLeader const isOwaspStaff = session?.user?.isOwaspStaff useEffect(() => { From 5b78321e49b5818f28affba9ff3caacb046ef389 Mon Sep 17 00:00:00 2001 From: hussainjamal760 Date: Fri, 9 Jan 2026 07:14:40 +0500 Subject: [PATCH 3/4] refactor: remove redundant type assertion for ExtendedSession --- frontend/src/components/CardDetailsPage.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/CardDetailsPage.tsx b/frontend/src/components/CardDetailsPage.tsx index 789c634560..9ad00eaeca 100644 --- a/frontend/src/components/CardDetailsPage.tsx +++ b/frontend/src/components/CardDetailsPage.tsx @@ -100,6 +100,7 @@ const DetailsCard = ({ userSummary, }: DetailsCardProps) => { const { data } = useSession() + const session = data as ExtendedSession | null // compute styles based on type prop const typeStylesMap = { @@ -126,7 +127,7 @@ const DetailsCard = ({ )} {type === 'module' && accessLevel === 'admin' && - admins?.some((admin) => admin.login === (data as ExtendedSession)?.user?.login) && ( + admins?.some((admin) => admin.login === session?.user?.login) && ( )} {!isActive && } From 6d71f93964b4558e3b704c0957f6d188c1a07a58 Mon Sep 17 00:00:00 2001 From: hussainjamal760 Date: Fri, 9 Jan 2026 07:34:35 +0500 Subject: [PATCH 4/4] type assertion in DetailsCard to satisfy linting and PR feedback. --- frontend/src/components/CardDetailsPage.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/components/CardDetailsPage.tsx b/frontend/src/components/CardDetailsPage.tsx index 9ad00eaeca..914197db87 100644 --- a/frontend/src/components/CardDetailsPage.tsx +++ b/frontend/src/components/CardDetailsPage.tsx @@ -99,8 +99,7 @@ const DetailsCard = ({ type, userSummary, }: DetailsCardProps) => { - const { data } = useSession() - const session = data as ExtendedSession | null + const { data: session } = useSession() as { data: ExtendedSession | null } // compute styles based on type prop const typeStylesMap = {