mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Adding disable state to menu items
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
b5d568486e
commit
9d449f25c6
@ -5,9 +5,10 @@ import { render, fireEvent } from "@testing-library/react";
|
|||||||
import "@testing-library/jest-dom/extend-expect";
|
import "@testing-library/jest-dom/extend-expect";
|
||||||
|
|
||||||
import { DockTabs } from "../dock-tabs";
|
import { DockTabs } from "../dock-tabs";
|
||||||
import { dockStore, TabKind } from "../dock.store";
|
import { dockStore, IDockTab, TabKind } from "../dock.store";
|
||||||
import { createResourceTab } from "../create-resource.store";
|
import { createResourceTab } from "../create-resource.store";
|
||||||
import { createTerminalTab } from "../terminal.store";
|
import { createTerminalTab } from "../terminal.store";
|
||||||
|
import { observable } from "mobx";
|
||||||
|
|
||||||
const onChangeTab = jest.fn();
|
const onChangeTab = jest.fn();
|
||||||
const getComponent = () => (
|
const getComponent = () => (
|
||||||
@ -126,4 +127,33 @@ describe("<DockTabs />", () => {
|
|||||||
TabKind.TERMINAL
|
TabKind.TERMINAL
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("disables 'Close All' & 'Close Other' items if only 1 tab available", () => {
|
||||||
|
dockStore.tabs = observable.array<IDockTab>([{
|
||||||
|
id: "terminal", kind: TabKind.TERMINAL, title: "Terminal"
|
||||||
|
}]);
|
||||||
|
const { container, getByText } = renderTabs();
|
||||||
|
const tab = container.querySelector(".Tab");
|
||||||
|
|
||||||
|
fireEvent.contextMenu(tab);
|
||||||
|
const closeAll = getByText("Close all tabs");
|
||||||
|
const closeOthers = getByText("Close other tabs");
|
||||||
|
|
||||||
|
expect(closeAll).toHaveClass("disabled");
|
||||||
|
expect(closeOthers).toHaveClass("disabled");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("disables 'Close To The Right' item if last tab clicked", () => {
|
||||||
|
dockStore.tabs = observable.array<IDockTab>([
|
||||||
|
{ id: "terminal", kind: TabKind.TERMINAL, title: "Terminal" },
|
||||||
|
{ id: "logs", kind: TabKind.POD_LOGS, title: "Pod Logs" },
|
||||||
|
]);
|
||||||
|
const { container, getByText } = renderTabs();
|
||||||
|
const tab = container.querySelectorAll(".Tab")[1];
|
||||||
|
|
||||||
|
fireEvent.contextMenu(tab);
|
||||||
|
const command = getByText("Close tabs to the right");
|
||||||
|
|
||||||
|
expect(command).toHaveClass("disabled");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -29,7 +29,10 @@ export class DockTab extends React.Component<DockTabProps> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderMenu() {
|
renderMenu() {
|
||||||
const { closeTab, closeAllTabs, closeOtherTabs, closeTabsToTheRight } = dockStore;
|
const { closeTab, closeAllTabs, closeOtherTabs, closeTabsToTheRight, tabs, getTabIndex } = dockStore;
|
||||||
|
const closeAllDisabled = tabs.length === 1;
|
||||||
|
const closeOtherDisabled = tabs.length === 1;
|
||||||
|
const closeRightDisabled = getTabIndex(this.tabId) === tabs.length - 1;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Menu
|
<Menu
|
||||||
@ -44,13 +47,13 @@ export class DockTab extends React.Component<DockTabProps> {
|
|||||||
<MenuItem onClick={() => closeTab(this.tabId)}>
|
<MenuItem onClick={() => closeTab(this.tabId)}>
|
||||||
<Trans>Close</Trans>
|
<Trans>Close</Trans>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={() => closeAllTabs()}>
|
<MenuItem onClick={() => closeAllTabs()} disabled={closeAllDisabled}>
|
||||||
<Trans>Close all tabs</Trans>
|
<Trans>Close all tabs</Trans>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={() => closeOtherTabs(this.tabId)}>
|
<MenuItem onClick={() => closeOtherTabs(this.tabId)} disabled={closeOtherDisabled}>
|
||||||
<Trans>Close other tabs</Trans>
|
<Trans>Close other tabs</Trans>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={() => closeTabsToTheRight(this.tabId)}>
|
<MenuItem onClick={() => closeTabsToTheRight(this.tabId)} disabled={closeRightDisabled}>
|
||||||
<Trans>Close tabs to the right</Trans>
|
<Trans>Close tabs to the right</Trans>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user