This is an automated email from the ASF dual-hosted git repository.

amitmiran pushed a commit to branch 1.3
in repository https://gitbox.apache.org/repos/asf/superset.git

commit e98239a6215119020083dbdcb8f780537c5138ef
Author: Ville Brofeldt <[email protected]>
AuthorDate: Mon Jun 28 13:35:14 2021 +0300

    fix(native-filters): show human readable time grain label in indicator 
(#15411)
    
    * fix(native-filters): show human readable time grain label in indicator
    
    * lint
    
    * simplify
    
    (cherry picked from commit ddcf4617497ae45302aa4f9ae68aee618326425d)
---
 .../components/TimeGrain/TimeGrainFilterPlugin.tsx        | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx 
b/superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx
index 1cde951..a2c4a18 100644
--- 
a/superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx
+++ 
b/superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx
@@ -24,7 +24,7 @@ import {
   TimeGranularity,
   tn,
 } from '@superset-ui/core';
-import React, { useEffect, useState } from 'react';
+import React, { useEffect, useMemo, useState } from 'react';
 import { Select } from 'src/common/components';
 import { Styles, StyledSelect } from '../common';
 import { PluginFilterTimeGrainProps } from './types';
@@ -52,10 +52,22 @@ export default function PluginFilterTimegrain(
   const { defaultValue, inputRef } = formData;
 
   const [value, setValue] = useState<string[]>(defaultValue ?? []);
+  const durationMap = useMemo(
+    () =>
+      data.reduce(
+        (agg, { duration, name }: { duration: string; name: string }) => ({
+          ...agg,
+          [duration]: name,
+        }),
+        {} as { [key in string]: string },
+      ),
+    [JSON.stringify(data)],
+  );
 
   const handleChange = (values: string[] | string | undefined | null) => {
     const resultValue: string[] = ensureIsArray<string>(values);
     const [timeGrain] = resultValue;
+    const label = timeGrain ? durationMap[timeGrain] : undefined;
 
     const extraFormData: ExtraFormData = {};
     if (timeGrain) {
@@ -65,6 +77,7 @@ export default function PluginFilterTimegrain(
     setDataMask({
       extraFormData,
       filterState: {
+        label,
         value: resultValue.length ? resultValue : null,
       },
     });

Reply via email to