Browse Source

SONAR-17478 Remove "Period" category and make "New Code" a stand-alone filter

tags/9.8.0.63668
Wouter Admiraal 1 year ago
parent
commit
be67301d11

+ 10
- 27
server/sonar-web/src/main/js/apps/issues/sidebar/PeriodFilter.tsx View File

@@ -19,7 +19,6 @@
*/
import * as React from 'react';
import FacetBox from '../../../components/facet/FacetBox';
import FacetHeader from '../../../components/facet/FacetHeader';
import FacetItem from '../../../components/facet/FacetItem';
import FacetItemsList from '../../../components/facet/FacetItemsList';
import { translate } from '../../../helpers/l10n';
@@ -42,8 +41,6 @@ const PROPERTY = 'period';
export default function PeriodFilter(props: PeriodFilterProps) {
const { fetching, newCodeSelected, stats = {} } = props;

const [open, setOpen] = React.useState(true);

const { onChange } = props;
const handleClick = React.useCallback(() => {
// We need to clear creation date filters they conflict with the new code period
@@ -56,32 +53,18 @@ export default function PeriodFilter(props: PeriodFilterProps) {
});
}, [newCodeSelected, onChange]);

const handleClear = React.useCallback(() => {
onChange({ [Period.NewCode]: undefined });
}, [onChange]);

return (
<FacetBox property={PROPERTY}>
<FacetHeader
fetching={fetching}
name={translate('issues.facet', PROPERTY)}
onClear={handleClear}
onClick={() => setOpen(!open)}
open={open}
values={newCodeSelected ? [translate('issues.new_code')] : undefined}
/>

{open && (
<FacetItemsList>
<FacetItem
active={newCodeSelected}
name={translate('issues.new_code')}
onClick={handleClick}
stat={formatFacetStat(stats[Period.NewCode])}
value={Period.NewCode}
/>
</FacetItemsList>
)}
<FacetItemsList>
<FacetItem
active={newCodeSelected}
loading={fetching}
name={translate('issues.new_code')}
onClick={handleClick}
stat={formatFacetStat(stats[Period.NewCode])}
value={Period.NewCode}
/>
</FacetItemsList>
</FacetBox>
);
}

+ 0
- 25
server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/PeriodFilter-test.tsx View File

@@ -23,18 +23,6 @@ import userEvent from '@testing-library/user-event';
import * as React from 'react';
import PeriodFilter, { PeriodFilterProps } from '../PeriodFilter';

it('should be collapsible', async () => {
const user = userEvent.setup();

renderPeriodFilter();

expect(screen.getByText('issues.new_code')).toBeInTheDocument();

await user.click(screen.getByText('issues.facet.period'));

expect(screen.queryByText('issues.new_code')).not.toBeInTheDocument();
});

it('should filter when clicked', async () => {
const user = userEvent.setup();
const onChange = jest.fn();
@@ -52,19 +40,6 @@ it('should filter when clicked', async () => {
});
});

it('should be clearable', async () => {
const user = userEvent.setup();
const onChange = jest.fn();

renderPeriodFilter({ onChange, newCodeSelected: true });

await user.click(screen.getByText('clear'));

expect(onChange).toHaveBeenCalledWith({
inNewCodePeriod: undefined
});
});

function renderPeriodFilter(overrides: Partial<PeriodFilterProps> = {}) {
return render(
<PeriodFilter

+ 1
- 1
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -934,7 +934,7 @@ issues.to_navigate=to navigate
issues.to_navigate_back=to navigate back
issues.to_navigate_issue_locations=to navigate issue locations
issues.to_switch_flows=to switch flows
issues.new_code=New code
issues.new_code=Issues in new code
issues.new_code_period=New Code Period
issues.max_new_code_period=Max New Code Period
issues.my_issues=My Issues

Loading…
Cancel
Save