docs(05-02): complete ReviewStep scriptTargets filtering and Back button plan
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
---
|
||||
phase: 05-tech-debt
|
||||
plan: "02"
|
||||
subsystem: ui
|
||||
tags: [react, vitest, testing-library, wizard, scriptTargets]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 05-00
|
||||
provides: TDD stubs for TECH-01 and TECH-02 test cases in ReviewStep.test.tsx
|
||||
provides:
|
||||
- ReviewStep conditionally renders Intune and RMM OutputBlocks based on scriptTargets
|
||||
- ZIP bundle filtered to only include files for selected script targets
|
||||
- Back button on ReviewStep dispatching SET_STEP(2)
|
||||
affects: [03-wizard-ui, 06-new-backends]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns:
|
||||
- "scriptTargets.includes() boolean derivation drives conditional rendering (unmount, not CSS)"
|
||||
- "handleDownloadZip builds files array dynamically from showIntune/showRmm booleans"
|
||||
- "Back button pattern from DeploymentStep: dispatch SET_STEP(payload) in onClick"
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- src/components/wizard/ReviewStep.tsx
|
||||
|
||||
key-decisions:
|
||||
- "Unmount OutputBlocks entirely (conditional render with &&) — not CSS hidden — so no stale state is preserved when toggling"
|
||||
- "useMemo calls for intuneInstall/intuneDetection/rmmScript are KEPT even when blocks are hidden — needed for ZIP handler"
|
||||
- "rclone.conf OutputBlock always rendered regardless of scriptTargets — only script outputs are conditional"
|
||||
- "Back button placed before ZIP button, follows identical className/dispatch pattern from DeploymentStep"
|
||||
|
||||
patterns-established:
|
||||
- "showIntune/showRmm boolean pattern: derive from state.deployment.scriptTargets.includes() — use same pattern in future conditional script output features"
|
||||
|
||||
requirements-completed: [TECH-01, TECH-02]
|
||||
|
||||
# Metrics
|
||||
duration: 4min
|
||||
completed: 2026-03-30
|
||||
---
|
||||
|
||||
# Phase 5 Plan 02: ReviewStep scriptTargets Filtering and Back Button Summary
|
||||
|
||||
**ReviewStep conditionally unmounts Intune/RMM OutputBlocks via scriptTargets booleans, filters ZIP bundle to match, and adds a Back button dispatching SET_STEP(2)**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Duration:** ~4 min
|
||||
- **Started:** 2026-03-30T09:36:00Z
|
||||
- **Completed:** 2026-03-30T09:37:30Z
|
||||
- **Tasks:** 1 (TDD: RED confirmed, GREEN implemented)
|
||||
- **Files modified:** 1
|
||||
|
||||
## Accomplishments
|
||||
- ReviewStep now reads scriptTargets from state and derives showIntune/showRmm booleans
|
||||
- Intune Install and Detection OutputBlocks are conditionally unmounted (not CSS-hidden) when showIntune is false
|
||||
- RMM OutputBlock is conditionally unmounted when showRmm is false
|
||||
- handleDownloadZip builds its files array dynamically — ZIP always has rclone.conf, plus intune/rmm files only if selected
|
||||
- Back button added following DeploymentStep pattern, dispatching SET_STEP(2)
|
||||
- All 15 ReviewStep tests green (10 pre-existing + 5 new TECH-01/TECH-02 cases); 104 total tests pass with no regressions
|
||||
|
||||
## Task Commits
|
||||
|
||||
Each task was committed atomically:
|
||||
|
||||
1. **Task 1: Add scriptTargets filtering and Back button to ReviewStep** - `214a68e` (feat)
|
||||
|
||||
**Plan metadata:** (docs commit follows)
|
||||
|
||||
_Note: TDD task — RED state confirmed (5 failing), then GREEN via implementation._
|
||||
|
||||
## Files Created/Modified
|
||||
- `src/components/wizard/ReviewStep.tsx` - Added dispatch destructuring, showIntune/showRmm booleans, conditional OutputBlock rendering, dynamic ZIP handler, and Back button
|
||||
|
||||
## Decisions Made
|
||||
- Kept all useMemo calls (intuneInstall, intuneDetection, rmmScript) even when their OutputBlocks are hidden — they are referenced by the ZIP handler which always needs the content
|
||||
- Used `&&` conditional render (unmount pattern) not CSS `hidden` — consistent with plan spec and avoids preserving stale component state
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
None
|
||||
|
||||
## User Setup Required
|
||||
None - no external service configuration required.
|
||||
|
||||
## Next Phase Readiness
|
||||
- TECH-01 and TECH-02 requirements now complete — ReviewStep correctly respects scriptTargets selections
|
||||
- Phase 05-03 (if any) can proceed; wizard UI is now consistent across BackendSelectionStep, DeploymentStep, and ReviewStep for scriptTargets
|
||||
- No blockers
|
||||
|
||||
---
|
||||
*Phase: 05-tech-debt*
|
||||
*Completed: 2026-03-30*
|
||||
Reference in New Issue
Block a user