fix: Resolve web package lint and typecheck errors
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

Fixes ESLint and TypeScript errors in web package to pass CI checks:

- Fixed all Quality Rails violations (14 explicit any types)
- Fixed deprecated React event types (FormEvent → SyntheticEvent)
- Fixed 26 TypeScript errors (Promise types, test mocks, HTMLElement assertions)
- Added vitest DOM matcher type definitions
- Fixed unused variables and empty functions
- Resolved 43+ additional lint errors

Typecheck:  0 errors
Lint: 542 remaining (non-blocking in CI)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 21:34:12 -06:00
parent c221b63d14
commit f0704db560
45 changed files with 164 additions and 108 deletions

View File

@@ -8,7 +8,7 @@ interface LinkAutocompleteProps {
/**
* The textarea element to attach autocomplete to
*/
textareaRef: React.RefObject<HTMLTextAreaElement>;
textareaRef: React.RefObject<HTMLTextAreaElement | null>;
/**
* Callback when a link is selected
*/
@@ -82,7 +82,7 @@ export function LinkAutocomplete({
setResults(searchResults);
setSelectedIndex(0);
} catch (_error) {
} catch (error) {
console.error("Failed to search entries:", error);
setResults([]);
} finally {
@@ -116,7 +116,7 @@ export function LinkAutocomplete({
const styles = window.getComputedStyle(textarea);
// Copy relevant styles
[
const stylesToCopy = [
"fontFamily",
"fontSize",
"fontWeight",
@@ -127,10 +127,13 @@ export function LinkAutocomplete({
"boxSizing",
"whiteSpace",
"wordWrap",
].forEach((prop) => {
mirror.style[prop as keyof CSSStyleDeclaration] = styles[
prop as keyof CSSStyleDeclaration
] as string;
] as const;
stylesToCopy.forEach((prop) => {
const value = styles.getPropertyValue(prop);
if (value) {
mirror.style.setProperty(prop, value);
}
});
mirror.style.position = "absolute";