You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by en...@apache.org on 2025/01/27 20:03:03 UTC
(superset) 01/02: Lint fix
This is an automated email from the ASF dual-hosted git repository.
enzomartellucci pushed a commit to branch refactor/antd5-radio
in repository https://gitbox.apache.org/repos/asf/superset.git
commit a62bb6d3dbfaf46c157b9f0de4da04569f410fa1
Author: Enzo Martellucci <en...@gmail.com>
AuthorDate: Mon Jan 27 15:26:49 2025 +0100
Lint fix
---
.../cypress-base/cypress/support/e2e.ts | 2 +-
.../Chart/DrillBy/useDisplayModeToggle.tsx | 25 +++++++++----------
superset-frontend/src/components/Radio/index.tsx | 29 ++++++++++++++--------
.../header-renderers/HeaderWithRadioGroup.tsx | 1 +
.../DateFilterControl/components/CalendarFrame.tsx | 12 ++++-----
.../DateFilterControl/components/CommonFrame.tsx | 2 +-
.../components/CurrentCalendarFrame.tsx | 2 +-
.../DateFilterControl/tests/CalendarFrame.test.tsx | 14 ++++++++---
.../controls/DateFilterControl/utils/constants.ts | 14 +++++------
9 files changed, 59 insertions(+), 42 deletions(-)
diff --git a/superset-frontend/cypress-base/cypress/support/e2e.ts b/superset-frontend/cypress-base/cypress/support/e2e.ts
index 4a471c87d1..87229278b7 100644
--- a/superset-frontend/cypress-base/cypress/support/e2e.ts
+++ b/superset-frontend/cypress-base/cypress/support/e2e.ts
@@ -169,7 +169,7 @@ Cypress.Commands.add('login', () => {
}).then(response => {
if (response.status === 302) {
// If there's a redirect, follow it manually
- const redirectUrl = response.headers['location'];
+ const redirectUrl = response.headers.location;
cy.request({
method: 'GET',
url: redirectUrl,
diff --git a/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx b/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
index 48a90aafc7..acc87a75b5 100644
--- a/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
@@ -26,11 +26,11 @@ export const useDisplayModeToggle = () => {
const [drillByDisplayMode, setDrillByDisplayMode] = useState<DrillByType>(
DrillByType.Chart,
);
-const customButtons: CheckboxGroupProps<number>['options'] = [
- { label: t('Chart'), value: DrillByType.Chart },
- { label: t('Table'), value: DrillByType.Table },
-];
- const displayModeToggle = useMemo(
+ const customButtons: CheckboxGroupProps<number>['options'] = [
+ { label: t('Chart'), value: DrillByType.Chart },
+ { label: t('Table'), value: DrillByType.Table },
+ ];
+ const displayModeToggle = useMemo(
() => (
<div
css={(theme: SupersetTheme) => css`
@@ -42,21 +42,20 @@ const customButtons: CheckboxGroupProps<number>['options'] = [
}
`}
data-test="drill-by-display-toggle"
- >
+ >
<Radio.Group
onChange={({ target: { value } }) => {
setDrillByDisplayMode(value);
}}
- defaultValue={DrillByType.Chart}
- options={customButtons}
- value={drillByDisplayMode}
- optionType="button"
- buttonStyle="outline"
- />
+ defaultValue={DrillByType.Chart}
+ options={customButtons}
+ value={drillByDisplayMode}
+ optionType="button"
+ buttonStyle="outline"
+ />
</div>
),
[drillByDisplayMode],
);
return { displayModeToggle, drillByDisplayMode };
};
-
diff --git a/superset-frontend/src/components/Radio/index.tsx b/superset-frontend/src/components/Radio/index.tsx
index ce87e5b45c..70643fe5b0 100644
--- a/superset-frontend/src/components/Radio/index.tsx
+++ b/superset-frontend/src/components/Radio/index.tsx
@@ -18,25 +18,34 @@
*/
import { Radio as Antd5Radio } from 'antd-v5';
import React from 'react';
-import type { RadioChangeEvent, RadioGroupProps, RadioProps } from 'antd-v5';
+import type {
+ RadioChangeEvent,
+ RadioGroupProps,
+ RadioProps,
+ CheckboxOptionType,
+} from 'antd-v5';
import type { CheckboxGroupProps } from 'antd-v5/es/checkbox';
const verticalStyle: React.CSSProperties = {
display: 'flex',
flexDirection: 'column',
- gap: '15px'
-}
+ gap: '15px',
+};
// Wrapper for GroupVertical
-const VerticalGroup = (props: RadioGroupProps) => {
- return (
- <Antd5Radio.Group {...props} style={{ ...verticalStyle, ...props.style }} />)
-}
+const VerticalGroup = (props: RadioGroupProps) => (
+ <Antd5Radio.Group {...props} style={{ ...verticalStyle, ...props.style }} />
+);
-export type { RadioChangeEvent, RadioGroupProps, RadioProps, CheckboxGroupProps };
+export type {
+ RadioChangeEvent,
+ RadioGroupProps,
+ RadioProps,
+ CheckboxGroupProps,
+ CheckboxOptionType,
+};
export const Radio = Object.assign(Antd5Radio, {
Group: Antd5Radio.Group,
Button: Antd5Radio.Button,
- VerticalGroup: VerticalGroup
+ VerticalGroup,
});
-
diff --git a/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx b/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
index 352f0f807f..6b9c26020a 100644
--- a/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
+++ b/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
@@ -21,6 +21,7 @@ import { css, useTheme } from '@superset-ui/core';
import { Radio } from 'src/components/Radio';
import Icons from 'src/components/Icons';
import Popover from 'src/components/Popover';
+
export interface HeaderWithRadioGroupProps {
headerTitle: string;
groupTitle: string;
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CalendarFrame.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CalendarFrame.tsx
index 56f369159c..7f792bf4c4 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CalendarFrame.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CalendarFrame.tsx
@@ -45,12 +45,12 @@ export function CalendarFrame({ onChange, value }: FrameComponentProps) {
<div className="section-title">
{t('Configure Time Range: Previous...')}
</div>
- <Radio.VerticalGroup
- size='large'
- value={value}
- onChange={(e: any) => onChange(e.target.value)}
- options={CALENDAR_RANGE_OPTIONS}
- />
+ <Radio.VerticalGroup
+ size="large"
+ value={value}
+ onChange={(e: any) => onChange(e.target.value)}
+ options={CALENDAR_RANGE_OPTIONS}
+ />
</>
);
}
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CommonFrame.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CommonFrame.tsx
index 24a0c54d9f..21b301f32b 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CommonFrame.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CommonFrame.tsx
@@ -42,7 +42,7 @@ export function CommonFrame(props: FrameComponentProps) {
{t('Configure Time Range: Last...')}
</div>
<Radio.VerticalGroup
- size='large'
+ size="large"
value={commonRange}
onChange={(e: any) => props.onChange(e.target.value)}
options={COMMON_RANGE_OPTIONS}
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CurrentCalendarFrame.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CurrentCalendarFrame.tsx
index 4f1babfd5a..5dfd7eef29 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/components/CurrentCalendarFrame.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/components/CurrentCalendarFrame.tsx
@@ -42,7 +42,7 @@ export function CurrentCalendarFrame({ onChange, value }: FrameComponentProps) {
{t('Configure Time Range: Current...')}
</div>
<Radio.VerticalGroup
- size='large'
+ size="large"
value={value}
onChange={(e: any) => {
let newValue = e.target.value;
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CalendarFrame.test.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CalendarFrame.test.tsx
index 163ce4caf1..d82da2a30c 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CalendarFrame.test.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/tests/CalendarFrame.test.tsx
@@ -42,7 +42,13 @@ describe('CalendarFrame', () => {
const radios = screen.getAllByRole('radio');
expect(radios).toHaveLength(CALENDAR_RANGE_OPTIONS.length);
CALENDAR_RANGE_OPTIONS.forEach(option => {
- expect(screen.getByText(option.label)).toBeInTheDocument();
+ if (
+ typeof option === 'object' &&
+ 'label' in option &&
+ typeof option.label === 'string'
+ ) {
+ expect(screen.getByText(option.label)).toBeInTheDocument();
+ }
});
});
@@ -56,7 +62,7 @@ describe('CalendarFrame', () => {
);
const secondOption = CALENDAR_RANGE_OPTIONS[1];
- const radio = screen.getByLabelText(secondOption.label);
+ const radio = screen.getByLabelText(secondOption.label as string);
fireEvent.click(radio);
expect(mockOnChange).toHaveBeenCalledWith(secondOption.value);
@@ -85,6 +91,8 @@ describe('CalendarFrame', () => {
const thirdOption = CALENDAR_RANGE_OPTIONS[2];
expect(thirdOption.value).toBe(PreviousCalendarQuarter);
- expect(screen.getByLabelText(thirdOption.label)).toBeInTheDocument();
+ expect(
+ screen.getByLabelText(thirdOption.label as string),
+ ).toBeInTheDocument();
});
});
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts b/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
index 584f420428..e76b778fc6 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
@@ -32,7 +32,7 @@ import {
CurrentQuarter,
CurrentDay,
} from 'src/explore/components/controls/DateFilterControl/types';
-import { CheckboxGroupProps } from 'src/components/Radio';
+import { CheckboxOptionType } from 'src/components/Radio';
import { extendedDayjs } from 'src/utils/dates';
export const FRAME_OPTIONS: SelectOptionType[] = [
@@ -44,7 +44,7 @@ export const FRAME_OPTIONS: SelectOptionType[] = [
{ value: 'No filter', label: t('No filter') },
];
-export const COMMON_RANGE_OPTIONS: CheckboxGroupProps<string>['options'] = [
+export const COMMON_RANGE_OPTIONS: CheckboxOptionType[] = [
{ value: 'Last day', label: t('Last day') },
{ value: 'Last week', label: t('Last week') },
{ value: 'Last month', label: t('Last month') },
@@ -52,20 +52,20 @@ export const COMMON_RANGE_OPTIONS: CheckboxGroupProps<string>['options'] = [
{ value: 'Last year', label: t('Last year') },
];
export const COMMON_RANGE_VALUES_SET = new Set(
- COMMON_RANGE_OPTIONS.map(( value ) => value),
+ COMMON_RANGE_OPTIONS.map(value => value.value),
);
-export const CALENDAR_RANGE_OPTIONS: CheckboxGroupProps<string>['options'] = [
+export const CALENDAR_RANGE_OPTIONS: CheckboxOptionType[] = [
{ value: PreviousCalendarWeek, label: t('previous calendar week') },
{ value: PreviousCalendarMonth, label: t('previous calendar month') },
{ value: PreviousCalendarQuarter, label: t('previous calendar quarter') },
{ value: PreviousCalendarYear, label: t('previous calendar year') },
];
export const CALENDAR_RANGE_VALUES_SET = new Set(
- CALENDAR_RANGE_OPTIONS.map(( value ) => value),
+ CALENDAR_RANGE_OPTIONS.map(value => value.value),
);
-export const CURRENT_RANGE_OPTIONS: CheckboxGroupProps<string>['options'] = [
+export const CURRENT_RANGE_OPTIONS: CheckboxOptionType[] = [
{ value: CurrentDay, label: t('Current day') },
{ value: CurrentWeek, label: t('Current week') },
{ value: CurrentMonth, label: t('Current month') },
@@ -73,7 +73,7 @@ export const CURRENT_RANGE_OPTIONS: CheckboxGroupProps<string>['options'] = [
{ value: CurrentYear, label: t('Current year') },
];
export const CURRENT_RANGE_VALUES_SET = new Set(
- CURRENT_RANGE_OPTIONS.map(( value ) => value),
+ CURRENT_RANGE_OPTIONS.map(value => value.value),
);
const GRAIN_OPTIONS = [