diff --git a/superset-frontend/src/explore/components/ControlPanelsContainer.jsx b/superset-frontend/src/explore/components/ControlPanelsContainer.jsx
index e7b036edceb730610c3206ab6df4fef4f5dffe88..8c82d460a53791bbedadc96e9784501c3f9b5f3b 100644
--- a/superset-frontend/src/explore/components/ControlPanelsContainer.jsx
+++ b/superset-frontend/src/explore/components/ControlPanelsContainer.jsx
@@ -132,7 +132,6 @@ class ControlPanelsContainer extends React.Component {
if (visibility && !visibility.call(config, this.props, controlData)) {
return null;
}
-
return (
);
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterControl.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterControl.tsx
index 294ce994998b789812f5c1155f4aa2a3cca68489..3e4833d1c13023356e6d83a7ccaa934aef786201 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterControl.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterControl.tsx
@@ -74,7 +74,6 @@ const fetchTimeRange = async (
) => {
const query = rison.encode(timeRange);
const endpoint = `/api/v1/time_range/?q=${query}`;
-
try {
const response = await SupersetClient.get({ endpoint });
const timeRangeString = buildTimeRangeString(
@@ -171,20 +170,23 @@ interface DateFilterLabelProps {
onChange: (timeRange: string) => void;
value?: string;
endpoints?: TimeRangeEndpoints;
+ datasource?: string;
}
export default function DateFilterControl(props: DateFilterLabelProps) {
- const { value = 'Last week', endpoints, onChange } = props;
+ const { value = 'Last week', endpoints, onChange, datasource } = props;
const [actualTimeRange, setActualTimeRange] = useState(value);
const [show, setShow] = useState(false);
const [frame, setFrame] = useState(guessFrame(value));
+ const [isMounted, setIsMounted] = useState(false);
const [timeRangeValue, setTimeRangeValue] = useState(value);
const [validTimeRange, setValidTimeRange] = useState(false);
const [evalResponse, setEvalResponse] = useState(value);
const [tooltipTitle, setTooltipTitle] = useState(value);
useEffect(() => {
+ if (!isMounted) setIsMounted(true);
fetchTimeRange(value, endpoints).then(({ value: actualRange, error }) => {
if (error) {
setEvalResponse(error || '');
@@ -218,6 +220,14 @@ export default function DateFilterControl(props: DateFilterLabelProps) {
});
}, [value]);
+ useEffect(() => {
+ if (isMounted) {
+ onChange('Last week');
+ setTimeRangeValue('Last week');
+ setFrame(guessFrame('Last week'));
+ }
+ }, [datasource]);
+
useEffect(() => {
fetchTimeRange(timeRangeValue, endpoints).then(({ value, error }) => {
if (error) {
@@ -236,8 +246,8 @@ export default function DateFilterControl(props: DateFilterLabelProps) {
}
function onHide() {
- setFrame(guessFrame(value));
setTimeRangeValue(value);
+ setFrame(guessFrame(value));
setShow(false);
}