1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix the back/forward button on topbar (#3719)

* Check only webcontent type === 'window' instead of using webContents.getFocusedWebContents(), as other webview can capture focus

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>

* Update test

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
This commit is contained in:
chh 2021-09-02 14:21:17 +03:00 committed by GitHub
parent fd1d9c6d35
commit 40a2d9e05c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 7 deletions

View File

@ -50,11 +50,12 @@ const goForward = jest.fn();
jest.mock("@electron/remote", () => { jest.mock("@electron/remote", () => {
return { return {
webContents: { webContents: {
getFocusedWebContents: () => { getAllWebContents: () => {
return { return [{
getType: () => "window",
goBack, goBack,
goForward goForward
}; }];
} }
} }
}; };

View File

@ -69,11 +69,11 @@ export const TopBar = observer(({ children, ...rest }: Props) => {
}; };
const goBack = () => { const goBack = () => {
webContents.getFocusedWebContents()?.goBack(); webContents.getAllWebContents().find((webContent) => webContent.getType() === "window")?.goBack();
}; };
const goForward = () => { const goForward = () => {
webContents.getFocusedWebContents()?.goForward(); webContents.getAllWebContents().find((webContent) => webContent.getType() === "window")?.goForward();
}; };
useEffect(() => { useEffect(() => {

View File

@ -26,7 +26,25 @@ import { navigation } from "../navigation";
export function watchHistoryState() { export function watchHistoryState() {
return reaction(() => navigation.location, () => { return reaction(() => navigation.location, () => {
broadcastMessage("history:can-go-back", webContents.getFocusedWebContents()?.canGoBack()); const getAllWebContents = webContents.getAllWebContents();
broadcastMessage("history:can-go-forward", webContents.getFocusedWebContents()?.canGoForward());
const canGoBack = getAllWebContents.some((webContent) => {
if (webContent.getType() === "window") {
return webContent.canGoBack();
}
return false;
});
const canGoForward = getAllWebContents.some((webContent) => {
if (webContent.getType() === "window") {
return webContent.canGoForward();
}
return false;
});
broadcastMessage("history:can-go-back", canGoBack);
broadcastMessage("history:can-go-forward", canGoForward);
}); });
} }