Compare commits

...

3 Commits

Author SHA1 Message Date
Vitor Avila
2c2e9f524c Reusing old logic before #23228 2025-04-02 17:21:14 -03:00
Evan Rusackas
abac881f1a Merge branch 'master' into bugfix/hide-filters 2025-04-02 08:52:24 -06:00
hexcafe
cfbda8162f fix show_filters not working 2024-06-30 17:20:08 -07:00
3 changed files with 47 additions and 2 deletions

View File

@@ -32,6 +32,7 @@ import {
import { storeWithState } from 'spec/fixtures/mockStore';
import mockState from 'spec/fixtures/mockState';
import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants';
import * as useNativeFiltersModule from './state';
fetchMock.get('glob:*/csstemplateasyncmodelview/api/read', {});
fetchMock.put('glob:*/api/v1/dashboard/*', {});
@@ -262,4 +263,45 @@ describe('DashboardBuilder', () => {
const filterbar = getByTestId('dashboard-filters-panel');
expect(filterbar).toHaveStyleRule('width', `${expectedValue}px`);
});
it('should not render the filter bar when nativeFiltersEnabled is false', () => {
jest.spyOn(useNativeFiltersModule, 'useNativeFilters').mockReturnValue({
showDashboard: true,
missingInitialFilters: [],
dashboardFiltersOpen: true,
toggleDashboardFiltersOpen: jest.fn(),
nativeFiltersEnabled: false,
});
const { queryByTestId } = setup();
expect(queryByTestId('dashboard-filters-panel')).not.toBeInTheDocument();
});
it('should render the filter bar when nativeFiltersEnabled is true and not in edit mode', () => {
jest.spyOn(useNativeFiltersModule, 'useNativeFilters').mockReturnValue({
showDashboard: true,
missingInitialFilters: [],
dashboardFiltersOpen: true,
toggleDashboardFiltersOpen: jest.fn(),
nativeFiltersEnabled: true,
});
const { queryByTestId } = setup();
expect(queryByTestId('dashboard-filters-panel')).toBeInTheDocument();
});
it('should not render the filter bar when in edit mode even if nativeFiltersEnabled is true', () => {
jest.spyOn(useNativeFiltersModule, 'useNativeFilters').mockReturnValue({
showDashboard: true,
missingInitialFilters: [],
dashboardFiltersOpen: true,
toggleDashboardFiltersOpen: jest.fn(),
nativeFiltersEnabled: true,
});
const { queryByTestId } = setup({
dashboardState: { ...mockState.dashboardState, editMode: true },
});
expect(queryByTestId('dashboard-filters-panel')).not.toBeInTheDocument();
});
});

View File

@@ -467,7 +467,7 @@ const DashboardBuilder = () => {
ELEMENT_ON_SCREEN_OPTIONS,
);
const showFilterBar = !editMode;
const showFilterBar = !editMode && nativeFiltersEnabled;
const offset =
FILTER_BAR_HEADER_HEIGHT +

View File

@@ -29,6 +29,9 @@ import {
// eslint-disable-next-line import/prefer-default-export
export const useNativeFilters = () => {
const [isInitialized, setIsInitialized] = useState(false);
const showNativeFilters = useSelector<RootState, boolean>(
state => getUrlParam(URL_PARAMS.showFilters) ?? true,
);
const canEdit = useSelector<RootState, boolean>(
({ dashboardInfo }) => dashboardInfo.dash_edit_perm,
);
@@ -41,7 +44,7 @@ export const useNativeFilters = () => {
);
const nativeFiltersEnabled =
canEdit || (!canEdit && filterValues.length !== 0);
showNativeFilters && (canEdit || (!canEdit && filterValues.length !== 0));
const requiredFirstFilter = useMemo(
() => filterValues.filter(filter => filter.requiredFirst),