diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 9fdc4dd5c7813..473f75849c9ae 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -93,6 +93,7 @@ "@superset-ui/plugin-chart-table": "^0.15.13", "@superset-ui/plugin-chart-word-cloud": "^0.15.13", "@superset-ui/preset-chart-xy": "^0.15.13", + "@superset-ui/plugin-filter-antd": "^0.15.12", "@types/react-sticky": "^6.0.3", "@vx/responsive": "^0.0.195", "abortcontroller-polyfill": "^1.1.9", diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar.tsx index e9f7c81de451b..cee2e811c238a 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar.tsx @@ -16,9 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -import { styled, t } from '@superset-ui/core'; -import React from 'react'; -import { Form, Input, Dropdown, Menu } from 'src/common/components'; +import { styled, SuperChart, t } from '@superset-ui/core'; +import React, { useState } from 'react'; +import { Form, Dropdown, Menu } from 'src/common/components'; import Button from 'src/components/Button'; import CreateFilterButton from './CreateFilterButton'; import Icon from 'src/components/Icon'; @@ -30,6 +30,7 @@ import { useFilterState, } from './state'; import { Filter } from './types'; +import { getChartDataRequest } from '../../../chart/chartAction'; const Bar = styled.div` display: flex; @@ -75,6 +76,37 @@ const FilterValue: React.FC = ({ filter }) => { const { selectedValues } = useFilterState(filter.id); const setSelectedValues = useFilterSetter(filter.id); + const [state, setState] = useState({ data: undefined }); + + const formData = { + adhoc_filters: [], + datasource: `${filter.targets[0].datasetId}__table`, + extra_filters: [], + granularity_sqla: 'ds', + groupby: ['name'], + label_colors: {}, + metrics: ['count'], + multiSelect: true, + row_limit: 10000, + showSearch: true, + slice_id: 10001, + time_range: 'No filter', + time_range_endpoints: ['inclusive', 'exclusive'], + url_params: {}, + viz_type: 'filter_select', + }; + + if (!state.data) + getChartDataRequest({ + formData, + force: false, + requestParams: { dashboardId: 0 }, + }).then(response => { + setState({ data: response.result[0].data }); + }); + + console.log('filter', filter); + if (selectedValues) { return ( @@ -92,7 +124,13 @@ const FilterValue: React.FC = ({ filter }) => { }} > - +