diff --git a/loginform/css/style.css b/loginform/css/style.css new file mode 100644 index 0000000..02d54b7 --- /dev/null +++ b/loginform/css/style.css @@ -0,0 +1,298 @@ +body { + margin: 0; + + background-color: white; + + font-family: 'Montserrat', sans-serif; + font-size: 18px; + line-height: 1; + color: #161616; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +*, +*::after, +*::before { + box-sizing: border-box; +} + +h1, h2, h3, h4, h5, h6 { + margin: 0; +} + +ul, ol { + margin: 0; + padding: 0; + list-style: none; +} + +p { + margin: 0; + padding: 0; +} + +.img { + display: block; + padding: 0; + list-style: none; + width: 100%; +} + + +body::-webkit-scrollbar { + width: 12px; /* width of the entire scrollbar */ +} + +body::-webkit-scrollbar-track { + background: #FF7171; /* color of the tracking area */ +} + +body::-webkit-scrollbar-thumb { + background-color: #FF9C9C; /* color of the scroll thumb */ + border-radius: 20px; /* roundness of the scroll thumb */ + border: white; /* creates padding around scroll thumb */ +} + +/************************************************************/ + +.container { + opacity: 1; + visibility: visible; + display: flex; + flex-direction: row; + max-height: 1080px; + max-width: 1920px; + height: 100vh; + overflow: hidden; +} +.right_side { + width: 50%; + background: url('../img/list.jpg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center center; +} + +.right_side img { + width: 100%; +} + +.left_side { + display: flex; + flex-direction: column; + width: 50%; + background: #FBFDFE; +} + +.connection { + position: relative; + top: 17%; + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + flex: 1; +} + +.connection h1 { + font-weight: 400; + font-size: 46px; + line-height: 56px; + color: #000000; + + margin-bottom: 20px; +} + +.next { + flex: none; + position: relative; + bottom: 40px; + right: 40px; +} + +.next a { + bottom: -40px; + float: right; +} + +.form { + display: flex; + flex-direction: column; + padding: 10px 0 20px 0; +} + +.form input { + width: 400px; + height: 80px; + + background: #FFFFFF; + border: 3px solid rgba(70, 82, 157, 0.4); + border-radius: 30px; + + font-weight: 300; + font-size: 20px; + font-family: "Montserrat"; + + color: #000000; + opacity: 0.6; + text-indent: 20px; + text-align: left; +} + +.inpt { + margin-bottom: 30px; +} + +.error { + color: red; + font-size: 16px; +} + +.reg_login { + margin-bottom: 7px; +} + +.password { + margin-bottom: 25px; +} + +.password_confirm { + margin-bottom: 7px; +} + +.login_error { + color:red; + margin-bottom: 10px; + padding-left: 20px; + font-size: 16px; +} + +.password_error { + color: red; + margin-bottom: 15px; + padding-left: 20px; + font-size: 16px; +} + +.connection a { + margin-top: 20px; + font-weight: 400; + font-size: 19px; + line-height: 23px; + text-decoration-line: underline; + color: #46529D; + text-align: left; +} + +.connection a:hover { + color: #46529D; +} + +.connection a:visited { + color: #46529D; +} + + +@media only screen and (min-width: 992px) and (max-width:1424px) { + .connection h1 { + font-size: 36px; + } + +} + +@media only screen and (min-width: 767px) and (max-width:991px) { + .connection h1 { + font-size: 30px; + } + + .form input { + width: 330px; + font-size: 19px; + } + +} + +@media only screen and (min-width: 480px) and (max-width:766px) { + .container { + width: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } +} + +@media only screen and (max-width: 480px) { + .container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } + + .connection h1 { + font-size: 30px; + } + + .form { + width: 90%; + } + + .form input { + width: 100%; + font-size: 20px; + } + +} + +@keyframes preloader-rotate { + 100% { + transform: rotate(360deg); + } +} + +@keyframes preloader-bounce { + + 0%, + 100% { + transform: scale(0); + } + + 50% { + transform: scale(1); + } +} diff --git a/loginform/img/btnArrow.png b/loginform/img/btnArrow.png new file mode 100644 index 0000000..0b2187d Binary files /dev/null and b/loginform/img/btnArrow.png differ diff --git a/loginform/img/image.png b/loginform/img/image.png new file mode 100644 index 0000000..372e04e Binary files /dev/null and b/loginform/img/image.png differ diff --git a/loginform/img/list.jpg b/loginform/img/list.jpg new file mode 100644 index 0000000..7dfd1ce Binary files /dev/null and b/loginform/img/list.jpg differ diff --git a/loginform/js/main.js b/loginform/js/main.js new file mode 100644 index 0000000..522742d --- /dev/null +++ b/loginform/js/main.js @@ -0,0 +1,8 @@ +// прелоудер при загрузке страницы +window.onload = function () { + document.body.classList.add('loaded_hiding'); + window.setTimeout(function () { + document.body.classList.add('loaded'); + document.body.classList.remove('loaded_hiding'); + }, 500); +} \ No newline at end of file diff --git a/loginform/login.html b/loginform/login.html new file mode 100644 index 0000000..43d7619 --- /dev/null +++ b/loginform/login.html @@ -0,0 +1,42 @@ + + + + + Login + + + + + + + + + + + + + +
+
+
+

Login

+

Wrong username or password entered

+
+ + +
+ Don’t have an + account? Create one! +
+ +
+
+
+
+ + + diff --git a/loginform/registration.html b/loginform/registration.html new file mode 100644 index 0000000..f0ea622 --- /dev/null +++ b/loginform/registration.html @@ -0,0 +1,43 @@ + + + + + Registration + + + + + + + + + + + + + +
+
+
+

Registration

+
+ + + + +

Password do not coincide

+
+
+ +
+
+
+
+ + + + diff --git a/public/bebra.ico b/public/bebra.ico new file mode 100644 index 0000000..15a7250 Binary files /dev/null and b/public/bebra.ico differ diff --git a/public/css/login_style.css b/public/css/login_style.css new file mode 100644 index 0000000..02d54b7 --- /dev/null +++ b/public/css/login_style.css @@ -0,0 +1,298 @@ +body { + margin: 0; + + background-color: white; + + font-family: 'Montserrat', sans-serif; + font-size: 18px; + line-height: 1; + color: #161616; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +*, +*::after, +*::before { + box-sizing: border-box; +} + +h1, h2, h3, h4, h5, h6 { + margin: 0; +} + +ul, ol { + margin: 0; + padding: 0; + list-style: none; +} + +p { + margin: 0; + padding: 0; +} + +.img { + display: block; + padding: 0; + list-style: none; + width: 100%; +} + + +body::-webkit-scrollbar { + width: 12px; /* width of the entire scrollbar */ +} + +body::-webkit-scrollbar-track { + background: #FF7171; /* color of the tracking area */ +} + +body::-webkit-scrollbar-thumb { + background-color: #FF9C9C; /* color of the scroll thumb */ + border-radius: 20px; /* roundness of the scroll thumb */ + border: white; /* creates padding around scroll thumb */ +} + +/************************************************************/ + +.container { + opacity: 1; + visibility: visible; + display: flex; + flex-direction: row; + max-height: 1080px; + max-width: 1920px; + height: 100vh; + overflow: hidden; +} +.right_side { + width: 50%; + background: url('../img/list.jpg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center center; +} + +.right_side img { + width: 100%; +} + +.left_side { + display: flex; + flex-direction: column; + width: 50%; + background: #FBFDFE; +} + +.connection { + position: relative; + top: 17%; + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + flex: 1; +} + +.connection h1 { + font-weight: 400; + font-size: 46px; + line-height: 56px; + color: #000000; + + margin-bottom: 20px; +} + +.next { + flex: none; + position: relative; + bottom: 40px; + right: 40px; +} + +.next a { + bottom: -40px; + float: right; +} + +.form { + display: flex; + flex-direction: column; + padding: 10px 0 20px 0; +} + +.form input { + width: 400px; + height: 80px; + + background: #FFFFFF; + border: 3px solid rgba(70, 82, 157, 0.4); + border-radius: 30px; + + font-weight: 300; + font-size: 20px; + font-family: "Montserrat"; + + color: #000000; + opacity: 0.6; + text-indent: 20px; + text-align: left; +} + +.inpt { + margin-bottom: 30px; +} + +.error { + color: red; + font-size: 16px; +} + +.reg_login { + margin-bottom: 7px; +} + +.password { + margin-bottom: 25px; +} + +.password_confirm { + margin-bottom: 7px; +} + +.login_error { + color:red; + margin-bottom: 10px; + padding-left: 20px; + font-size: 16px; +} + +.password_error { + color: red; + margin-bottom: 15px; + padding-left: 20px; + font-size: 16px; +} + +.connection a { + margin-top: 20px; + font-weight: 400; + font-size: 19px; + line-height: 23px; + text-decoration-line: underline; + color: #46529D; + text-align: left; +} + +.connection a:hover { + color: #46529D; +} + +.connection a:visited { + color: #46529D; +} + + +@media only screen and (min-width: 992px) and (max-width:1424px) { + .connection h1 { + font-size: 36px; + } + +} + +@media only screen and (min-width: 767px) and (max-width:991px) { + .connection h1 { + font-size: 30px; + } + + .form input { + width: 330px; + font-size: 19px; + } + +} + +@media only screen and (min-width: 480px) and (max-width:766px) { + .container { + width: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } +} + +@media only screen and (max-width: 480px) { + .container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } + + .connection h1 { + font-size: 30px; + } + + .form { + width: 90%; + } + + .form input { + width: 100%; + font-size: 20px; + } + +} + +@keyframes preloader-rotate { + 100% { + transform: rotate(360deg); + } +} + +@keyframes preloader-bounce { + + 0%, + 100% { + transform: scale(0); + } + + 50% { + transform: scale(1); + } +} diff --git a/public/img/btnArrow.png b/public/img/btnArrow.png new file mode 100644 index 0000000..0b2187d Binary files /dev/null and b/public/img/btnArrow.png differ diff --git a/public/img/image.png b/public/img/image.png new file mode 100644 index 0000000..372e04e Binary files /dev/null and b/public/img/image.png differ diff --git a/public/img/list.jpg b/public/img/list.jpg new file mode 100644 index 0000000..7dfd1ce Binary files /dev/null and b/public/img/list.jpg differ diff --git a/public/index.html b/public/index.html index 35ae054..f725335 100644 --- a/public/index.html +++ b/public/index.html @@ -1,14 +1,12 @@ - + - - + + - + - React Hooks & Redux example + TodoList TP + - +
diff --git a/public/js/main.js b/public/js/main.js new file mode 100644 index 0000000..522742d --- /dev/null +++ b/public/js/main.js @@ -0,0 +1,8 @@ +// прелоудер при загрузке страницы +window.onload = function () { + document.body.classList.add('loaded_hiding'); + window.setTimeout(function () { + document.body.classList.add('loaded'); + document.body.classList.remove('loaded_hiding'); + }, 500); +} \ No newline at end of file diff --git a/public/login.html b/public/login.html new file mode 100644 index 0000000..159de21 --- /dev/null +++ b/public/login.html @@ -0,0 +1,41 @@ + + + + + ToDoList TP + + + + + + + + + + + + + +
+
+
+

Login

+

Wrong username or password entered

+
+ + +
+ Don’t have an + account? Create one! +
+ +
+
+
+
+ + + diff --git a/public/manifest.json b/public/manifest.json index 1f2f141..6b190fa 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -3,7 +3,7 @@ "name": "Create React App Sample", "icons": [ { - "src": "favicon.ico", + "src": "bebra.ico", "sizes": "64x64 32x32 24x24 16x16", "type": "image/x-icon" } diff --git a/public/registration.html b/public/registration.html new file mode 100644 index 0000000..93628c3 --- /dev/null +++ b/public/registration.html @@ -0,0 +1,42 @@ + + + + + ToDoList TP + + + + + + + + + + + + + +
+
+
+

Registration

+
+ + + + +

Password do not coincide

+
+
+ +
+
+
+
+ + + + diff --git a/public/style.css b/public/style.css index 24790ae..6b05c6d 100644 --- a/public/style.css +++ b/public/style.css @@ -373,3 +373,249 @@ body::-webkit-scrollbar-thumb { background-color: rgba(255, 113, 113, 1); cursor: pointer; } +.quit_butt { + color: white; + text-decoration: none; +} + +.quit_visited { + color: white; +} + +/* LIZAAAAAAAAA */ + +.container { + opacity: 1; + visibility: visible; + display: flex; + flex-direction: row; + max-height: 1080px; + max-width: 1920px; + height: 100vh; + overflow: hidden; +} + +.right_side { + width: 50%; + background: url('../img/list.jpg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center center; +} + + .right_side img { + width: 100%; + } + +.left_side { + display: flex; + flex-direction: column; + width: 50%; + background: #FBFDFE; +} + +.connection { + position: relative; + top: 17%; + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + flex: 1; +} + + .connection h1 { + font-weight: 400; + font-size: 46px; + line-height: 56px; + color: #000000; + margin-bottom: 20px; + } + +.next { + flex: none; + position: relative; + bottom: 40px; + right: 40px; +} + + .next a { + bottom: -40px; + float: right; + } + +.form { + display: flex; + flex-direction: column; + padding: 10px 0 20px 0; +} + + .form input { + width: 400px; + height: 80px; + background: #FFFFFF; + border: 3px solid rgba(70, 82, 157, 0.4); + border-radius: 30px; + font-weight: 300; + font-size: 20px; + font-family: "Montserrat"; + color: #000000; + opacity: 0.6; + text-indent: 20px; + text-align: left; + } + +.inpt { + margin-bottom: 30px; +} + +.error { + color: red; + font-size: 16px; + visibility: hidden; +} + +.reg_login { + margin-bottom: 7px; +} + +.password { + margin-bottom: 25px; +} + +.password_confirm { + margin-bottom: 7px; +} + +.login_error { + visibility: hidden; + color: red; + margin-bottom: 10px; + padding-left: 20px; + font-size: 16px; +} + +.password_error { + visibility: hidden; + color: red; + margin-bottom: 15px; + padding-left: 20px; + font-size: 16px; +} + +.connection a { + margin-top: 20px; + font-weight: 400; + font-size: 19px; + line-height: 23px; + text-decoration-line: underline; + color: #46529D; + text-align: left; +} + + .connection a:hover { + color: #46529D; + } + + .connection a:visited { + color: #46529D; + } + + +@media only screen and (min-width: 992px) and (max-width:1424px) { + .connection h1 { + font-size: 36px; + } +} + +@media only screen and (min-width: 767px) and (max-width:991px) { + .connection h1 { + font-size: 30px; + } + + .form input { + width: 330px; + font-size: 19px; + } +} + +@media only screen and (min-width: 480px) and (max-width:766px) { + .container { + width: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } +} + +@media only screen and (max-width: 480px) { + .container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + } + + .next { + flex: none; + } + + .next a { + padding: 21px; + float: right; + } + + .left_side { + width: 100%; + } + + .right_side { + display: none; + } + + .connection h1 { + font-size: 30px; + } + + .form { + width: 90%; + } + + .form input { + width: 100%; + font-size: 20px; + } +} + +@keyframes preloader-rotate { + 100% { + transform: rotate(360deg); + } +} + +@keyframes preloader-bounce { + + 0%, 100% { + transform: scale(0); + } + + 50% { + transform: scale(1); + } +} \ No newline at end of file diff --git a/src/App.js b/src/App.js index 78e10b0..4d51cbe 100644 --- a/src/App.js +++ b/src/App.js @@ -5,16 +5,16 @@ function App() { return ( - -
+ +
-
+ - {/* Please check /views/TodoList.js for detail*/}
-
+ + ); } diff --git a/src/components/TodoItem.js b/src/components/TodoItem.js index 7e8863d..61dcd12 100644 --- a/src/components/TodoItem.js +++ b/src/components/TodoItem.js @@ -28,7 +28,6 @@ const TodoItem = (props) => { //filter to get the todoId which need to be remove let newTodoList = todoList.filter(item => item.id !== todoId); dispatch({type: 'REMOVE_TODO', payload: newTodoList}) - } return ( diff --git a/src/views/Login.js b/src/views/Login.js new file mode 100644 index 0000000..e7f6350 --- /dev/null +++ b/src/views/Login.js @@ -0,0 +1,39 @@ +import React, { useState } from 'react'; + + + +const Login = () => { + + const url = 'https://localhost:5001/api/Task'; + const data = { + "username": "Dimas", + "taskname": "Srat", + "iscompleted": false, + "isimportant": true + }; + + return ( +
+ + + + + +

NAME

+

LASTNAME

+ + MALE +
+ + + + QUIT + + +
+
+
+ ); +} + +export default Login; diff --git a/src/views/Registration.js b/src/views/Registration.js new file mode 100644 index 0000000..e69de29 diff --git a/src/views/TodoList.js b/src/views/TodoList.js index d6118e2..8b7e1e7 100644 --- a/src/views/TodoList.js +++ b/src/views/TodoList.js @@ -2,9 +2,7 @@ import React,{useState} from 'react'; import { useSelector,useDispatch } from 'react-redux'; import TodoItem from '../components/TodoItem'; - const TodoList = () => { - //#2 Used to get a single attribute or object inside the Reducer //Get todoList from todoReducer @@ -22,6 +20,28 @@ const TodoList = () => { const handleInput = (e)=>{ setInputTodo(e.target.value); } + // eslint-disable-next-line + const url = 'https://localhost:5001/api/Task'; + const data = { + "username":"Dimas", + "taskname":"Srat", + "iscompleted":false, + "isimportant":true + }; + + function addItem() { + + fetch('https://localhost:5001/api/Task', { + method: 'post', + mode: 'no-cors', + headers: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }).then(res => res.json()) + .then(res => console.log(res)); + } //Handle onClick event const addNewTodo = ()=>{ @@ -37,13 +57,15 @@ const TodoList = () => { dispatch({type:'ADD_TODO',payload:newTodoObject}); //Empty input setInputTodo(''); + console.log(data); + addItem(); } else{ //Display Error message setErrMsg(''); } - + } return ( @@ -60,8 +82,8 @@ const TodoList = () => { - - QUIT + + QUIT @@ -88,10 +110,6 @@ const TodoList = () => {
- - - - ); }