// react import React from 'react'; import { Box, useTheme, Tooltip, TextField, InputAdornment, Icon, IconButton } from '../'; // dashup ui permission const DashupUIPermission = (props = {}) => { // theme const theme = useTheme(); // get pages const getPages = (page) => { // set page if (!page) page = props.page; // return items return Array.from(props.dashup.get('pages').values()).filter((item) => !item.get('archived') && item.get('parent') === page.get('_id')).sort((a, b) => { // get order if (a.get('order') > b.get('order')) return 1; if (a.get('order') < b.get('order')) return -1; // return no change return 0; }); }; // get icon const getIcon = () => { // pencil return (props.page.get('icon') || 'pencil fa'); }; // on toggle const onToggle = (type) => { // update if (props.hasAcl(props.page, type)) { // remove props.removeAcl(props.page, type); } else { // add props.addAcl(props.page, type); } }; // buttons const buttons = [['View', 'eye'], ['Submit', 'pencil'], ['Manage', 'cog']]; // color const color = props.page.get('color'); // no archived if (props.page.get('_meta.archived')) return null; // return jsx return ( <> ), endAdornment : ( <> { buttons.map(([title, icon]) => { // set value const type = title.toLowerCase(); // color const color = props.hasAcl(props.page, type) ? 'success' : undefined; // return jsx return ( onToggle(type) }> ); }) } ) } } /> { !!getPages(props.page) && ( { getPages(props.page).map((child, i) => { // return jsx return ( ) }) } ) } ); }; // export default export default DashupUIPermission;