Skip to content

feat: add quote collections feature#46

Merged
kYem merged 8 commits into
mainfrom
feature/quote-collections
Jan 10, 2026
Merged

feat: add quote collections feature#46
kYem merged 8 commits into
mainfrom
feature/quote-collections

Conversation

@kYem
Copy link
Copy Markdown
Owner

@kYem kYem commented Jan 10, 2026

Summary

Add the ability to organize quotes into custom collections for themed groupings:

  • Many-to-many relationship: Quotes can belong to multiple collections
  • Full CRUD operations: Create, edit, and delete collections
  • Individual & bulk actions: Add quotes one at a time or in bulk via selection mode
  • Collection filtering: Filter the quote list by active collection
  • Visual indicators: Collection count badges on quote cards

Changes

Data Layer

  • Add QuoteCollection type to @cuewise/shared
  • Add collectionIds?: string[] to Quote interface
  • Add COLLECTIONS storage key and helpers

Store Layer

  • Extend quote-store with collection state and actions
  • Support for CRUD, linking, bulk operations, and filtering

UI Components

  • CollectionList: Display and manage collections in new tab
  • CollectionForm: Modal for creating/editing collections
  • CollectionPicker: Popover for adding quotes to collections
  • Updated QuoteCard with collection button and badge
  • Updated BulkActionsToolbar with bulk add to collection

Screenshots

Collections are managed in a new tab alongside Quotes in the Quote Management page. Each quote card shows a collection count badge, and bulk selection enables adding multiple quotes at once.

Test plan

  • Create a new collection with name and description
  • Add individual quote to collection via CollectionPicker
  • Bulk select quotes and add to collection
  • Verify collection count updates correctly
  • Edit collection name/description
  • Delete collection
  • Filter quotes by collection
  • Type-check passes
  • Lint passes

kYem added 8 commits January 10, 2026 17:18
Add the ability to organize quotes into custom collections:

- Add QuoteCollection type and collectionIds to Quote interface
- Add COLLECTIONS storage key and storage helpers
- Extend quote-store with collection state and actions:
  - CRUD operations for collections
  - Quote-collection linking (add/remove)
  - Bulk add quotes to collection
  - Active collection filtering
- Create UI components:
  - CollectionList: Display and manage collections
  - CollectionForm: Create/edit collection modal
  - CollectionPicker: Multi-select popover for quotes
- Update QuoteManagementPage with Collections tab
- Add collection button with count badge to QuoteCard
- Add bulk "Add to Collection" action to BulkActionsToolbar
- Add AddQuotesToCollectionModal for bulk adding quotes to collections
- Modal shows searchable list of all quotes with checkboxes
- Tracks pending changes and applies them on save
- Add ListPlus button to collection cards in CollectionList
- Add collectionId parameter to getRandomQuote utility
- Update refreshQuote to respect activeCollectionId filter
- Add collections section to CategoryFilter dropdown
- Quotes can now be filtered by collection from main display
- Add getCollections and setCollections to storage mock
- Add collections and activeCollectionId to EMPTY_STORE_STATE fixture
- Update CategoryFilter mock store with collection-related state
- Update test assertions for 'Filter Quotes' header
- Change activeCollectionId to activeCollectionIds array
- Update toggleCollection to add/remove collections from filter
- Add setActiveCollectionIds for bulk operations
- Update getRandomQuote to filter by multiple collection IDs
- Collections now use checkboxes like categories for consistent UX
- Click on collection now shows its quotes within the Collections tab
- Added back button to return to collection list
- Removed filter toggle on collection click (filtering still works via CategoryFilter)
- Added "Add Quotes" button in collection detail view
@kYem kYem merged commit 541153e into main Jan 10, 2026
1 check passed
@kYem kYem deleted the feature/quote-collections branch January 10, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant