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:
parent
fd1d9c6d35
commit
40a2d9e05c
@ -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
|
||||||
};
|
}];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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(() => {
|
||||||
|
|||||||
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user