department-of-veterans-affairs/vets-website

View on GitHub
src/applications/accredited-representative-portal/containers/SignedInLayout.jsx

Summary

Maintainability
A
40 mins
Test Coverage
import PropTypes from 'prop-types';
import React from 'react';

import { VaLoadingIndicator } from '@department-of-veterans-affairs/component-library/dist/react-bindings';

import NoPOAPermissionsAlert from '../components/NoPOAPermissionsAlert/NoPOAPermissionsAlert';
import NotInPilotAlert from '../components/NotInPilotAlert/NotInPilotAlert';

const SignedInLayout = ({
  children,
  isPilotToggleLoading,
  isInPilot,
  isProduction,
  hasPOAPermissions,
}) => {
  if (isPilotToggleLoading) {
    return (
      <div
        className="vads-u-margin-y--5"
        data-testid="signed-in-layout-pilot-toggle-loading"
      >
        <VaLoadingIndicator message="Loading your Accredited Representative Portal..." />
      </div>
    );
  }

  if (isProduction && !isInPilot) {
    return <NotInPilotAlert />;
  }

  if (!hasPOAPermissions) {
    return <NoPOAPermissionsAlert />;
  }

  return (
    <div className="vads-u-margin-y--5 vads-l-grid-container large-screen:vads-u-padding-x--0">
      <div data-testid="signed-in-layout-content" className="vads-l-row">
        {children}
      </div>
    </div>
  );
};

SignedInLayout.propTypes = {
  hasPOAPermissions: PropTypes.bool,
  isInPilot: PropTypes.bool,
  isPilotToggleLoading: PropTypes.bool,
  isProduction: PropTypes.bool,
};

export default SignedInLayout;