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 |
||
|---|---|---|
| .. | ||
| lib | ||
| test | ||
| .gitignore | ||
| .metadata | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
| analysis_options.yaml | ||
| pubspec.yaml | ||
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.