mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +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:
@@ -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