From 662a07500ea006519e8a6c9e1e31c25db3331ff0 Mon Sep 17 00:00:00 2001
From: Tom Robinson <tlrobinson@gmail.com>
Date: Mon, 8 Oct 2018 21:31:49 -0700
Subject: [PATCH] Enable search for currency setting

---
 .../components/database/ColumnItem.jsx        |  6 +++---
 .../settings/ChartSettingSelect.jsx           | 19 ++++++++++++-------
 .../visualizations/lib/settings/column.js     |  2 ++
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx b/frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx
index c62ee280508..17692281770 100644
--- a/frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx
+++ b/frontend/src/metabase/admin/datamodel/components/database/ColumnItem.jsx
@@ -249,14 +249,14 @@ export class SpecialTypeAndTargetPicker extends Component {
               className,
             )}
             triggerClasses={this.props.triggerClasses}
-            placeholder={t`Select a currency type`}
-            onChange={({ target }) => this.onCurrencyTypeChange(target.value)}
-            searchProp="name"
             value={
               (field.settings && field.settings.currency) ||
               getGlobalSettingsForColumn(field).currency ||
               "USD"
             }
+            onChange={({ target }) => this.onCurrencyTypeChange(target.value)}
+            placeholder={t`Select a currency type`}
+            searchProp="name"
             searchCaseSensitive={false}
           >
             {Object.values(currency).map(c => (
diff --git a/frontend/src/metabase/visualizations/components/settings/ChartSettingSelect.jsx b/frontend/src/metabase/visualizations/components/settings/ChartSettingSelect.jsx
index 88510b0ee98..ac6e8522396 100644
--- a/frontend/src/metabase/visualizations/components/settings/ChartSettingSelect.jsx
+++ b/frontend/src/metabase/visualizations/components/settings/ChartSettingSelect.jsx
@@ -1,6 +1,6 @@
 import React from "react";
 
-import Select from "metabase/components/Select.jsx";
+import Select, { Option } from "metabase/components/Select.jsx";
 
 import _ from "underscore";
 import cx from "classnames";
@@ -13,6 +13,7 @@ const ChartSettingSelect = ({
   className,
   placeholder,
   placeholderNoOptions,
+  ...props
 }) => (
   <Select
     className={cx(className, "block flex-full", {
@@ -20,14 +21,18 @@ const ChartSettingSelect = ({
         options.length === 0 ||
         (options.length === 1 && options[0].value === value),
     })}
-    value={_.findWhere(options, { value })}
-    options={options}
-    optionNameFn={o => o.name}
-    optionValueFn={o => o.value}
-    onChange={onChange}
+    value={value}
+    onChange={e => onChange(e.target.value)}
     placeholder={options.length === 0 ? placeholderNoOptions : placeholder}
     isInitiallyOpen={isInitiallyOpen}
-  />
+    {...props}
+  >
+    {options.map(option => (
+      <Option key={option.value} name={option.name} value={option.value}>
+        {option.name}
+      </Option>
+    ))}
+  </Select>
 );
 
 export default ChartSettingSelect;
diff --git a/frontend/src/metabase/visualizations/lib/settings/column.js b/frontend/src/metabase/visualizations/lib/settings/column.js
index 4133d9527ed..4c487d5020d 100644
--- a/frontend/src/metabase/visualizations/lib/settings/column.js
+++ b/frontend/src/metabase/visualizations/lib/settings/column.js
@@ -295,6 +295,8 @@ export const NUMBER_COLUMN_SETTINGS = {
         name: currency.name,
         value: currency.code,
       })),
+      searchProp: "name",
+      searchCaseSensitive: false,
     },
     default: "USD",
     getHidden: (column: Column, settings: ColumnSettings) =>
-- 
GitLab