piral-dashboard
Version:
Plugin for creating a centralized dashboard in Piral.
47 lines • 1.26 kB
JavaScript
import { DefaultTile, DefaultContainer } from './default';
import { Dashboard } from './Dashboard';
export function getPreferences(defaultPreferences, customPreferences = {}) {
return {
...defaultPreferences,
...customPreferences,
};
}
export function getTiles(items, defaultPreferences) {
const tiles = {};
let i = 0;
for (const { component, preferences } of items) {
tiles[`global-${i++}`] = {
pilet: undefined,
component,
preferences: getPreferences(defaultPreferences, preferences),
};
}
return tiles;
}
export function withTiles(tiles) {
return (state) => ({
...state,
components: {
DashboardTile: DefaultTile,
DashboardContainer: DefaultContainer,
...state.components,
},
registry: {
...state.registry,
tiles,
},
});
}
export function withRoutes(routes) {
return (state) => ({
...state,
routes: {
...state.routes,
...routes.reduce((newRoutes, route) => {
newRoutes[route] = Dashboard;
return newRoutes;
}, {}),
},
});
}
//# sourceMappingURL=helpers.js.map