FarmBot/Farmbot-Web-App

View on GitHub
frontend/front_page/login.tsx

Summary

Maintainability
A
1 hr
Test Coverage
import React from "react";
import { t } from "../i18next_wrapper";
import { Col, Widget, WidgetBody, WidgetHeader, Row } from "../ui";
import { updatePageInfo } from "../util";

export interface LoginProps {
  email: string | undefined;
  onToggleForgotPassword(): void;
  onSubmit(e: React.FormEvent<HTMLFormElement>): void;
  onEmailChange(e: React.SyntheticEvent<HTMLInputElement>): void;
  onLoginPasswordChange(e: React.SyntheticEvent<HTMLInputElement>): void;
}

export class Login extends React.Component<LoginProps, {}> {
  render() {
    const {
      email,
      onEmailChange,
      onSubmit,
      onLoginPasswordChange,
      onToggleForgotPassword,
    } = this.props;
    updatePageInfo("login");
    return <Col xs={12} sm={5} smOffset={1} mdOffset={0}>
      <Widget>
        <WidgetHeader title={"Login"} />
        <WidgetBody>
          <form onSubmit={onSubmit}>
            <label>
              {t("Email")}
            </label>
            <input
              type={"email"}
              name={"email"}
              value={email || ""}
              autoFocus={true}
              onChange={onEmailChange} />
            <label>
              {t("Password")}
            </label>
            <input
              type={"password"}
              name={"password"}
              onChange={onLoginPasswordChange} />
            <a className="forgot-password"
              title={t("Forgot password?")}
              onClick={onToggleForgotPassword}>
              {t("Forgot password?")}
            </a>
            <Row>
              <button className="fb-button green pull-right front-page-button"
                title={t("Login")}>
                {t("Login")}
              </button>
            </Row>
          </form>
        </WidgetBody>
      </Widget>
    </Col>;
  }
}