From 7b0af1129e11c60d6f07199e8dcfa09adb000d2e Mon Sep 17 00:00:00 2001 From: Quentin Gliech Date: Sun, 29 Mar 2026 19:08:03 +0200 Subject: [PATCH] fix(web): resolve all oxlint errors - add `void` to unhandled promises (no-floating-promises) - wrap async handlers passed to React event props (no-misused-promises) - stabilize allLabels/allAuthors/allIdentities with useMemo to avoid new array references on every render (exhaustive-deps) Co-Authored-By: Claude Opus 4.6 (1M context) --- webui2/src/components/bugs/CommentBox.tsx | 12 ++++++++++-- webui2/src/components/bugs/IssueFilters.tsx | 18 +++++++++++++----- webui2/src/components/bugs/LabelEditor.tsx | 4 +++- webui2/src/components/bugs/QueryInput.tsx | 7 +++++-- webui2/src/components/bugs/Timeline.tsx | 2 +- webui2/src/components/bugs/TitleEditor.tsx | 10 ++++++++-- webui2/src/components/code/CommitList.tsx | 2 +- webui2/src/components/code/FileDiffView.tsx | 2 +- webui2/src/components/code/FileViewer.tsx | 4 ++-- webui2/src/components/layout/Header.tsx | 2 +- webui2/src/lib/auth.tsx | 2 +- webui2/src/pages/IdentitySelectPage.tsx | 18 +++++++++++++++--- webui2/src/pages/NewBugPage.tsx | 7 ++++++- 13 files changed, 67 insertions(+), 23 deletions(-) diff --git a/webui2/src/components/bugs/CommentBox.tsx b/webui2/src/components/bugs/CommentBox.tsx index 8edf8a67c3c115da2800f2c3cc6bcdbc8dc039d2..d33ce023286182ba6f24168ee23bd9f6fcb01a51 100644 --- a/webui2/src/components/bugs/CommentBox.tsx +++ b/webui2/src/components/bugs/CommentBox.tsx @@ -124,13 +124,21 @@ export function CommentBox({ bugPrefix, bugStatus, ref_ }: CommentBoxProps) { - diff --git a/webui2/src/components/bugs/IssueFilters.tsx b/webui2/src/components/bugs/IssueFilters.tsx index c90fa87dd3c82f6f48be49cafe2903f0599225f2..de5c6fece870d01d7b621b2dd5ecd1b2279e5149 100644 --- a/webui2/src/components/bugs/IssueFilters.tsx +++ b/webui2/src/components/bugs/IssueFilters.tsx @@ -1,5 +1,5 @@ import { ArrowUpDown, ChevronDown, Tag, User, X, Search, Check } from "lucide-react"; -import { useState } from "react"; +import { useMemo, useState } from "react"; import { useValidLabelsQuery, useAllIdentitiesQuery } from "@/__generated__/graphql"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; @@ -79,12 +79,20 @@ export function IssueFilters({ const [labelSearch, setLabelSearch] = useState(""); const [authorSearch, setAuthorSearch] = useState(""); - const validLabels = [...(labelsData?.repository?.validLabels.nodes ?? [])].sort((a, b) => - a.name.localeCompare(b.name), + const validLabels = useMemo( + () => + [...(labelsData?.repository?.validLabels.nodes ?? [])].sort((a, b) => + a.name.localeCompare(b.name), + ), + [labelsData], ); - const allIdentities = [...(authorsData?.repository?.allIdentities.nodes ?? [])].sort((a, b) => - a.displayName.localeCompare(b.displayName), + const allIdentities = useMemo( + () => + [...(authorsData?.repository?.allIdentities.nodes ?? [])].sort((a, b) => + a.displayName.localeCompare(b.displayName), + ), + [authorsData], ); const filteredLabels = labelSearch.trim() diff --git a/webui2/src/components/bugs/LabelEditor.tsx b/webui2/src/components/bugs/LabelEditor.tsx index 479cef6f6f2df3f2f702c3657565d18c7d23720b..cd92551b31702e486e40748ed53372d4b3929a53 100644 --- a/webui2/src/components/bugs/LabelEditor.tsx +++ b/webui2/src/components/bugs/LabelEditor.tsx @@ -64,7 +64,9 @@ export function LabelEditor({ bugPrefix, currentLabels, ref_ }: LabelEditorProps return ( @@ -104,7 +110,13 @@ export function IdentitySelectPage() { A fresh git-bug identity will be created from your OAuth profile.

- diff --git a/webui2/src/pages/NewBugPage.tsx b/webui2/src/pages/NewBugPage.tsx index 19e0ce2f9e38560a631ef1cd5cc1e5455634bc2b..3e880b8c0adaaaf1661437a960d9102475a36c58 100644 --- a/webui2/src/pages/NewBugPage.tsx +++ b/webui2/src/pages/NewBugPage.tsx @@ -45,7 +45,12 @@ export function NewBugPage() {

New issue

-
+ { + void handleSubmit(e); + }} + className="space-y-4" + >