Commit 1790ece4 by Alex Khomenko Committed by GitHub

Search: Only move dashboards into expanded folders UI-wise (#25363)

* Search: Ony move dashboards into expanded folders UI-wise

* Search: Add tests
parent acae33ed
import { TOGGLE_ALL_CHECKED, TOGGLE_CHECKED, DELETE_ITEMS, MOVE_ITEMS } from './actionTypes';
import { manageDashboardsReducer as reducer, manageDashboardsState as state } from './manageDashboards';
import { sections } from '../testData';
import { UidsToDelete } from '../types';
import { DashboardSection, UidsToDelete } from '../types';
// Remove Recent and Starred sections as they're not used in manage dashboards
const results = sections.slice(2);
......@@ -84,4 +84,12 @@ describe('Manage dashboards reducer', () => {
expect(newState.results[3].items).toHaveLength(1);
expect(newState.results[3].items[0].uid).toEqual('LCFWfl9Zz');
});
it('should not display dashboards in a non-expanded folder', () => {
const general = results.find(res => res.id === 0);
const toMove = { dashboards: general.items, folder: { id: 4074 } };
const newState = reducer({ ...state, results }, { type: MOVE_ITEMS, payload: toMove });
expect(newState.results.find((res: DashboardSection) => res.id === 4074).items).toHaveLength(0);
expect(newState.results.find((res: DashboardSection) => res.id === 0).items).toHaveLength(0);
});
});
......@@ -53,11 +53,13 @@ const reducer = (state: ManageDashboardsState, action: SearchAction) => {
...state,
results: state.results.map(result => {
if (folder.id === result.id) {
return {
return result.expanded
? {
...result,
items: [...result.items, ...dashboards.map(db => ({ ...db, checked: false }))],
checked: false,
};
}
: result;
} else {
return { ...result, items: result.items.filter(item => !uids.includes(item.uid)) };
}
......
......@@ -107,7 +107,7 @@ export const sections = [
id: 2,
uid: 'JB_zdOUWk',
title: 'gdev dashboards',
expanded: false,
expanded: true,
url: '/dashboards/f/JB_zdOUWk/gdev-dashboards',
icon: 'folder',
score: 2,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment