piral-dashboard
Version:
Plugin for creating a centralized dashboard in Piral.
22 lines • 1.12 kB
JavaScript
import * as React from 'react';
import { useGlobalState } from 'piral-core';
import { PiralDashboardContainer, PiralDashboardTile } from './components';
/**
* The dashboard component. Integrate this as a page or in a component
* where dashboard information (tiles) should be shown.
*/
export const Dashboard = (props) => {
const tiles = useGlobalState((s) => s.registry.tiles);
const { filter = () => true } = props;
const children = Object.keys(tiles)
.filter((tile) => filter(tiles[tile]))
.map((tile) => {
const { component: Component, preferences } = tiles[tile];
const { initialColumns = 1, initialRows = 1, resizable = false } = preferences;
return (React.createElement(PiralDashboardTile, { key: tile, columns: initialColumns, rows: initialRows, resizable: resizable, meta: preferences },
React.createElement(Component, { columns: initialColumns, rows: initialRows })));
});
return React.createElement(PiralDashboardContainer, { ...props, children: children });
};
Dashboard.displayName = 'Dashboard';
//# sourceMappingURL=Dashboard.js.map