From 6152f74ab1af3517fa692d45f1f50be67356d380 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Thu, 19 Apr 2018 21:12:26 +0200 Subject: [PATCH] Typescriptify Login-Component --- ui/src/pages/{Login.js => Login.tsx} | 42 +++++++++++++++------------- 1 file changed, 23 insertions(+), 19 deletions(-) rename ui/src/pages/{Login.js => Login.tsx} (74%) diff --git a/ui/src/pages/Login.js b/ui/src/pages/Login.tsx similarity index 74% rename from ui/src/pages/Login.js rename to ui/src/pages/Login.tsx index 638b7d0..8963214 100644 --- a/ui/src/pages/Login.js +++ b/ui/src/pages/Login.tsx @@ -1,35 +1,26 @@ -import React, {Component} from 'react'; import Button from 'material-ui/Button'; import Grid from 'material-ui/Grid'; import TextField from 'material-ui/TextField'; -import Container from '../component/Container'; +import React, {ChangeEvent, Component, FormEvent} from 'react'; import * as UserAction from '../actions/UserAction'; +import Container from '../component/Container'; import DefaultPage from '../component/DefaultPage'; -class Login extends Component { - constructor() { - super(); - this.state = {username: '', password: ''}; - } +interface IState { + username: string + password: string +} - handleChange(propertyName, event) { - const state = this.state; - state[propertyName] = event.target.value; - this.setState(state); - } +class Login extends Component<{}, IState> { + public state = {username: '', password: ''}; - login = (e) => { - e.preventDefault(); - UserAction.login(this.state.username, this.state.password); - }; - - render() { + public render() { const {username, password} = this.state; return ( -
e.preventDefault()}> + ); } + + private handleChange(propertyName: string, event: ChangeEvent) { + const state = this.state; + state[propertyName] = event.target.value; + this.setState(state); + } + + private login = (e: React.MouseEvent) => { + e.preventDefault(); + UserAction.login(this.state.username, this.state.password); + }; + + private preventDefault = (e: FormEvent) => e.preventDefault(); } export default Login;