From 1c4ec6893de24cf6964cabafc3f7df0303c4fca8 Mon Sep 17 00:00:00 2001 From: ladybluenotes Date: Fri, 19 Dec 2025 07:43:52 -0800 Subject: [PATCH 01/12] fix: improve accessibility by adding htmlFor attributes to labels; fix: eslint errors and improve code --- scripts/test-npm-cache.ts | 3 +- src/auth/context.server.ts | 1 - src/components/AILibraryHero.tsx | 2 +- src/components/CookieConsent.tsx | 2 +- src/components/DocFeedbackNote.tsx | 2 + src/components/FeedFilters.tsx | 3 +- src/components/FeedList.tsx | 3 - src/components/FeedPage.tsx | 30 +--------- src/components/FeedPageLayout.tsx | 27 --------- src/components/FeedbackModerationFilters.tsx | 10 +++- src/components/FileExplorer.tsx | 3 +- src/components/FilterComponents.tsx | 1 + src/components/Gam.tsx | 2 - src/components/Markdown.tsx | 5 +- src/components/MarkdownLink.tsx | 1 + src/components/Navbar.tsx | 1 + src/components/NotesModerationFilters.tsx | 10 +++- src/components/NotesModerationPage.tsx | 3 +- src/components/PaginationControls.tsx | 5 +- src/components/ThemeToggle.tsx | 1 + src/components/UserFeedbackSection.tsx | 2 +- src/components/admin/BannerEditor.tsx | 57 ++++++++++++++----- src/components/admin/FeedEntryEditor.tsx | 47 ++++++++++----- src/components/icons/CogsIcon.tsx | 1 + src/queries/feed.ts | 2 - src/queries/roles.ts | 2 - src/queries/stats.ts | 1 - ...ersion.docs.framework.$framework.index.tsx | 10 ++-- ...ion.docs.framework.$framework.{$}[.]md.tsx | 2 +- src/routes/$libraryId/$version.docs.tsx | 2 +- src/routes/_libraries/account.tsx | 1 - src/routes/_libraries/db.$version.index.tsx | 3 +- src/routes/_libraries/feed.index.tsx | 1 - src/routes/_libraries/form.$version.index.tsx | 1 - src/routes/_libraries/maintainers.tsx | 20 ++++--- .../_libraries/pacer.$version.index.tsx | 1 - src/routes/_libraries/partners.tsx | 10 +++- src/routes/admin/banners.index.tsx | 3 +- src/routes/admin/users.tsx | 33 ++++++++--- src/server/sponsors.ts | 2 +- src/utils/docFeedback.functions.ts | 3 +- src/utils/docFeedback.server.ts | 16 +++--- src/utils/feed.functions.ts | 20 +------ src/utils/markdown/plugins.ts | 7 +-- src/utils/stats-db.server.ts | 43 -------------- 45 files changed, 185 insertions(+), 220 deletions(-) diff --git a/scripts/test-npm-cache.ts b/scripts/test-npm-cache.ts index cb79cb8f8..7184d13f3 100644 --- a/scripts/test-npm-cache.ts +++ b/scripts/test-npm-cache.ts @@ -3,11 +3,10 @@ * Tests that chunks are properly cached and retrieved */ -import { db } from '../src/db/client' import { getCachedNpmDownloadChunk, setCachedNpmDownloadChunk, -} from '../src/utils/stats-db.server' +} from '~/utils/stats-db.server' async function testCache() { console.log('\n' + '='.repeat(80)) diff --git a/src/auth/context.server.ts b/src/auth/context.server.ts index de2a152e4..e05f84fb5 100644 --- a/src/auth/context.server.ts +++ b/src/auth/context.server.ts @@ -11,7 +11,6 @@ import { OAuthService } from './oauth.server' import { SessionService } from './session.server' import { createAuthGuards } from './guards.server' import { - createRepositories, DrizzleUserRepository, DrizzleOAuthAccountRepository, DrizzleCapabilitiesRepository, diff --git a/src/components/AILibraryHero.tsx b/src/components/AILibraryHero.tsx index 398628d99..60a1b2fb6 100644 --- a/src/components/AILibraryHero.tsx +++ b/src/components/AILibraryHero.tsx @@ -94,7 +94,7 @@ const MESSAGES = [ }, ] -export function AILibraryHero({ project, cta, actions }: AILibraryHeroProps) { +export function AILibraryHero({}: AILibraryHeroProps) { const isDark = useIsDark() const strokeColor = isDark ? 'rgba(255, 255, 255, 0.8)' : 'rgba(0, 0, 0, 0.6)' const textColor = isDark ? '#ffffff' : '#000000' diff --git a/src/components/CookieConsent.tsx b/src/components/CookieConsent.tsx index cd8e41fe9..4a70674bd 100644 --- a/src/components/CookieConsent.tsx +++ b/src/components/CookieConsent.tsx @@ -1,5 +1,5 @@ import { Link } from '@tanstack/react-router' -import { useCallback, useEffect, useState } from 'react' +import { useEffect, useState } from 'react' declare global { interface Window { diff --git a/src/components/DocFeedbackNote.tsx b/src/components/DocFeedbackNote.tsx index b8220a8a2..24601c876 100644 --- a/src/components/DocFeedbackNote.tsx +++ b/src/components/DocFeedbackNote.tsx @@ -298,6 +298,7 @@ export function DocFeedbackNote({ } return ( + // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
0) || - (includePrerelease !== undefined && includePrerelease !== true), + (includePrerelease !== undefined && !includePrerelease), ) // Render filter content (shared between mobile and desktop) @@ -383,6 +383,7 @@ export function FeedFilters({ compact /> )} + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
e.stopPropagation()} className="flex-shrink-0"> ({ - entryTypes: normalizeFilter(effectiveFilters.entryTypes), - libraries: normalizeFilter(effectiveFilters.libraries), - partners: normalizeFilter(effectiveFilters.partners), - tags: normalizeFilter(effectiveFilters.tags), - releaseLevels: normalizeFilter(effectiveFilters.releaseLevels) as any, - includePrerelease: effectiveFilters.includePrerelease, - featured: effectiveFilters.featured, - search: effectiveFilters.search, - includeHidden: adminActions !== undefined, - }), - [ - effectiveFilters.entryTypes, - effectiveFilters.libraries, - effectiveFilters.partners, - effectiveFilters.tags, - effectiveFilters.releaseLevels, - effectiveFilters.includePrerelease, - effectiveFilters.featured, - effectiveFilters.search, - adminActions, - ], - ) return (
diff --git a/src/components/FeedPageLayout.tsx b/src/components/FeedPageLayout.tsx index 14cccc00e..1f759d24a 100644 --- a/src/components/FeedPageLayout.tsx +++ b/src/components/FeedPageLayout.tsx @@ -14,7 +14,6 @@ import { getFeedFacetCountsQueryOptions, type FeedFilters, } from '~/queries/feed' -import { twMerge } from 'tailwind-merge' import { Spinner } from '~/components/Spinner' // Re-export FeedFilters as FeedFiltersState for backwards compatibility @@ -211,7 +210,6 @@ function FeedPageLayoutContent({ children }: { children?: ReactNode }) { feedQuery, currentPage, pageSize, - filters = {}, onPageChange, onPageSizeChange, viewMode = 'table', @@ -222,31 +220,6 @@ function FeedPageLayoutContent({ children }: { children?: ReactNode }) { adminActions, } = useFeedPageLayout() - // Convert FeedFiltersState to FeedFilters format - const feedFilters = React.useMemo(() => { - if (!filters) { - return { - includeHidden: adminActions !== undefined, - } - } - - const normalizeFilter = (value: T[] | undefined): T[] | undefined => { - return value && value.length > 0 ? value : undefined - } - - return { - entryTypes: normalizeFilter(filters.entryTypes), - libraries: normalizeFilter(filters.libraries), - partners: normalizeFilter(filters.partners), - tags: normalizeFilter(filters.tags), - releaseLevels: normalizeFilter(filters.releaseLevels) as any, - includePrerelease: filters.includePrerelease, - featured: filters.featured, - search: filters.search, - includeHidden: adminActions !== undefined, - } - }, [filters, adminActions]) - return (
-
-
+ {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
- {props.files.map((file, index) => ( + {props.files.map((file) => (
  • {/* Tree lines */} {file.depth > 0 && ( diff --git a/src/components/FilterComponents.tsx b/src/components/FilterComponents.tsx index 2ae0711f4..fabc8d8dd 100644 --- a/src/components/FilterComponents.tsx +++ b/src/components/FilterComponents.tsx @@ -196,6 +196,7 @@ export function FilterBar({
    + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
    setIsOpen((prev) => !prev)} diff --git a/src/components/Gam.tsx b/src/components/Gam.tsx index 599e75e6b..bf018a662 100644 --- a/src/components/Gam.tsx +++ b/src/components/Gam.tsx @@ -74,13 +74,11 @@ const gamDivs = { function GamAd({ name, - children, adClassName, className, placeholderClassName, popupPosition = 'bottom', borderClassName, - style, ...props }: { name: keyof typeof gamDivs } & React.HTMLAttributes & { adClassName?: string diff --git a/src/components/Markdown.tsx b/src/components/Markdown.tsx index 6d545de75..67004b514 100644 --- a/src/components/Markdown.tsx +++ b/src/components/Markdown.tsx @@ -91,7 +91,7 @@ const markdownComponents: Record = { iframe: (props) => (