diff --git a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/ConnectData/useConnectData.ts b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/ConnectData/useConnectData.ts index ff10dfe5a2..694cf9c895 100644 --- a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/ConnectData/useConnectData.ts +++ b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/ConnectData/useConnectData.ts @@ -20,7 +20,7 @@ export function useConnectData() { const widget = useSelector((state: AppState) => getWidget(state, widgetId)); - const { columns, primaryColumn } = useColumns(""); + const { columns, primaryColumn } = useColumns("", false); const isLoading = useSelector( getisOneClickBindingConnectingForWidget(widgetId), diff --git a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/index.tsx b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/index.tsx index cc2fe0c910..66d91919de 100644 --- a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/index.tsx +++ b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/index.tsx @@ -10,9 +10,12 @@ type Props = { alias: string; label: string; onSelect: () => void; + isSearcheable: boolean; }; function ColumnDropdown(props: Props) { + const { alias, isSearcheable } = props; + const { disabled, error, @@ -22,7 +25,7 @@ function ColumnDropdown(props: Props) { options, selected, show, - } = useColumns(props.alias); + } = useColumns(alias, isSearcheable); if (show) { return ( diff --git a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/useColumns.tsx b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/useColumns.tsx index 74de339014..ed4b17c6a8 100644 --- a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/useColumns.tsx +++ b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/ColumnDropdown/useColumns.tsx @@ -19,8 +19,9 @@ import { DropdownOption as Option } from "../../CommonControls/DatasourceDropdow import { getisOneClickBindingConnectingForWidget } from "selectors/oneClickBindingSelectors"; import AnalyticsUtil from "utils/AnalyticsUtil"; import { getWidget } from "sagas/selectors"; +import { ALLOWED_SEARCH_DATATYPE } from "pages/Editor/GeneratePage/components/constants"; -export function useColumns(alias: string) { +export function useColumns(alias: string, isSearcheable: boolean) { const { config, propertyName, updateConfig, widgetId } = useContext( WidgetQueryGeneratorFormContext, ); @@ -69,21 +70,29 @@ export function useColumns(alias: string) { }; }); } else if (isArray(columns)) { - return columns.map((column: any) => { - return { - id: column.name, - label: column.name, - value: column.name, - subText: column.type, - icon: ( - - ), - }; - }); + return columns + .filter((column: any) => { + return ( + !isSearcheable || + (column.type && + ALLOWED_SEARCH_DATATYPE.includes(column.type.toLowerCase())) + ); + }) + .map((column: any) => { + return { + id: column.name, + label: column.name, + value: column.name, + subText: column.type, + icon: ( + + ), + }; + }); } else { return []; } diff --git a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/index.tsx b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/index.tsx index 9d62074802..bc993e9763 100644 --- a/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/index.tsx +++ b/app/client/src/components/editorComponents/WidgetQueryGeneratorForm/WidgetSpecificControls/index.tsx @@ -17,6 +17,7 @@ export default function WidgetSpecificControls(props: Props) { @@ -24,13 +25,14 @@ export default function WidgetSpecificControls(props: Props) { } if (props.aliases?.length) { - aliases = props.aliases.map(({ name }) => { + aliases = props.aliases.map(({ isSearcheable, name }) => { const label = name.slice(0, 1).toUpperCase() + name.slice(1); return ( = yield take([ ReduxActionTypes.RUN_ACTION_SUCCESS, ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR, + ReduxActionErrorTypes.RUN_ACTION_ERROR, ]); if ( - runResponse.type === ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR + [ + ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR, + ReduxActionErrorTypes.RUN_ACTION_ERROR, + ].includes(runResponse.type) ) { throw new Error(`Unable to run action: ${actionToRun.name}`); }