Add non-null assertion operator to ref.current when calling webamp.renderInto()
to match the pattern used elsewhere in the component and resolve the CI type error:
"Argument of type 'HTMLDivElement | null' is not assignable to parameter of type 'HTMLElement'"
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Webamp optionally fully contained into a DOM element
* Fix spelling
* Reenable updating search index for uploads
* Replace contained flag on renderWhenReady with a new method. Add docs
---------
Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com>
This ensures `pnpm run lint` at the monorepo root runs the same
lint tasks as CI (`npx turbo lint`), providing consistent behavior
between local development and CI.
These files were duplicates of the TypeScript source files in src/.
The package builds from src/*.ts to built/*.js, so these root-level
.js files were unused and causing lint failures when running
`pnpm run lint` from the monorepo root.
Move general-purpose lint rules from packages/webamp/.eslintrc to the root
.eslintrc so they apply to all packages consistently. This includes:
- Core JavaScript best practices (no-var, prefer-const, eqeqeq, etc.)
- TypeScript-specific rules (@typescript-eslint/no-unused-vars with patterns)
- Prettier integration
Package-specific configs now only contain rules unique to their needs:
- webamp: React, import, and react-hooks plugin rules
- skin-database: Extends @typescript-eslint/recommended, disables rules that
conflict with existing code style
- webamp-modern: Unchanged (has root: true for isolation)
Also fixes lint errors in skin-database:
- Consolidate duplicate imports in App.js and Feedback.js
- Add radix parameter to parseInt
- Prefix unused function parameters with underscore
- Convert var to let/const
- Fix type import for Shooter
The skin-museum-og package has a lint script but it was not included
in turbo.json, so it wasn't being checked in CI. This adds the
skin-museum-og#lint task to turbo.json so it will be linted along
with the other packages.
The webamp-modern#build task had outputs set to an empty array,
which meant turbo wouldn't cache/restore the build directory.
This caused the deploy script to fail when the mv command couldn't
find the build directory on cache hits.
Changed outputs from [] to ["build/**"] to properly cache and
restore the build output.
The skin-database tests were failing in CI because BLUESKY_PASSWORD and
BLUESKY_USERNAME environment variables were added to config.ts but
not to the jest-setup.js file that provides dummy values for tests.
* High bitrate/samplerate is now correctly clipped
This makes the ``kbps`` and ``kHz`` displays in the main window correctly emulate what Winamp does with high bitrates/samplerates.
* Moved globals to be local to their designated functions
Division is no longer performed in each if condition
Default to displaying "0" for the kbps and khz fields (doesn't seem to trigger, though)
* Use padStart and slice to more properly format the data
Added comment by Justin Frankel on the meaning of H and C
* Display "0" while gathering bitrate and khz
* Remove logging of kbps in console
Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com>
* Assign ``finalKhz`` properly
* Make CI hopefully happy
---------
Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com>