feat(dub): consolidate the pipeline stepper + title/meta into one compact header row - #855
Conversation
…r row Merge the two stacked dub-editor header rows into a single line to save vertical space. The pipeline stepper (Upload → … → Export) is now inlined onto the DubHeader row alongside the title, duration · N segs metadata, and the primary action buttons (Generate Dub / QC / Export). All step active/complete styling, data bindings, and button onClick/disabled/loading props carry over unchanged. - DubPipelineStepper gains an `inline` prop → `dub-stepper--inline` variant (drops the standalone border-bottom/padding, tighter connectors). - DubHeader renders the inline stepper as the leftmost element; the row is flex-wrap so it wraps gracefully on narrow windows. - DubTab only renders the standalone spine before the editor exists, so the stepper is never duplicated once the editor (and inline spine) is shown. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe Dub pipeline stepper is now rendered inline within DubHeader via a new ChangesInline Dub Pipeline Stepper
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Panel notes
🚥 Pre-merge checks | ✅ 6 | ❌ 3❌ Failed checks (3 warnings)
✅ Passed checks (6 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| frontend/src/pages/DubTab.jsx | Adds a suppression guard for the standalone stepper when the editor is active; the guard condition duplicates the existing editorActive variable rather than reusing it. |
| frontend/src/components/dub/DubHeader.jsx | Adds inline stepper as leftmost flex child and adds flex-wrap to container; clean and correct. |
| frontend/src/components/dub/DubPipelineStepper.jsx | Adds inline prop with default false; step logic and aria attributes are untouched. |
| frontend/src/index.css | Adds .dub-stepper--inline rules; does not override flex-wrap: wrap from the base class, which can cause steps to wrap within the header row on narrow viewports. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A{dubVideoFile or dubJobId or dubStep!=idle?} -->|No| Z[No stepper shown]
A -->|Yes| B{editorActive? dubJobId AND editing/generating/done}
B -->|No| C[Standalone DubPipelineStepper full-width spine]
B -->|Yes| D[DubHeader rendered]
D --> E[Inline DubPipelineStepper dub-stepper--inline]
D --> F[Title duration segs]
D --> G[Save Reset Generate QC Export]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A{dubVideoFile or dubJobId or dubStep!=idle?} -->|No| Z[No stepper shown]
A -->|Yes| B{editorActive? dubJobId AND editing/generating/done}
B -->|No| C[Standalone DubPipelineStepper full-width spine]
B -->|Yes| D[DubHeader rendered]
D --> E[Inline DubPipelineStepper dub-stepper--inline]
D --> F[Title duration segs]
D --> G[Save Reset Generate QC Export]
Reviews (1): Last reviewed commit: "feat(dub): consolidate pipeline stepper ..." | Re-trigger Greptile
Merges the two stacked header rows in the Dub editor into one compact row to reclaim vertical space.
Before: two rows — a centered 6-step pipeline spine (
Upload → Prepare → Transcribe → Edit → Generate → Export) on top, then a separate row with the title · duration · segment-count + action buttons.After: one row —
[stepper] … [title · duration · N segs] … [Save · Reset | Generate Dub · QC · Export], vertically centered, wrapping gracefully on narrow widths.What changed (4 files)
DubPipelineStepper.jsx— newinlineprop that swaps to a slimmerdub-stepper--inlinevariant (tighter connectors). Step active/done/spinning state logic untouched.DubHeader.jsx— renders the stepper inline as the leftmost element; container switched toflex flex-wrap justify-betweenso it wraps instead of overflowing. Title/meta + all buttons unchanged.DubTab.jsx— the standalone stepper now renders only when the editor view is not active, so it isn't duplicated (the stepper still shows during idle/uploading/transcribing).index.css—.dub-stepper--inlinerules (drops the standalone border/padding, tighter layout).Behavior preserved
Pure layout consolidation — the
dubStep-driven step styling, the title/duration/segment-count bindings, and every button'sonClick/disabled/loading props carry over verbatim.Narrow widths
The header container is
flex-wrap: on narrow windows the action-button cluster wraps to a second line rather than squeezing the title (which still truncates). Inline stepper uses tighter connectors to buy horizontal room first.Verification
bun run build✓ ·format:check✓ (oxfmt) · eslint on changed files clean (pre-existing DubTab effect warnings only).🤖 Generated with Claude Code
Compact the Dub editor header into a single inline row.
Before:
After:
flowchart TD A[DubTab renders editor state] --> B{Active editor state?} B -- no --> C[Render standalone DubPipelineStepper] B -- yes --> D[Hide standalone stepper] D --> E[DubHeader renders inline DubPipelineStepper] E --> F[Header wraps gracefully on narrow widths]inlinevariant toDubPipelineStepperfor the slimmer header presentation.DubHeaderto render the stepper inline and use a flex-wrap layout.DubTabso the standalone stepper is not duplicated while the editor is active.Step state logic, metadata bindings, and button behavior remain unchanged.