mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
remove static, improve multi-select
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
7755385793
commit
7db5112454
@ -76,16 +76,16 @@ interface NamespaceSelectFilterDependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
export class NonInjectedNamespaceSelectFilter extends React.Component<NamespaceSelectFilterProps & NamespaceSelectFilterDependencies> {
|
class NonInjectedNamespaceSelectFilter extends React.Component<NamespaceSelectFilterProps & NamespaceSelectFilterDependencies> {
|
||||||
static isMultiSelection = observable.box(false);
|
private _isMultiSelection = observable.box(false);
|
||||||
static isMenuOpen = observable.box(false);
|
private _isMenuOpen = observable.box(false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Only updated on every open
|
* Only updated on every open
|
||||||
*/
|
*/
|
||||||
private selected = observable.set<string>();
|
private selected = observable.set<string>();
|
||||||
private didToggle = false;
|
private didToggle = false;
|
||||||
private inputValue: string;
|
@observable private inputValue: string;
|
||||||
|
|
||||||
constructor(props: NamespaceSelectFilterProps & NamespaceSelectFilterDependencies) {
|
constructor(props: NamespaceSelectFilterProps & NamespaceSelectFilterDependencies) {
|
||||||
super(props);
|
super(props);
|
||||||
@ -96,16 +96,20 @@ export class NonInjectedNamespaceSelectFilter extends React.Component<NamespaceS
|
|||||||
return this.props.namespaceStore;
|
return this.props.namespaceStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@computed get isMultiSelection() {
|
||||||
|
return this._isMultiSelection.get();
|
||||||
|
}
|
||||||
|
|
||||||
set isMultiSelection(val: boolean) {
|
set isMultiSelection(val: boolean) {
|
||||||
NonInjectedNamespaceSelectFilter.isMultiSelection.set(val);
|
this._isMultiSelection.set(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@computed get isMenuOpen() {
|
@computed get isMenuOpen() {
|
||||||
return NonInjectedNamespaceSelectFilter.isMenuOpen.get();
|
return this._isMenuOpen.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
set isMenuOpen(val: boolean) {
|
set isMenuOpen(val: boolean) {
|
||||||
NonInjectedNamespaceSelectFilter.isMenuOpen.set(val);
|
this._isMenuOpen.set(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
get maxItems() {
|
get maxItems() {
|
||||||
@ -165,8 +169,13 @@ export class NonInjectedNamespaceSelectFilter extends React.Component<NamespaceS
|
|||||||
};
|
};
|
||||||
|
|
||||||
onInputChange = (value: string, meta: InputActionMeta) => {
|
onInputChange = (value: string, meta: InputActionMeta) => {
|
||||||
if (meta.action === "input-change") this.inputValue = value;
|
if (meta.action === "input-change") {
|
||||||
if (meta.action === "menu-close") this.inputValue = "";
|
this.inputValue = value;
|
||||||
|
} else if (!this.isMultiSelection && meta.action === "set-value") {
|
||||||
|
this.inputValue = value;
|
||||||
|
} else if (meta.action === "menu-close") {
|
||||||
|
this.inputValue = "";
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private isSelectionKey(e: React.KeyboardEvent): boolean {
|
private isSelectionKey(e: React.KeyboardEvent): boolean {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user