feat(FN-3632): remove quick-entry branch handling from dashboard and docs
Removes the `QuickEntryBox` component and its styles as part of FN-3632 cleanup, with its tests refactored accordingly. Also updates the test-changed script and fixes an isolated test home cleanup ordering issue. Fusion-Task-Id: FN-3632
This commit is contained in:
@@ -113,26 +113,6 @@
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.quick-entry-branch-fields {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: var(--space-sm);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.quick-entry-branch-fields label {
|
||||
display: flex;
|
||||
flex: 1 1 calc(50% - var(--space-sm));
|
||||
flex-direction: column;
|
||||
gap: var(--space-xs);
|
||||
min-width: min(100%, calc(var(--space-xl) * 12));
|
||||
}
|
||||
|
||||
.quick-entry-branch-fields span {
|
||||
color: var(--text-muted);
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.quick-entry-model-wrap {
|
||||
position: relative;
|
||||
}
|
||||
@@ -454,11 +434,6 @@
|
||||
min-height: 36px;
|
||||
}
|
||||
|
||||
.quick-entry-branch-fields label {
|
||||
flex: 1 1 100%;
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.quick-entry-box .dep-dropdown {
|
||||
max-width: calc(100vw - calc(var(--space-lg) * 2));
|
||||
}
|
||||
|
||||
@@ -159,8 +159,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
|
||||
const [isFastMode, setIsFastMode] = useState(false);
|
||||
const [priority, setPriority] = useState<TaskPriority>(DEFAULT_TASK_PRIORITY);
|
||||
const [nodeId, setNodeId] = useState<string | undefined>(undefined);
|
||||
const [branch, setBranch] = useState("");
|
||||
const [baseBranch, setBaseBranch] = useState("");
|
||||
const { nodes } = useNodes();
|
||||
|
||||
// AI Refinement state
|
||||
@@ -439,8 +437,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
|
||||
setIsFastMode(false);
|
||||
setPriority(DEFAULT_TASK_PRIORITY);
|
||||
setNodeId(undefined);
|
||||
setBranch("");
|
||||
setBaseBranch("");
|
||||
setShowDeps(false);
|
||||
setIsModelMenuOpen(false);
|
||||
setModelMenuPosition(null);
|
||||
@@ -514,8 +510,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
|
||||
...(isFastMode ? { executionMode: "fast" } : {}),
|
||||
priority,
|
||||
nodeId,
|
||||
branch: branch.trim() === "" ? undefined : branch.trim(),
|
||||
baseBranch: baseBranch.trim() === "" ? undefined : baseBranch.trim(),
|
||||
});
|
||||
if (createdTask && pendingImages.length > 0) {
|
||||
const failures: string[] = [];
|
||||
@@ -563,8 +557,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
|
||||
isFastMode,
|
||||
priority,
|
||||
nodeId,
|
||||
branch,
|
||||
baseBranch,
|
||||
]);
|
||||
|
||||
const handleKeyDown = useCallback(
|
||||
@@ -1858,33 +1850,6 @@ export function QuickEntryBox({ onCreate, addToast, tasks = [], availableModels,
|
||||
</div>
|
||||
)}
|
||||
|
||||
{showExpandedControls && (
|
||||
<div className="quick-entry-branch-fields" data-testid="quick-entry-branch-fields">
|
||||
<label>
|
||||
<span>Working branch</span>
|
||||
<input
|
||||
className="input"
|
||||
value={branch}
|
||||
onChange={(e) => setBranch(e.target.value)}
|
||||
placeholder="e.g. feature/my-task"
|
||||
data-testid="quick-entry-working-branch"
|
||||
disabled={isSubmitting || isDisabled}
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>Merge target / base branch</span>
|
||||
<input
|
||||
className="input"
|
||||
value={baseBranch}
|
||||
onChange={(e) => setBaseBranch(e.target.value)}
|
||||
placeholder="e.g. main"
|
||||
data-testid="quick-entry-base-branch"
|
||||
disabled={isSubmitting || isDisabled}
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{pendingImages.length > 0 && (
|
||||
<div className="inline-create-previews">
|
||||
{pendingImages.map((img, index) => (
|
||||
|
||||
@@ -724,42 +724,24 @@ describe("QuickEntryBox", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("includes branch and baseBranch when provided", async () => {
|
||||
it("does not render branch fields and does not include branch payload keys", async () => {
|
||||
const { props } = renderQuickEntryBox({});
|
||||
expandQuickEntry();
|
||||
const textarea = screen.getByTestId("quick-entry-input");
|
||||
|
||||
fireEvent.change(textarea, { target: { value: "Task with quick-entry branches" } });
|
||||
fireEvent.change(screen.getByTestId("quick-entry-working-branch"), { target: { value: " feature/quick " } });
|
||||
fireEvent.change(screen.getByTestId("quick-entry-base-branch"), { target: { value: " main " } });
|
||||
expect(screen.queryByTestId("quick-entry-working-branch")).toBeNull();
|
||||
expect(screen.queryByTestId("quick-entry-base-branch")).toBeNull();
|
||||
|
||||
fireEvent.change(textarea, { target: { value: "Task without quick-entry branch controls" } });
|
||||
fireEvent.keyDown(textarea, { key: "Enter" });
|
||||
|
||||
await waitFor(() => {
|
||||
expect(props.onCreate).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
branch: "feature/quick",
|
||||
baseBranch: "main",
|
||||
}),
|
||||
);
|
||||
expect(props.onCreate).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
it("omits branch and baseBranch when branch fields are blank", async () => {
|
||||
const { props } = renderQuickEntryBox({});
|
||||
expandQuickEntry();
|
||||
const textarea = screen.getByTestId("quick-entry-input");
|
||||
|
||||
fireEvent.change(textarea, { target: { value: "Task without quick-entry branches" } });
|
||||
fireEvent.keyDown(textarea, { key: "Enter" });
|
||||
|
||||
await waitFor(() => {
|
||||
expect(props.onCreate).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
branch: undefined,
|
||||
baseBranch: undefined,
|
||||
}),
|
||||
);
|
||||
});
|
||||
const payload = props.onCreate.mock.calls[0]?.[0];
|
||||
expect(payload).not.toHaveProperty("branch");
|
||||
expect(payload).not.toHaveProperty("baseBranch");
|
||||
});
|
||||
|
||||
it("toggles Fast pressed state", () => {
|
||||
|
||||
Reference in New Issue
Block a user