Summary
Clean up all 8 pre-existing ESLint issues so npm run lint passes clean.
1. Exclude SDK dist from linting (4 errors)
packages/sdk/dist/index.cjs triggers @typescript-eslint/no-require-imports — this is compiled output and should not be linted.
Fix: Add packages/sdk/dist/ to ESLint ignore config (.eslintignore or ignores in eslint.config.*).
2. Remove unused reset destructuring (1 warning)
src/app/create/page.tsx:50 — reset is destructured from usePublish() but never used.
Fix: Remove reset from the destructuring.
3. Remove unnecessary tokenAddress from useCallback deps (1 warning)
src/components/ClaimRoyalties.tsx:87 — tokenAddress is a prop (stable reference from parent), not a reactive value. ESLint correctly flags it as unnecessary.
Fix: Remove tokenAddress from the dependency array.
4. Wrap allOptions in useMemo (1 warning)
src/components/Select.tsx:32 — allOptions is recomputed every render, causing the handleKeyDown useCallback deps to change every render, defeating memoization.
Fix: Wrap allOptions in useMemo(() => ..., [placeholder, options]).
5. Unused expression in SDK dist (1 warning)
packages/sdk/dist/index.cjs:603 — same file as #1, will be resolved by excluding dist from linting.
Acceptance Criteria
Labels
agent/T3, plotlink, chore
Summary
Clean up all 8 pre-existing ESLint issues so
npm run lintpasses clean.1. Exclude SDK dist from linting (4 errors)
packages/sdk/dist/index.cjstriggers@typescript-eslint/no-require-imports— this is compiled output and should not be linted.Fix: Add
packages/sdk/dist/to ESLint ignore config (.eslintignoreorignoresineslint.config.*).2. Remove unused
resetdestructuring (1 warning)src/app/create/page.tsx:50—resetis destructured fromusePublish()but never used.Fix: Remove
resetfrom the destructuring.3. Remove unnecessary
tokenAddressfrom useCallback deps (1 warning)src/components/ClaimRoyalties.tsx:87—tokenAddressis a prop (stable reference from parent), not a reactive value. ESLint correctly flags it as unnecessary.Fix: Remove
tokenAddressfrom the dependency array.4. Wrap
allOptionsin useMemo (1 warning)src/components/Select.tsx:32—allOptionsis recomputed every render, causing thehandleKeyDownuseCallback deps to change every render, defeating memoization.Fix: Wrap
allOptionsinuseMemo(() => ..., [placeholder, options]).5. Unused expression in SDK dist (1 warning)
packages/sdk/dist/index.cjs:603— same file as #1, will be resolved by excluding dist from linting.Acceptance Criteria
npm run lintexits with 0 errors and 0 warningsnpm run typecheckstill passesLabels
agent/T3,plotlink,chore