import { connect } from 'react-redux';
import Layout from '../../components/Layout/Layout';
import {
  isAuthorisedSelector,
  resourceSelector,
  doPermission as authorise,
  reset
} from '../../redux/branches/entities/permissions';

import { ioRequestSelector as ioPermissionsRequestSelector } from '../../redux/branches/entitiesMeta/permissions';

export const mapDispatchToProps = dispatch => ({
  authorise: ({ resource, domain, method }) => dispatch(authorise({ resource, domain, method })),
  resetPermissions: () => dispatch(reset()),
});

export const mapStateToProps = state => ({
  isAuthorised: isAuthorisedSelector(state),
  resource: resourceSelector(state),
  ioRequest: ioPermissionsRequestSelector(state),
});

export default connect(mapStateToProps, mapDispatchToProps)(Layout);
