import { Query } from 'react-apollo'; import PropTypes from 'prop-types'; import { CURRENT_USER_QUERY } from './User'; import Signin from './Signin'; const PleaseSignIn = props => ( {({ data, loading }) => { if (loading) return

Loading...

; // check if they are signed in if (!data.me) { return (

Please sign in before continuing!

); } // check if they need permissions if (props.allowedPermissions) { // check if they NO permissions, or they don't meet the requmrenets if ( !data.me.permissions || !props.allowedPermissions.some(permission => data.me.permissions.includes(permission)) ) { return (

Insufficient Permissions. You have: {data.me.permissions} and you need {props.allowedPermissions.join(' OR ')}

); } } return props.children; }}
); PleaseSignIn.propTypes = { allowedPermissions: PropTypes.array, children: PropTypes.any.isRequired, }; export default PleaseSignIn;