Lazy-load GitHub picker queries
This commit is contained in:
@@ -834,6 +834,23 @@ describe("Composer attachments", () => {
|
|||||||
expect(combobox.dataset.anchor).toBe("attached");
|
expect(combobox.dataset.anchor).toBe("attached");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("lazily searches GitHub only after the GitHub combobox opens", async () => {
|
||||||
|
renderComposer();
|
||||||
|
await flushAsyncWork();
|
||||||
|
|
||||||
|
expect(mockClient.searchGitHub).not.toHaveBeenCalled();
|
||||||
|
|
||||||
|
click(queryByTestId("message-input-attach-button")!);
|
||||||
|
click(queryByTestId("message-input-attachment-menu-item-github")!);
|
||||||
|
await findByTestId("composer-github-combobox");
|
||||||
|
|
||||||
|
expect(mockClient.searchGitHub).toHaveBeenCalledWith({
|
||||||
|
cwd: "/repo",
|
||||||
|
query: "",
|
||||||
|
limit: 20,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("closes the GitHub combobox after selecting an item", async () => {
|
it("closes the GitHub combobox after selecting an item", async () => {
|
||||||
renderComposer();
|
renderComposer();
|
||||||
|
|
||||||
|
|||||||
@@ -790,7 +790,7 @@ export function Composer({
|
|||||||
limit: 20,
|
limit: 20,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
enabled: isConnected && !!client && cwd.trim().length > 0,
|
enabled: isGithubPickerOpen && isConnected && !!client && cwd.trim().length > 0,
|
||||||
staleTime: 30_000,
|
staleTime: 30_000,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -465,6 +465,7 @@ function DraftAgentScreenContent({
|
|||||||
},
|
},
|
||||||
enabled:
|
enabled:
|
||||||
isCreateWorktree &&
|
isCreateWorktree &&
|
||||||
|
isBranchOpen &&
|
||||||
isGitDirectory &&
|
isGitDirectory &&
|
||||||
!isNonGitDirectory &&
|
!isNonGitDirectory &&
|
||||||
Boolean(trimmedWorkingDir) &&
|
Boolean(trimmedWorkingDir) &&
|
||||||
|
|||||||
@@ -586,10 +586,15 @@ describe("NewWorkspaceScreen picker payload", () => {
|
|||||||
expect(pickerRow.style.transform).toBe("translateY(-216px)");
|
expect(pickerRow.style.transform).toBe("translateY(-216px)");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("searches only GitHub PRs for the picker", async () => {
|
it("lazily searches only GitHub PRs when the picker opens", async () => {
|
||||||
renderScreen();
|
renderScreen();
|
||||||
await flush();
|
await flush();
|
||||||
|
|
||||||
|
expect(mockClient.searchGitHub).not.toHaveBeenCalled();
|
||||||
|
|
||||||
|
click(await findByTestId("new-workspace-ref-picker-trigger"));
|
||||||
|
await flush();
|
||||||
|
|
||||||
expect(mockClient.searchGitHub).toHaveBeenCalledWith({
|
expect(mockClient.searchGitHub).toHaveBeenCalledWith({
|
||||||
cwd: "/repo",
|
cwd: "/repo",
|
||||||
query: "",
|
query: "",
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ export function NewWorkspaceScreen({
|
|||||||
limit: 20,
|
limit: 20,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
enabled: isConnected && !!client,
|
enabled: pickerOpen && isConnected && !!client,
|
||||||
staleTime: 15_000,
|
staleTime: 15_000,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@ export function NewWorkspaceScreen({
|
|||||||
kinds: ["github-pr"],
|
kinds: ["github-pr"],
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
enabled: isConnected && !!client,
|
enabled: pickerOpen && isConnected && !!client,
|
||||||
staleTime: 30_000,
|
staleTime: 30_000,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user