From dec29bd4abe037901db6b71a9a320332a4341535 Mon Sep 17 00:00:00 2001 From: Viivi Nevalainen <2633-vmneva@users.noreply.gitlab.utu.fi> Date: Sat, 29 Apr 2023 09:08:33 +0000 Subject: [PATCH] Upload New File --- bloglist_frontend/src/components/LoginForm.js | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 bloglist_frontend/src/components/LoginForm.js diff --git a/bloglist_frontend/src/components/LoginForm.js b/bloglist_frontend/src/components/LoginForm.js new file mode 100644 index 0000000..812a186 --- /dev/null +++ b/bloglist_frontend/src/components/LoginForm.js @@ -0,0 +1,47 @@ +import ErrorNotification from './ErrorNotification' +import PropTypes from 'prop-types' + +const LoginForm = ({ + handleLogin, + handleUsernameChange, + handlePasswordChange, + username, + password, + errorMessage, +}) => { + + LoginForm.propTypes = { + handleLogin: PropTypes.func.isRequired, + handleUsernameChange: PropTypes.func.isRequired, + handlePasswordChange: PropTypes.func.isRequired, + username: PropTypes.string.isRequired, + password: PropTypes.string.isRequired, + } + + return ( + <div> + <h2>log in to application</h2> + <ErrorNotification message={errorMessage} /> + <form onSubmit={handleLogin}> + <div> + username + <input + type="text" + value={username} + onChange={handleUsernameChange} + /> + </div> + <div> + password + <input + type="password" + value={password} + onChange={handlePasswordChange} + /> + </div> + <button type="submit">login</button> + </form> + </div> + ) +} +export default LoginForm \ No newline at end of file -- GitLab