mirror of
https://github.com/apache/superset.git
synced 2026-05-07 08:54:23 +00:00
fix(types): fix remaining TypeScript errors in filter components
- Fix AdhocFilterEditPopover deck_slices and layerFilterScope type casts - Fix AdhocFilterEditPopover.test.tsx faultyAdhocFilter expressionType - Fix findByRole options in test (remove unsupported disabled option) - Add proper type for renderPopover props parameter - Import AdhocFilterClass type for FiltersConfigForm onChange callback 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -78,6 +78,7 @@ import {
|
||||
} from 'src/dashboard/types';
|
||||
import DateFilterControl from 'src/explore/components/controls/DateFilterControl';
|
||||
import AdhocFilterControl from 'src/explore/components/controls/FilterControl/AdhocFilterControl';
|
||||
import type AdhocFilterClass from 'src/explore/components/controls/FilterControl/AdhocFilter';
|
||||
import { waitForAsyncData } from 'src/middleware/asyncEvent';
|
||||
import { SingleValueType } from 'src/filters/components/Range/SingleValueType';
|
||||
import { RangeDisplayMode } from 'src/filters/components/Range/types';
|
||||
@@ -1003,7 +1004,7 @@ const FiltersConfigForm = (
|
||||
}
|
||||
datasource={datasetDetails}
|
||||
onChange={(
|
||||
filters: AdhocFilter[],
|
||||
filters: AdhocFilterClass[],
|
||||
) => {
|
||||
setNativeFilterFieldValues(
|
||||
form,
|
||||
|
||||
@@ -39,7 +39,8 @@ const sqlAdhocFilter = new AdhocFilter({
|
||||
});
|
||||
|
||||
const faultyAdhocFilter = new AdhocFilter({
|
||||
expressionType: null,
|
||||
// Use undefined for faulty expressionType to trigger error state
|
||||
expressionType: undefined,
|
||||
subject: null,
|
||||
operator: '>',
|
||||
comparator: '10',
|
||||
@@ -69,7 +70,7 @@ const defaultProps = {
|
||||
datasource: {},
|
||||
};
|
||||
|
||||
const renderPopover = (props = {}) =>
|
||||
const renderPopover = (props: Partial<typeof defaultProps> = {}) =>
|
||||
render(<AdhocFilterEditPopover {...defaultProps} {...props} />, {
|
||||
useRedux: true, // Add Redux provider for context
|
||||
});
|
||||
@@ -123,7 +124,7 @@ describe('AdhocFilterEditPopover', () => {
|
||||
fireEvent.change(sqlInput, { target: { value: 'COUNT(*) > 0' } });
|
||||
|
||||
// Wait for validation to complete
|
||||
await screen.findByRole('button', { name: /save/i, disabled: false });
|
||||
await screen.findByRole('button', { name: /save/i });
|
||||
|
||||
// Click save button
|
||||
const saveButton = screen.getByRole('button', { name: /save/i });
|
||||
|
||||
@@ -178,13 +178,11 @@ export default class AdhocFilterEditPopover extends Component<
|
||||
document.addEventListener('mouseup', this.onMouseUp);
|
||||
|
||||
// Load layer options if deck_slices exist
|
||||
if (
|
||||
this.props.adhocFilter?.deck_slices &&
|
||||
this.props.adhocFilter.deck_slices.length > 0
|
||||
) {
|
||||
const deckSlices = this.props.adhocFilter?.deck_slices as number[] | undefined;
|
||||
if (deckSlices && deckSlices.length > 0) {
|
||||
this.loadLayerOptions(0, 100).then(result => {
|
||||
this.setState({ layerOptions: result.data });
|
||||
const layerFilterScope = this.props.adhocFilter?.layerFilterScope;
|
||||
const layerFilterScope = this.props.adhocFilter?.layerFilterScope as number[] | undefined;
|
||||
if (layerFilterScope) {
|
||||
const selectedLayers = layerFilterScope.map(item => {
|
||||
const layerOption = result.data.find(
|
||||
@@ -192,7 +190,7 @@ export default class AdhocFilterEditPopover extends Component<
|
||||
);
|
||||
return layerOption;
|
||||
});
|
||||
this.setState({ selectedLayers });
|
||||
this.setState({ selectedLayers: selectedLayers.filter(Boolean) as LayerOption[] });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user