All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 48s
Fixed along the way. Dumps: clearing a dump's note sent `comment: undefined`, which JSON drops, so the server kept the old one; it's sent as null now. Replacing a file dropped a visibility change made in the same save (the file endpoint doesn't read it); it follows as a separate update. Renaming a dump onto a new slug kept showing the old title until reload. The thumbnail picker and delete on the edit page failed without a word, the latter as an unhandled rejection. Playlists: an edit that kept the slug waited on the socket's echo to show, and a new cover never appeared (the upload's answer was ignored, a refused one said nothing); covers were also served stale for an hour, since `max-age=3600` met an unversioned URL — setPlaylistImage now bumps updated_at and every cover URL carries `?v=` (playlistImageUrl). Removing a dump, reordering, and deleting a playlist ignored non-OK answers, leaving page and server apart; they restore, reload or report. Profile: clearing "Who am I?" sent undefined and came back on reload; your own upvoted list (and the upvoted page) was empty until the socket's welcome, and forever without one; "View all" under Following linked to a route that doesn't exist and is a Load more now. Chat: Escape on "Delete this message?" closed the whole chat — ConfirmModal takes Escape first, in the capture phase. Player: a pause or play from a media key, headset or the OS wasn't reflected (MediaPlayer follows the element's own play/pause events), and the seek bar tracked dragging with mouse events only, so on touch the thumb fought timeupdate. Feeds: a guest on /~/followed got a blank page; a server error in the followed feed read as "Could not connect". Search: a failed later page threw away the results shown. Notifications: a failed mark-read replaced a loaded list with an error. Silent failures now say so: deleting a comment, the voters/likers "Load more" (stuck on "Loading…"), and the password-reset request, which said "sent" whatever happened. Notifications also stop hiding what was new: the bell still clears on opening the page, but the dots and the "N new" count stay for the visit instead of vanishing the moment the mark-read lands, and one arriving while the page is open is marked read too, so the bell doesn't count it. Accessibility: Modal and ConfirmModal are dialogs (role, aria-modal, labelled/described); playlist membership rows are checkboxes that work from the keyboard; a dump's title, and the profile's email and description, can be opened for editing from the keyboard (the pencil shows on focus); the category editor's ✓ and the global player's video button have names. Player, rich-content and download labels were hard-coded English and are translated, with the new French strings. Lint: fast-refresh and render-purity rules are off for src/test/ only, where probes hand their context out on purpose. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
1.6 KiB
JSON
56 lines
1.6 KiB
JSON
{
|
|
"name": "gerbeur",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "eslint .",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/fraunces": "5.3.0",
|
|
"@fontsource-variable/jetbrains-mono": "5.3.0",
|
|
"@fontsource-variable/saira": "5.3.0",
|
|
"@fontsource-variable/space-grotesk": "5.3.0",
|
|
"@fontsource/instrument-serif": "5.3.0",
|
|
"@lingui/cli": "6.4.0",
|
|
"@lingui/conf": "6.4.0",
|
|
"@lingui/core": "6.4.0",
|
|
"@lingui/format-po": "6.4.0",
|
|
"@lingui/react": "6.4.0",
|
|
"@types/react": "^19.2.17",
|
|
"@lingui/swc-plugin": "6.5.0",
|
|
"@vitejs/plugin-react-swc": "^4.3.1",
|
|
"emojibase-data": "17.0.0",
|
|
"frimousse": "^0.3.0",
|
|
"jiti": "^2.7.0",
|
|
"react": "^19.2.7",
|
|
"react-dom": "^19.2.7",
|
|
"react-hook-form": "^7.80.0",
|
|
"react-markdown": "^10.1.0",
|
|
"react-router": "^8.0.1",
|
|
"remark-gfm": "^4.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@lingui/vite-plugin": "6.4.0",
|
|
"@eslint/js": "^10.0.1",
|
|
"@testing-library/dom": "^10.4.2",
|
|
"@testing-library/jest-dom": "^7.0.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@testing-library/user-event": "^14.6.7",
|
|
"@types/node": "^26.0.1",
|
|
"@types/react-dom": "^19.2.3",
|
|
"eslint": "^10.6.0",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.3",
|
|
"globals": "^17.7.0",
|
|
"jsdom": "^30.1.1",
|
|
"typescript": "~6.0.3",
|
|
"typescript-eslint": "^8.62.0",
|
|
"vite": "^8.1.0",
|
|
"vitest": "^5.0.2"
|
|
}
|
|
}
|