GladysProject/Gladys

View on GitHub
front/src/routes/settings/settings-gateway/GatewayPage.jsx

Summary

Maintainability
A
1 hr
Test Coverage
import get from 'get-value';
import { Text } from 'preact-i18n';

import SettingsLayout from '../SettingsLayout';
import GatewayLoginForm from '../../../components/gateway/GatewayLoginForm';
import GatewayPricing from './GatewayPricing';
import GatewayConfigured from './GatewayConfigured';
import GatewayBackupKey from './GatewayBackupKey';
import GatewayUsersList from './GatewayUsersList';
import GatewayDisconnect from './GatewayDisconnect';
import GatewayConnectedSuccess from './GatewayConnectedSuccess';

const GatewayPage = ({ children, ...props }) => (
  <SettingsLayout>
    {get(props, 'gatewayStatus.configured') === false && !props.displayGatewayLogin && <GatewayPricing {...props} />}
    {props.displayGatewayLogin && (
      <div>
        <div class="row">
          <button onClick={props.cancelGatewayLogin} class="btn btn-secondary btn-sm">
            <Text id="global.backButton" />
          </button>
        </div>
        <div class="row mt-4">
          <div class="col-md-6 offset-md-3">
            <GatewayLoginForm {...props} external_forgot_password />
          </div>
        </div>
      </div>
    )}
    {props.displayConnectedSuccess && (
      <div class="row">
        <div class="col-md-12">
          <GatewayConnectedSuccess
            gatewayBackupKey={props.gatewayBackupKey}
            finalizeGatewaySetup={props.finalizeGatewaySetup}
          />
        </div>
      </div>
    )}
    {!props.displayConnectedSuccess && get(props, 'gatewayStatus.configured') === true && (
      <div class="row">
        <div class="col-md-12">
          <GatewayConfigured {...props} />
        </div>
        <div class="col-md-12">
          <GatewayUsersList {...props} />
        </div>
        <div class="col-md-12">
          <GatewayBackupKey {...props} />
        </div>
        <div class="col-md-12">
          <GatewayDisconnect gatewayDisconnectStatus={props.gatewayDisconnectStatus} disconnect={props.disconnect} />
        </div>
      </div>
    )}
  </SettingsLayout>
);

export default GatewayPage;