diff --git a/src/renderer/components/+apps/apps.tsx b/src/renderer/components/+apps/apps.tsx index 5ee297a1c0..8ee4db3b72 100644 --- a/src/renderer/components/+apps/apps.tsx +++ b/src/renderer/components/+apps/apps.tsx @@ -10,7 +10,7 @@ import { namespaceStore } from "../+namespaces/namespace.store"; @observer export class Apps extends React.Component { static get tabRoutes(): TabRoute[] { - const query = namespaceStore.getContextParams(); + const query = namespaceStore.contextParams; return [ { title: Charts, @@ -32,8 +32,8 @@ export class Apps extends React.Component { return ( - {tabRoutes.map((route, index) => )} - + {tabRoutes.map((route, index) => )} + ) diff --git a/src/renderer/components/+config/config.tsx b/src/renderer/components/+config/config.tsx index 17c0c5c575..fe440d1959 100644 --- a/src/renderer/components/+config/config.tsx +++ b/src/renderer/components/+config/config.tsx @@ -20,7 +20,7 @@ export const clusterIssuersURL = buildURL("/clusterissuers"); @observer export class Config extends React.Component { static get tabRoutes(): TabRoute[] { - const query = namespaceStore.getContextParams() + const query = namespaceStore.contextParams const routes: TabRoute[] = [] if (isAllowedResource("configmaps")) { routes.push({ @@ -70,8 +70,8 @@ export class Config extends React.Component { return ( - {tabRoutes.map((route, index) => )} - + {tabRoutes.map((route, index) => )} + ) diff --git a/src/renderer/components/+namespaces/namespace-select.scss b/src/renderer/components/+namespaces/namespace-select.scss index f56b8005cc..b39e8cc008 100644 --- a/src/renderer/components/+namespaces/namespace-select.scss +++ b/src/renderer/components/+namespaces/namespace-select.scss @@ -14,9 +14,22 @@ text-overflow: ellipsis; overflow: hidden; } + + &__option { + &--is-selected { + .Icon { + visibility: visible!important; + } + } + + .Icon { + visibility: hidden; + } + } + } } .NamespaceSelectMenu { @include namespaceSelectCommon; -} \ No newline at end of file +} diff --git a/src/renderer/components/+namespaces/namespace-select.tsx b/src/renderer/components/+namespaces/namespace-select.tsx index 4d4dcc22da..b8d1f75978 100644 --- a/src/renderer/components/+namespaces/namespace-select.tsx +++ b/src/renderer/components/+namespaces/namespace-select.tsx @@ -5,18 +5,16 @@ import { computed } from "mobx"; import { observer } from "mobx-react"; import { t, Trans } from "@lingui/macro"; import { Select, SelectOption, SelectProps } from "../select"; -import { cssNames, noop } from "../../utils"; +import ReactSelect, { ActionMeta, components, OptionTypeBase, ValueType } from "react-select" +import { autobind, cssNames, noop } from "../../utils"; import { Icon } from "../icon"; import { namespaceStore } from "./namespace.store"; import { _i18n } from "../../i18n"; -import { FilterIcon } from "../item-object-list/filter-icon"; -import { FilterType } from "../item-object-list/page-filters.store"; interface Props extends SelectProps { showIcons?: boolean; showClusterOption?: boolean; // show cluster option on the top (default: false) clusterOptionLabel?: React.ReactNode; // label for cluster option (default: "Cluster") - customizeOptions?(nsOptions: SelectOption[]): SelectOption[]; } const defaultProps: Partial = { @@ -44,12 +42,15 @@ export class NamespaceSelect extends React.Component { } @computed get options(): SelectOption[] { - const { customizeOptions, showClusterOption, clusterOptionLabel } = this.props; - let options: SelectOption[] = namespaceStore.items.map(ns => ({ value: ns.getName() })); - options = customizeOptions ? customizeOptions(options) : options; + const options: SelectOption[] = namespaceStore.items + .map(ns => ({ value: ns.getName() })) + .map(opt => ({ ...opt, label: this.formatOptionLabel(opt) })) + + const { showClusterOption, clusterOptionLabel } = this.props; if (showClusterOption) { options.unshift({ value: null, label: clusterOptionLabel }); } + return options; } @@ -58,7 +59,7 @@ export class NamespaceSelect extends React.Component { const { value, label } = option; return label || ( <> - {showIcons && } + {showIcons && } {value} ); @@ -70,7 +71,7 @@ export class NamespaceSelect extends React.Component {