Skip to content
Snippets Groups Projects
Unverified Commit bcb43327 authored by Hex Café's avatar Hex Café Committed by GitHub
Browse files

fix: `show_filters` URL parameter is not working (#29422)


Co-authored-by: default avatarEvan Rusackas <evan@preset.io>
Co-authored-by: default avatarVitor Avila <vitor.avila@preset.io>
parent 63c8bbf3
No related branches found
No related tags found
No related merge requests found
...@@ -32,6 +32,7 @@ import { ...@@ -32,6 +32,7 @@ import {
import { storeWithState } from 'spec/fixtures/mockStore'; import { storeWithState } from 'spec/fixtures/mockStore';
import mockState from 'spec/fixtures/mockState'; import mockState from 'spec/fixtures/mockState';
import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants';
import * as useNativeFiltersModule from './state';
fetchMock.get('glob:*/csstemplateasyncmodelview/api/read', {}); fetchMock.get('glob:*/csstemplateasyncmodelview/api/read', {});
fetchMock.put('glob:*/api/v1/dashboard/*', {}); fetchMock.put('glob:*/api/v1/dashboard/*', {});
...@@ -262,4 +263,45 @@ describe('DashboardBuilder', () => { ...@@ -262,4 +263,45 @@ describe('DashboardBuilder', () => {
const filterbar = getByTestId('dashboard-filters-panel'); const filterbar = getByTestId('dashboard-filters-panel');
expect(filterbar).toHaveStyleRule('width', `${expectedValue}px`); 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();
});
}); });
...@@ -467,7 +467,7 @@ const DashboardBuilder = () => { ...@@ -467,7 +467,7 @@ const DashboardBuilder = () => {
ELEMENT_ON_SCREEN_OPTIONS, ELEMENT_ON_SCREEN_OPTIONS,
); );
const showFilterBar = !editMode; const showFilterBar = !editMode && nativeFiltersEnabled;
const offset = const offset =
FILTER_BAR_HEADER_HEIGHT + FILTER_BAR_HEADER_HEIGHT +
......
...@@ -29,6 +29,9 @@ import { ...@@ -29,6 +29,9 @@ import {
// eslint-disable-next-line import/prefer-default-export // eslint-disable-next-line import/prefer-default-export
export const useNativeFilters = () => { export const useNativeFilters = () => {
const [isInitialized, setIsInitialized] = useState(false); const [isInitialized, setIsInitialized] = useState(false);
const showNativeFilters = useSelector<RootState, boolean>(
state => getUrlParam(URL_PARAMS.showFilters) ?? true,
);
const canEdit = useSelector<RootState, boolean>( const canEdit = useSelector<RootState, boolean>(
({ dashboardInfo }) => dashboardInfo.dash_edit_perm, ({ dashboardInfo }) => dashboardInfo.dash_edit_perm,
); );
...@@ -41,7 +44,7 @@ export const useNativeFilters = () => { ...@@ -41,7 +44,7 @@ export const useNativeFilters = () => {
); );
const nativeFiltersEnabled = const nativeFiltersEnabled =
canEdit || (!canEdit && filterValues.length !== 0); showNativeFilters && (canEdit || (!canEdit && filterValues.length !== 0));
const requiredFirstFilter = useMemo( const requiredFirstFilter = useMemo(
() => filterValues.filter(filter => filter.requiredFirst), () => filterValues.filter(filter => filter.requiredFirst),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment