Commit Graph

10 Commits

Author SHA1 Message Date
Mike Kell eaf3e70d30 docs: update master development brief — Stage 3B complete, Stage 3 done
Publish Docs / publish-docs (push) Successful in 1m10s Details
Mark Stage 3B (list efficiency improvements) as complete with 294 tests passing. Update baseline commit reference, test count, and next recommended branch to Stage 4A (Android app shell).
2026-05-22 08:53:10 -04:00
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
Mike Kell 49a3702cec Updated build status
Publish Docs / publish-docs (push) Successful in 1m34s Details
2026-04-11 16:49:51 -04:00
Mike Kell 02cc75c655 feat: publishing workflow UX hardening (Stage 2B)
Validate Docs / validate-docs (push) Successful in 1m9s Details
2026-04-11 16:40:10 -04:00
Mike Kell 73b4a49939 docs: update briefs for merged feat/post-write-consistency (Stage 2A)
- Mark Stage 2A complete in master brief and build tracker

- Refresh main baseline to 7acff83

- Next slice: feat/publishing-ux-hardening (Stage 2B)
2026-04-11 16:18:00 -04:00
Mike Kell cf0889d4a9 feat: post-write consistency hardening (Stage 2A)
Validate Docs / validate-docs (push) Successful in 1m4s Details
Add _refreshSelection() to ProductPublishingController to preserve and refresh selectedDraft by id after all write-triggered reloads. Selection stays on the same product with latest data, or auto-selects first visible item if the original leaves the active filter.

- 11 new post-write consistency tests (234 total)

- dart analyze clean
2026-04-11 16:11:06 -04:00
Mike Kell b69edd3e4a feat(wordpress): add category-only product edit (Stage 1B)
Validate Docs / validate-docs (push) Successful in 1m3s Details
2026-04-11 15:54:51 -04:00
Mike Kell 24671f5f59 feat(wordpress): add category-only product edit (Stage 1B) 2026-04-11 15:54:40 -04:00
Mike Kell 3e233b0df6 Master Development Brief updated after Stage 1A merge
Publish Docs / publish-docs (push) Successful in 1m3s Details
2026-04-11 11:15:37 -04:00
Mike Kell de44b02d76 added master development brief
Publish Docs / publish-docs (push) Successful in 1m3s Details
2026-04-11 10:48:49 -04:00