Add favorite workflows for audio and text - #508
Merged
Conversation
Audio and text entities exposed ratings, likes, and bookmarks but had no favorite control or favorite-based list filtering, leaving those media types outside Cove's normal per-user favorites workflow. Wire their detail headers to the shared engagement favorite mutation, add current-user favorite criteria to audio and text queries, expose those criteria in the filter UI, and cover favoriting, unmarking, positive filtering, negative filtering, and user isolation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add per-user favorite support for individual audio and text entities. Audio and text detail headers now expose the shared favorite control, list cards reflect favorited state through existing engagement data, and both media lists offer a Favorite filter backed by current-user affinity queries.
The regression coverage verifies favoriting, unmarking, positive and negative favorite filters, and isolation between users for both entity types.
Linked issue
Closes #416
Type of change
AI usage
Testing done & evidence
npm --prefix ui test -- --run src/test/AudioTextDetailPages.test.tsx— passed, 1 test file and 7 tests.dotnet build src/Cove.slnx -c Release --no-restore— passed with 0 errors. Four pre-existingxUnit1051warnings remain in an unrelated tag test class.dotnet build src/Cove.ApiTests/Cove.ApiTests.csproj --configuration Release --no-restore— passed with 0 errors. The same four unrelatedxUnit1051warnings were reported.dotnet test src/Cove.ApiTests/Cove.ApiTests.csproj --configuration Release --no-build --no-restore --filter "FullyQualifiedName~AudioEngagementLifecycleApiTests|FullyQualifiedName~TextEngagementAndRescanApiTests" --logger "console;verbosity=normal"— passed, 6 of 6 tests.npm --prefix ui run build— passed TypeScript compilation and the production Vite build. Vite reported its existing config compatibility and chunk-size warnings.git diff --check— passed.Checklist