/* * Minio Cloud Storage (C) 2016, 2018 Minio, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import React from "react" import { connect } from "react-redux" import classNames from "classnames" import logo from "../../img/logo.svg" import Alert from "./Alert" import * as actionsAlert from "../actions/alert" import InputGroup from "../components/InputGroup" import { minioBrowserPrefix } from "../constants" import web from "../web" import { Redirect } from "react-router-dom" export class Login extends React.Component { handleSubmit(event) { event.preventDefault() const { showAlert, history } = this.props let message = "" if (!document.getElementById("accessKey").value) { message = "Access Key cannot be empty" } if (!document.getElementById("secretKey").value) { message = "Secret Key cannot be empty" } if (message) { showAlert("danger", message) return } web .Login({ username: document.getElementById("accessKey").value, password: document.getElementById("secretKey").value }) .then(res => { history.push(minioBrowserPrefix) }) .catch(e => { showAlert("danger", e.message) }) } componentWillMount() { const { clearAlert } = this.props // Clear out any stale message in the alert of previous page clearAlert() document.body.classList.add("is-guest") } componentWillUnmount() { document.body.classList.remove("is-guest") } render() { const { clearAlert, alert } = this.props if (web.LoggedIn()) { return } let alertBox = // Make sure you don't show a fading out alert box on the initial web-page load. if (!alert.message) alertBox = "" return (
{alertBox}
{window.location.host}
) } } const mapDispatchToProps = dispatch => { return { showAlert: (type, message) => dispatch(actionsAlert.set({type: type, message: message})), clearAlert: () => dispatch(actionsAlert.clear()) } } export default connect(state => state, mapDispatchToProps)(Login)