1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/components/dock/dock-tabs.tsx
Sebastian Malton 17291a1709 Remove custom <Icon /> component
- Move to using Material-UI's <Icon /> and <SvgIcon />

- Move to using Material-UI's <Tooltip />

- Move to using Material-UI's <IconButton />

- Switch *.svg webpack importer so we can import then as React
  components

- Export the above to the extension API

- Move to using the Material-UI's component names for menuItem.icon's.
  This means that they are now in PascalCase instead of snake_case

- Remove the Material-UI font

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-15 16:23:52 -04:00

53 lines
1.5 KiB
TypeScript

import { SvgIcon } from "@material-ui/core";
import React, { Fragment } from "react";
import { Install } from "../../svgs";
import { Tabs } from "../tabs/tabs";
import { isCreateResourceTab } from "./create-resource.store";
import { DockTab } from "./dock-tab";
import { IDockTab } from "./dock.store";
import { isEditResourceTab } from "./edit-resource.store";
import { isInstallChartTab } from "./install-chart.store";
import { isLogsTab } from "./log-tab.store";
import { TerminalTab } from "./terminal-tab";
import { isTerminalTab } from "./terminal.store";
import { isUpgradeChartTab } from "./upgrade-chart.store";
interface Props {
tabs: IDockTab[]
autoFocus: boolean
selectedTab: IDockTab
onChangeTab: (tab: IDockTab) => void
}
export const DockTabs = ({ tabs, autoFocus, selectedTab, onChangeTab }: Props) => {
const renderTab = (tab: IDockTab) => {
if (isTerminalTab(tab)) {
return <TerminalTab value={tab} />;
}
if (isCreateResourceTab(tab) || isEditResourceTab(tab)) {
return <DockTab value={tab} icon="edit" />;
}
if (isInstallChartTab(tab) || isUpgradeChartTab(tab)) {
return <DockTab value={tab} icon={<SvgIcon component={Install}/>} />;
}
if (isLogsTab(tab)) {
return <DockTab value={tab} icon="subject" />;
}
};
return (
<Tabs
className="DockTabs"
autoFocus={autoFocus}
value={selectedTab}
onChange={onChangeTab}
>
{tabs.map(tab => <Fragment key={tab.id}>{renderTab(tab)}</Fragment>)}
</Tabs>
);
};