kell_creations/kell_creations_apps/packages/feature_wordpress
Mike Kell dfe7ae1811 feat: add multi-select groundwork to product publishing (Stage 3A)
Add read-only multi-selection state to the product publishing workspace, preparing for future bulk actions without introducing any bulk writes.

Controller (ProductPublishingController):

- Add _multiSelectedIds Set<String> for tracking multi-selected product IDs

- Add toggleMultiSelect(id) to add/remove individual IDs

- Add clearMultiSelection() to deselect all

- Add selectAllVisible() to select all currently visible (filtered/searched) drafts

- Add isMultiSelected(id), multiSelectedIds, multiSelectedCount, isMultiSelectActive getters

- Multi-selection is independent of single-item preview selection

- Multi-selection persists across load cycles and write operations

UI (ProductDraftCard):

- Add optional isMultiSelected/onMultiSelectToggle props

- Show leading Checkbox when multi-select mode is active

- Tapping checkbox toggles multi-select; tapping card body still fires single-item preview

UI (ProductPublishingPage):

- Add _MultiSelectBar widget above product list when multi-select is active

- Shows selected count, Select All button, and Clear button

- Replace deprecated withOpacity() calls with withValues(alpha:)

Tests:

- 15 new multi-select controller tests covering toggle, clear, select-all,

  filter/search interaction, independence from preview selection, persistence

  across loads and writes, and listener notifications

- Total: 262 feature_wordpress tests passing

Validation:

- dart analyze: clean (0 issues)

- flutter test: 262/262 passed

Changed files:

- lib/src/application/product_publishing_controller.dart

- lib/src/presentation/widgets/product_draft_card.dart

- lib/src/presentation/product_publishing_page.dart

- test/product_publishing_controller_test.dart

- docs/development/master_development_brief.md
2026-05-22 08:33:24 -04:00
..
lib feat: add multi-select groundwork to product publishing (Stage 3A) 2026-05-22 08:33:24 -04:00
test feat: add multi-select groundwork to product publishing (Stage 3A) 2026-05-22 08:33:24 -04:00
.gitignore Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
.metadata Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
CHANGELOG.md Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
LICENSE Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
README.md Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
analysis_options.yaml Add Flutter app and package monorepo scaffold 2026-04-04 09:19:46 -04:00
pubspec.yaml feat(wordpress): add real WooCommerce read-only product repository 2026-04-04 15:14:38 -04:00

README.md

TODO: Put a short description of the package here that helps potential users know whether this package might be useful for them.

Features

TODO: List what your package can do. Maybe include images, gifs, or videos.

Getting started

TODO: List prerequisites and provide or point to information on how to start using the package.

Usage

TODO: Include short and useful examples for package users. Add longer examples to /example folder.

const like = 'sample';

Additional information

TODO: Tell users more about the package: where to find more information, how to contribute to the package, how to file issues, what response they can expect from the package authors, and more.