diff --git a/aim/web/ui/src/pages/ImagesExplore/components/SelectForm/SelectForm.tsx b/aim/web/ui/src/pages/ImagesExplore/components/SelectForm/SelectForm.tsx index 008b3f961c..d1f56fa6ba 100644 --- a/aim/web/ui/src/pages/ImagesExplore/components/SelectForm/SelectForm.tsx +++ b/aim/web/ui/src/pages/ImagesExplore/components/SelectForm/SelectForm.tsx @@ -85,17 +85,22 @@ function SelectForm({ imagesExploreAppModel.abortRequest(); } - function onSelect(event: object, value: ISelectOption[]): void { - const lookup = value.reduce( - (acc: { [key: string]: number }, curr: ISelectOption) => { - acc[curr.label] = ++acc[curr.label] || 0; - return acc; - }, - {}, - ); - onImagesExploreSelectChange( - value.filter((option: ISelectOption) => lookup[option.label] === 0), - ); + function onSelect( + event: React.ChangeEvent<{}>, + value: ISelectOption[], + ): void { + if (event.type === 'click') { + const lookup = value.reduce( + (acc: { [key: string]: number }, curr: ISelectOption) => { + acc[curr.label] = ++acc[curr.label] || 0; + return acc; + }, + {}, + ); + onImagesExploreSelectChange( + value.filter((option: ISelectOption) => lookup[option.label] === 0), + ); + } } function handleDelete(field: string): void { diff --git a/aim/web/ui/src/pages/Metrics/components/SelectForm/SelectForm.tsx b/aim/web/ui/src/pages/Metrics/components/SelectForm/SelectForm.tsx index 1eb3c42ae5..801ccc7b26 100644 --- a/aim/web/ui/src/pages/Metrics/components/SelectForm/SelectForm.tsx +++ b/aim/web/ui/src/pages/Metrics/components/SelectForm/SelectForm.tsx @@ -78,15 +78,22 @@ function SelectForm({ metricAppModel.abortRequest(); } - function onSelect(event: object, value: ISelectOption[]): void { - const lookup = value.reduce( - (acc: { [key: string]: number }, curr: ISelectOption) => { - acc[curr.label] = ++acc[curr.label] || 0; - return acc; - }, - {}, - ); - onMetricsSelectChange(value.filter((option) => lookup[option.label] === 0)); + function onSelect( + event: React.ChangeEvent<{}>, + value: ISelectOption[], + ): void { + if (event.type === 'click') { + const lookup = value.reduce( + (acc: { [key: string]: number }, curr: ISelectOption) => { + acc[curr.label] = ++acc[curr.label] || 0; + return acc; + }, + {}, + ); + onMetricsSelectChange( + value.filter((option) => lookup[option.label] === 0), + ); + } } function handleDelete(field: string): void { diff --git a/aim/web/ui/src/pages/Params/components/SelectForm/SelectForm.tsx b/aim/web/ui/src/pages/Params/components/SelectForm/SelectForm.tsx index 3f14ef7c32..7da117824e 100644 --- a/aim/web/ui/src/pages/Params/components/SelectForm/SelectForm.tsx +++ b/aim/web/ui/src/pages/Params/components/SelectForm/SelectForm.tsx @@ -60,17 +60,22 @@ function SelectForm({ paramsAppModel.abortRequest(); } - function onSelect(event: object, value: ISelectOption[]): void { - const lookup = value.reduce( - (acc: { [key: string]: number }, curr: ISelectOption) => { - acc[curr.label] = ++acc[curr.label] || 0; - return acc; - }, - {}, - ); - onParamsSelectChange( - value?.filter((option: ISelectOption) => lookup[option.label] === 0), - ); + function onSelect( + event: React.ChangeEvent<{}>, + value: ISelectOption[], + ): void { + if (event.type === 'click') { + const lookup = value.reduce( + (acc: { [key: string]: number }, curr: ISelectOption) => { + acc[curr.label] = ++acc[curr.label] || 0; + return acc; + }, + {}, + ); + onParamsSelectChange( + value?.filter((option: ISelectOption) => lookup[option.label] === 0), + ); + } } function handleDelete(field: string): void { @@ -98,6 +103,8 @@ function SelectForm({ function handleSearchInputChange( e: React.ChangeEvent, ): void { + e.preventDefault(); + e.stopPropagation(); setSearchValue(e.target.value); } @@ -111,7 +118,7 @@ function SelectForm({ const open: boolean = !!anchorEl; const id = open ? 'select-metric' : undefined; - + console.log(selectedParamsData); return (
diff --git a/aim/web/ui/src/utils/app/toggleSelectAdvancedMode.ts b/aim/web/ui/src/utils/app/toggleSelectAdvancedMode.ts index 89ee4897c7..6860d4e142 100644 --- a/aim/web/ui/src/utils/app/toggleSelectAdvancedMode.ts +++ b/aim/web/ui/src/utils/app/toggleSelectAdvancedMode.ts @@ -13,24 +13,20 @@ export default function toggleSelectAdvancedMode({ model: IModel; appName: string; }): void { - const modelState: IModel | any = model.getState(); - console.log(modelState); - if (modelState.config?.select) { + const { config, selectFormData } = model.getState(); + if (config) { let query = - modelState.config.select.advancedQuery || - getQueryStringFromSelect( - modelState.config?.select, - modelState.selectFormData.error, - ); + config.select.advancedQuery || + getQueryStringFromSelect(config?.select, selectFormData.error); if (query === '()') { query = ''; } const newConfig = { - ...modelState.config, + ...config, select: { - ...modelState.config.select, + ...config.select, advancedQuery: query, - advancedMode: !modelState.config.select.advancedMode, + advancedMode: !config.select.advancedMode, }, }; @@ -39,7 +35,7 @@ export default function toggleSelectAdvancedMode({ analytics.trackEvent( // @ts-ignore `${ANALYTICS_EVENT_KEYS[appName].useAdvancedSearch} ${ - !modelState.config?.select.advancedMode ? 'on' : 'off' + !config?.select.advancedMode ? 'on' : 'off' }`, ); }