Commit graph

4169 commits

Author SHA1 Message Date
Jordan Eldredge
1687de3d6a Fix TypeScript error in Webamp renderInto call
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>
2026-01-01 15:13:17 -08:00
Jordan Eldredge
bce845962f Enable Webamp for scroll UI 2025-12-31 15:18:45 -08:00
Jordan Eldredge
4b784b6eaf Start wiring up Webamp in scroller museum UI 2025-12-31 15:00:16 -08:00
Jordan Eldredge
52f12327fa Persist search query in URL 2025-12-31 15:00:16 -08:00
Jordan Eldredge
1d10f7a1f4 Don't wait as long to hint that you can scroll 2025-12-31 15:00:16 -08:00
Jordan Eldredge
99f06d3bfc Remove logging 2025-12-31 15:00:16 -08:00
Lorenzo Stanco
162025f8a0
Webamp optionally fully contained into a DOM element (#1338)
* 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>
2025-12-31 14:59:14 -08:00
Jordan Eldredge
f600fb0344 lints 2025-12-30 04:46:47 +00:00
Jordan Eldredge
04c396ed1f Scroll search 2025-12-29 20:22:39 -08:00
Jordan Eldredge
f74d7a6cdf Move search input 2025-12-29 17:38:14 -08:00
Jordan Eldredge
1fb930cd63 New pages for scroll 2025-12-29 17:29:11 -08:00
Jordan Eldredge
8d4ff41f42 Improve scroll UI 2025-12-29 17:03:29 -08:00
Jordan Eldredge
e062a51a88 Improve scroll UI 2025-12-29 15:32:03 -08:00
Jordan Eldredge
0895f9191f Add explicit app routes 2025-12-29 15:17:06 -08:00
Jordan Eldredge
3b4e5b17c3 Remove blocklist of skins with viruses. These are now purged. 2025-12-29 13:15:46 -08:00
Jordan Eldredge
91618c9c6b Block downloading skin that seems to trigger security block 2025-12-29 11:52:11 -08:00
Jordan Eldredge
6c732f8e24 Add bulk download page 2025-12-29 11:35:45 -08:00
Jordan Eldredge
d87cb6ffa3 Switch away from cached api 2025-12-26 19:20:30 +00:00
Jordan Eldredge
6997c852f9 Get uploads working again 2025-12-26 19:20:30 +00:00
Jordan Eldredge
61476591f8 Trusted publishing 2025-12-17 16:51:54 -08:00
Jordan Eldredge
33003a8f8f
Patch butterchurn to use eel-wasm 98 to fix mod bug (#1334) 2025-12-15 22:21:26 -08:00
Jordan Eldredge
50a7c2df49
Fix lints (#1335)
* Fix lints

* Fix typechecking
2025-12-15 22:12:14 -08:00
Jordan Eldredge
1f875a6155 Migrate from pm2 to systemd 2025-12-03 18:20:18 -05:00
Jordan Eldredge
26a6002ce8 Fix deploy 2025-12-03 18:12:43 -05:00
Jordan Eldredge
bd6c978d79 Remove duplicate function 2025-12-03 18:12:43 -05:00
Jordan Eldredge
18ee5418b6 Avoid circular imports 2025-12-03 18:12:43 -05:00
Jordan Eldredge
af21934296 Use node version from nvm 2025-12-03 18:12:43 -05:00
Jordan Eldredge
4b793c30b2 Deploy take 1 2025-12-03 18:12:43 -05:00
Jordan Eldredge
a6b0350a00 Get syncing to the archive working again 2025-12-03 18:12:43 -05:00
Jordan Eldredge
964a7c5f2f
Upgrade next (#1333) 2025-12-03 15:12:22 -08:00
Jordan Eldredge
b00e359a78
Enable more lints (#1330) 2025-11-28 12:19:10 -08:00
Jordan Eldredge
d159308352
Use turbo lint for root lint script (#1329)
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.
2025-11-28 12:06:41 -08:00
Jordan Eldredge
d687f4b06c
Disable silly lint rule (#1328) 2025-11-28 11:53:25 -08:00
Jordan Eldredge
8fa7701b47
Remove legacy JS files from winamp-eqf package (#1327)
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.
2025-11-28 11:51:02 -08:00
Jordan Eldredge
1da77a640a
Consolidate ESLint configs into root (#1324)
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
2025-11-27 21:32:10 -08:00
Jordan Eldredge
642fb964d6
Add skin-museum-og lint to CI (#1321)
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.
2025-11-27 18:34:41 -08:00
Jordan Eldredge
8358d4843c
Add ESLint to ani-cursor and include in CI (#1323)
- Add lint script to ani-cursor package.json
- Add ani-cursor#lint task to turbo.json so it runs in CI
2025-11-27 18:31:36 -08:00
Jordan Eldredge
bbd1d1224e
Add ESLint to winamp-eqf and include in CI (#1322)
- Add lint script to winamp-eqf package.json
- Add winamp-eqf#lint task to turbo.json so it runs in CI
2025-11-27 18:31:27 -08:00
Jordan Eldredge
b672de2515
Fix webamp-modern build outputs in turbo.json (#1320)
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.
2025-11-27 17:46:44 -08:00
Jordan Eldredge
014c8eab28
Add missing BLUESKY env vars to test setup (#1319)
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.
2025-11-27 16:24:04 -08:00
Eris Lund
a56cbc54c5
High bitrate/samplerate is now correctly clipped (#1318)
* 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>
2025-11-27 16:10:11 -08:00
Jordan Eldredge
8efe121f3c More stuff for the new layout 2025-11-07 21:38:21 -08:00
Jordan Eldredge
c778464c42 Avoid url takeover and loading glitch 2025-11-07 19:58:30 -08:00
Jordan Eldredge
d6245c7c7e Add scroll hint 2025-11-07 19:41:50 -08:00
Jordan Eldredge
f1339901e6 Stub out permalink page 2025-11-07 19:12:08 -08:00
Jordan Eldredge
811fc977c4 Clean up 2025-11-07 18:56:10 -08:00
Jordan Eldredge
7afe3bd45b Stub out menu bar 2025-11-07 18:51:49 -08:00
Jordan Eldredge
608242b200 Improve landscape screens for scroll 2025-11-07 17:28:42 -08:00
Jordan Eldredge
f3054192e6 Make page dynamic and fix scroll loading on ios 2025-11-07 16:08:41 -08:00
Jordan Eldredge
0b2ff44b1c Action buttons 2025-11-07 15:44:54 -08:00