Compare commits

...

1 Commits

Author SHA1 Message Date
Mehmet Salih Yavuz
07af6c7880 Revert "fix(DateFilterControl): remove modal overlay style to fix z-index iss…"
This reverts commit 027b25e6b8.
2025-09-26 16:44:04 +03:00
4 changed files with 51 additions and 1 deletions

View File

@@ -31,6 +31,7 @@ import {
Button,
Constants,
Divider,
Modal,
Tooltip,
Select,
} from '@superset-ui/core/components';
@@ -38,6 +39,7 @@ import ControlHeader from 'src/explore/components/ControlHeader';
import { Icons } from '@superset-ui/core/components/Icons';
import { useDebouncedEffect } from 'src/explore/exploreUtils';
import { noOp } from 'src/utils/common';
import { ModalTitleWithIcon } from 'src/components/ModalTitleWithIcon';
import ControlPopover from '../ControlPopover/ControlPopover';
import { DateFilterControlProps, FrameType } from './types';
@@ -144,6 +146,7 @@ export default function DateFilterLabel(props: DateFilterControlProps) {
onChange,
onOpenPopover = noOp,
onClosePopover = noOp,
overlayStyle = 'Popover',
isOverflowingFilterBar = false,
} = props;
const defaultTimeFilter = useDefaultTimeFilter();
@@ -381,10 +384,46 @@ export default function DateFilterLabel(props: DateFilterControlProps) {
</ControlPopover>
);
const modalContent = (
<>
<Tooltip placement="top" title={tooltipTitle}>
<DateLabel
name={name}
aria-labelledby={`filter-name-${props.name}`}
aria-describedby={`date-label-${props.name}`}
onClick={toggleOverlay}
label={actualTimeRange}
isActive={show}
isPlaceholder={actualTimeRange === NO_TIME_RANGE}
data-test={DateFilterTestKey.ModalOverlay}
ref={labelRef}
/>
</Tooltip>
{/* the zIndex value is from trying so that the Modal doesn't overlay the AdhocFilter */}
<Modal
title={
<ModalTitleWithIcon
className="text"
isEditMode
title={t('Edit time range')}
/>
}
name={t('Edit time range')}
show={show}
onHide={toggleOverlay}
width="600px"
hideFooter
zIndex={1030}
>
{overlayContent}
</Modal>
</>
);
return (
<>
<ControlHeader {...props} />
{popoverContent}
{overlayStyle === 'Modal' ? modalContent : popoverContent}
</>
);
}

View File

@@ -58,6 +58,15 @@ test('DateFilter with default props', () => {
).toBeInTheDocument();
});
test('DateFilter should be applied the overlayStyle props', () => {
render(setup({ onChange: () => {}, overlayStyle: 'Modal' }));
// should be Modal as overlay
userEvent.click(screen.getByText(NO_TIME_RANGE));
expect(
screen.getByTestId(DateFilterTestKey.ModalOverlay),
).toBeInTheDocument();
});
test('DateFilter should be applied the global config time_filter from the store', () => {
render(
setup(

View File

@@ -112,5 +112,6 @@ export interface DateFilterControlProps {
value?: string;
onOpenPopover?: () => void;
onClosePopover?: () => void;
overlayStyle?: 'Modal' | 'Popover';
isOverflowingFilterBar?: boolean;
}

View File

@@ -52,6 +52,7 @@ export const useDatePickerInAdhocFilter = ({
value={timeRange}
name="time_range"
onChange={onTimeRangeChange}
overlayStyle="Modal"
/>
</>
) : undefined;