fix: resolve CI lint and typecheck failures

- Add @site/* path alias to docs tsconfig for generated integration files
- Fix label-has-associated-control: use htmlFor/id pairs in SubmitForm
- Suppress no-noninteractive-element-interactions for drag-and-drop zones
- Add aria-labels to search and comment inputs
- Remove unused Label component import
This commit is contained in:
Thomas Camlong committed 2026-06-24 16:23:34 +02:00
1 parent 8841aac40e
commit 9301718974
8 files changed
+156 -7

No files matched your search

@@ -253,6 +253,7 @@ const CommentsSection = ({
<Input
className="flex-1"
placeholder="Write a comment…"
aria-label="Write a comment"
value={newComment}
onChange={(e) => setNewComment(e.target.value)}
onKeyDown={(e) => {
@@ -303,6 +304,7 @@ const CommentsSection = ({
<div className="mt-2 flex items-center gap-1">
<Input
className="flex-1"
aria-label="Edit comment"
value={editContent}
onChange={(e) => setEditContent(e.target.value)}
onKeyDown={(e) => {
@@ -179,6 +179,7 @@ export const StoreApp = ({ storeUrl }: { storeUrl: string }) => {
<input
className="h-7 w-48 rounded-md border border-input bg-transparent pl-8 text-xs outline-none placeholder:text-muted-foreground"
placeholder="Search…"
aria-label="Search submissions"
value={search}
onChange={(e) => setSearch(e.target.value)}
/>
+11 -6
View File
@@ -25,7 +25,6 @@ import {
DialogTitle,
} from "@/components/ui/dialog";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Textarea } from "@/components/ui/textarea";
import { cn, errorMessage } from "@/lib/utils";
@@ -185,10 +184,11 @@ export const SubmitForm = ({ onClose, onSubmit }: Props) => {
if (!open && !pending) onClose();
}}
>
{/* oxlint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
<DialogContent
className="max-h-[90vh] overflow-y-auto sm:max-w-xl"
showCloseButton={!pending}
onDragOver={(e) => {
onDragOver={(e: React.DragEvent) => {
e.preventDefault();
setJsonDropHint(true);
}}
@@ -348,6 +348,7 @@ const StepType = ({
))}
</div>
{/* oxlint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
<label
onDragOver={(e) => {
e.preventDefault();
@@ -405,8 +406,9 @@ const StepDetails = ({
}) => (
<div className="flex flex-col gap-4">
<div className="flex flex-col gap-1.5">
<Label className="text-xs font-medium text-muted-foreground">{contentLabels[type]} *</Label>
<label htmlFor="submit-content" className="text-xs font-medium text-muted-foreground">{contentLabels[type]} *</label>
<Textarea
id="submit-content"
className="font-mono text-xs"
value={content}
onChange={(e) => onContentChange(e.target.value)}
@@ -422,8 +424,9 @@ const StepDetails = ({
)}
</div>
<div className="flex flex-col gap-1.5">
<Label className="text-xs font-medium text-muted-foreground">Title *</Label>
<label htmlFor="submit-title" className="text-xs font-medium text-muted-foreground">Title *</label>
<Input
id="submit-title"
value={title}
onChange={(e) => setTitle(e.target.value)}
required
@@ -433,8 +436,9 @@ const StepDetails = ({
/>
</div>
<div className="flex flex-col gap-1.5">
<Label className="text-xs font-medium text-muted-foreground">Description</Label>
<label htmlFor="submit-description" className="text-xs font-medium text-muted-foreground">Description</label>
<Textarea
id="submit-description"
value={description}
onChange={(e) => setDescription(e.target.value)}
maxLength={2000}
@@ -465,11 +469,12 @@ const StepMedia = ({
return (
<div className="flex flex-col gap-4">
<div>
<Label className="text-xs font-medium text-muted-foreground">Screenshots (optional, up to 5)</Label>
<span className="text-xs font-medium text-muted-foreground">Screenshots (optional, up to 5)</span>
<p className="mt-0.5 text-xs text-muted-foreground/70">
Add screenshots to help others preview your submission.
</p>
</div>
{/* oxlint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
<label
onDragOver={(e) => {
e.preventDefault();