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

review changes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-04-16 08:02:53 +03:00
parent 3fb9599ca0
commit f7c263490b
6 changed files with 40 additions and 23 deletions

View File

@ -49,8 +49,8 @@ export class KubernetesCluster implements CatalogEntity {
{
icon: "settings",
title: "Settings",
onClick: async () => context.navigate(`/entity/${this.metadata.uid}/settings`),
onlyVisibleForSource: "local"
onlyVisibleForSource: "local",
onClick: async () => context.navigate(`/entity/${this.metadata.uid}/settings`)
},
{
icon: "delete",

View File

@ -16,10 +16,6 @@ export class CatalogEntityRegistry {
return Array.from(this.sources.values()).flat();
}
getById(id: string) {
return this.items.find((entity) => entity.metadata.uid === id);
}
getItemsForApiKind<T extends CatalogEntity>(apiVersion: string, kind: string): T[] {
const items = this.items.filter((item) => item.apiVersion === apiVersion && item.kind === kind);

View File

@ -26,7 +26,7 @@ export interface RegisteredEntitySetting extends EntitySettingRegistration {
export class EntitySettingRegistry extends BaseRegistry<EntitySettingRegistration, RegisteredEntitySetting> {
getRegisteredItem(item: EntitySettingRegistration): RegisteredEntitySetting {
return {
id: item.id || item.title.toLowerCase().replace(/[^0-9a-zA-Z]+/g, "-"),
id: item.id || item.title.toLowerCase(),
...item,
};
}
@ -36,7 +36,7 @@ export class EntitySettingRegistry extends BaseRegistry<EntitySettingRegistratio
return item.kind === kind && item.apiVersions.includes(apiVersion);
});
if (source && source !== "") {
if (source) {
return items.filter((item) => {
return !item.source || item.source === source;
});

View File

@ -12,7 +12,6 @@ import { catalogEntityRegistry } from "../../api/catalog-entity-registry";
import { entitySettingRegistry } from "../../../extensions/registries";
import { EntitySettingsRouteParams } from "./entity-settings.route";
interface Props extends RouteComponentProps<EntitySettingsRouteParams> {
}
@ -37,7 +36,7 @@ export class EntitySettings extends React.Component<Props> {
async componentDidMount() {
const { hash } = navigation.location;
this.activeTab = this.menuItems[0]?.id;
this.ensureActiveTab();
document.getElementById(hash.slice(1))?.scrollIntoView();
}
@ -52,23 +51,35 @@ export class EntitySettings extends React.Component<Props> {
<h2>{this.entity.metadata.name}</h2>
<Tabs className="flex column" scrollable={false} onChange={this.onTabChange} value={this.activeTab}>
<div className="header">Settings</div>
{ this.menuItems.map((setting) => {
return <Tab key={setting.id} value={setting.id} label={setting.title} data-testid={`${setting.id}-tab`} />;
})}
{ this.menuItems.map((setting) => (
<Tab
key={setting.id}
value={setting.id}
label={setting.title}
data-testid={`${setting.id}-tab`}
/>
))}
</Tabs>
</>
);
}
ensureActiveTab() {
if (!this.activeTab) {
this.activeTab = this.menuItems[0]?.id;
}
}
render() {
if (!this.entity) return null;
if (!this.entity) {
console.error("entity not found", this.entityId);
const activeSetting = this.menuItems.find((setting) => setting.id === this.activeTab);
if (!activeSetting) {
return null;
}
this.ensureActiveTab();
const activeSetting = this.menuItems.find((setting) => setting.id === this.activeTab);
return (
<PageLayout
className="CatalogEntitySettings"

View File

@ -11,6 +11,17 @@ import { ClusterKubeconfig } from "./components/cluster-kubeconfig";
import { entitySettingRegistry } from "../../../extensions/registries";
import { CatalogEntity } from "../../api/catalog-entity";
function getClusterForEntity(entity: CatalogEntity) {
const cluster = clusterStore.getById(entity.metadata.uid);
if (!cluster?.enabled) {
return null;
}
return cluster;
}
entitySettingRegistry.add([
{
apiVersions: ["entity.k8slens.dev/v1alpha1"],
@ -19,7 +30,7 @@ entitySettingRegistry.add([
title: "General",
components: {
View: (props: { entity: CatalogEntity }) => {
const cluster = clusterStore.enabledClustersList.find((cluster) => cluster.id === props.entity.metadata.uid);
const cluster = getClusterForEntity(props.entity);
if (!cluster) {
return null;
@ -44,7 +55,7 @@ entitySettingRegistry.add([
title: "Proxy",
components: {
View: (props: { entity: CatalogEntity }) => {
const cluster = clusterStore.enabledClustersList.find((cluster) => cluster.id === props.entity.metadata.uid);
const cluster = getClusterForEntity(props.entity);
if (!cluster) {
return null;
@ -64,7 +75,7 @@ entitySettingRegistry.add([
title: "Terminal",
components: {
View: (props: { entity: CatalogEntity }) => {
const cluster = clusterStore.enabledClustersList.find((cluster) => cluster.id === props.entity.metadata.uid);
const cluster = getClusterForEntity(props.entity);
if (!cluster) {
return null;
@ -84,7 +95,7 @@ entitySettingRegistry.add([
title: "Namespaces",
components: {
View: (props: { entity: CatalogEntity }) => {
const cluster = clusterStore.enabledClustersList.find((cluster) => cluster.id === props.entity.metadata.uid);
const cluster = getClusterForEntity(props.entity);
if (!cluster) {
return null;
@ -105,7 +116,7 @@ entitySettingRegistry.add([
title: "Metrics",
components: {
View: (props: { entity: CatalogEntity }) => {
const cluster = clusterStore.enabledClustersList.find((cluster) => cluster.id === props.entity.metadata.uid);
const cluster = getClusterForEntity(props.entity);
if (!cluster) {
return null;

View File

@ -48,7 +48,6 @@
padding: 6px 10px;
overflow-wrap: anywhere;
color: var(--textColorAccent);
text-transform: uppercase;
font-weight: 600;
}