From 81b46581ab79f8f5e9e132e00e5d1b8e9182dd46 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 15 Nov 2020 04:07:33 +0300 Subject: feat: implement authentication --- src/containers/LoginSection/LoginSection.tsx | 22 ++++++++- src/hooks/APIClient.ts | 8 ++-- src/hooks/useAuth.tsx | 70 ++++++++++++++++++++++++++++ src/hooks/useLocalStorage.ts | 20 ++++++++ src/index.tsx | 19 ++++---- 5 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 src/hooks/useAuth.tsx create mode 100644 src/hooks/useLocalStorage.ts (limited to 'src') diff --git a/src/containers/LoginSection/LoginSection.tsx b/src/containers/LoginSection/LoginSection.tsx index b870c7d..812afd8 100644 --- a/src/containers/LoginSection/LoginSection.tsx +++ b/src/containers/LoginSection/LoginSection.tsx @@ -1,7 +1,9 @@ -import React from 'react'; +import React, { useState } from 'react'; import { ContentSection } from 'react-benzin'; import { Link, TextField, Button } from '@material-ui/core'; import { makeStyles } from '@material-ui/core/styles'; +import { useAuth } from '../../hooks/useAuth'; + const useStyles = makeStyles(theme => ({ form: { @@ -17,21 +19,37 @@ const useStyles = makeStyles(theme => ({ const LoginSection: React.FC = () => { const classes = useStyles(); + const { login, isAuthenticated } = useAuth(); + const [username, setUsername] = useState(''); + const [password, setPassword] = useState(''); + + const handleChangeUsername = (event: React.ChangeEvent) => { + setUsername(event.target.value); + }; + + const handleChangePassword = (event: React.ChangeEvent) => { + setPassword(event.target.value); + }; + + const handleSubmit = () => login(username, password); - return ( + return isAuthenticated ? null : ( Log in using your EDUFPMI credentials