From 43937aae2dd721b145441ce5c6357753fc949a73 Mon Sep 17 00:00:00 2001
From: Ariya Hidayat <ariya@metabase.com>
Date: Tue, 10 May 2022 07:38:53 -0700
Subject: [PATCH] Derive parameter operator, not passing it as a prop (#22570)

---
 .../metabase/parameters/components/ParameterValueWidget.jsx  | 2 --
 .../widgets/ParameterFieldWidget/ParameterFieldWidget.jsx    | 5 +++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
index f41fd69ca64..b74730f6c1b 100644
--- a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
+++ b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
@@ -19,7 +19,6 @@ import { fetchField, fetchFieldValues } from "metabase/redux/metadata";
 import { getMetadata } from "metabase/selectors/metadata";
 
 import { getParameterIconName } from "metabase/parameters/utils/ui";
-import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators";
 import { isDashboardParameterWithoutMapping } from "metabase/parameters/utils/dashboards";
 import { hasFieldValues } from "metabase/parameters/utils/fields";
 
@@ -306,7 +305,6 @@ function Widget({
         setValue={setValue}
         isEditing={isEditing}
         focusChanged={onFocusChanged}
-        operator={deriveFieldOperatorFromParameter(parameter)}
       />
     );
   } else {
diff --git a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
index 8e54fa1429e..864b6c37704 100644
--- a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
+++ b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
@@ -12,6 +12,8 @@ import Button from "metabase/core/components/Button";
 
 import { normalizeValue } from "./normalizeValue";
 
+import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators";
+
 import cx from "classnames";
 import {
   getFilterArgumentFormatOptions,
@@ -23,7 +25,6 @@ const propTypes = {
   dashboard: PropTypes.object,
   fields: PropTypes.array.isRequired,
   isEditing: PropTypes.bool.isRequired,
-  operator: PropTypes.object.isRequired,
   parameter: PropTypes.object.isRequired,
   parameters: PropTypes.array.isRequired,
   parentFocusChanged: PropTypes.bool,
@@ -69,11 +70,11 @@ export default class ParameterFieldWidget extends Component {
       isEditing,
       fields,
       parentFocusChanged,
-      operator,
       parameter,
       parameters,
       dashboard,
     } = this.props;
+    const operator = deriveFieldOperatorFromParameter(parameter);
     const { isFocused, widgetWidth } = this.state;
     const { numFields = 1, multi = false, verboseName } = operator || {};
     const savedValue = normalizeValue(this.props.value);
-- 
GitLab