From 1aa357dadda829c3f49519fd124b4bc778d994c1 Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 10:04:30 +0200 Subject: [PATCH 01/10] Czesc_1 --- .idea/.gitignore | 8 ++++++++ .idea/misc.xml | 6 ++++++ .idea/modules.xml | 8 ++++++++ .idea/react-lab.iml | 9 +++++++++ .idea/vcs.xml | 6 ++++++ src/App.js | 33 ++++++++++++++------------------- 6 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/react-lab.iml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..1c2fda5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..84abf01 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4b218f1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/react-lab.iml b/.idea/react-lab.iml new file mode 100644 index 0000000..18ec59d --- /dev/null +++ b/.idea/react-lab.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..c8397c9 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/App.js b/src/App.js index 3784575..6dcedcb 100644 --- a/src/App.js +++ b/src/App.js @@ -1,25 +1,20 @@ import logo from './logo.svg'; import './App.css'; - +import {useState} from "react"; function App() { - return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
-
- ); + const [email, setEmail] = useState('szulinska@agh.edu.pl'); + + function handleChange(event) { + setEmail(event.target.value); + } + + return ( +
+

System do zapisów na zajęcia

+

Twój e-mail to {email}.

+ +
+ ); } export default App; From fedf923804520c8e47861b31f2f555f5a6af8fca Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 10:19:50 +0200 Subject: [PATCH 02/10] =?UTF-8?q?reaktywno=C5=9B=C4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index 6dcedcb..30ddc94 100644 --- a/src/App.js +++ b/src/App.js @@ -4,6 +4,16 @@ import {useState} from "react"; function App() { const [email, setEmail] = useState('szulinska@agh.edu.pl'); + let message; + + if (email.length < 10) { + message =
Ale masz krótki adres!
; + } else if (email.length < 15) { + message =
Twój adres e-mail jest w sam raz.
; + } else { + message =
Twój adres e-mail jest stanowczo za długi.
; + } + function handleChange(event) { setEmail(event.target.value); } @@ -11,7 +21,8 @@ function App() { return (

System do zapisów na zajęcia

-

Twój e-mail to {email}.

+

Twój e-mail to {email}

+ {message}
); From 9186f1ee5be14fc67021117d5f60dd6b2f2f3707 Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 11:45:07 +0200 Subject: [PATCH 03/10] interakcje --- src/App.js | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/src/App.js b/src/App.js index 30ddc94..b1724ad 100644 --- a/src/App.js +++ b/src/App.js @@ -14,16 +14,49 @@ function App() { message =
Twój adres e-mail jest stanowczo za długi.
; } + function showAlert(){ + alert(email); + } + + function logIn() { + let idLogIn = document.getElementById("divLogIn"); + let idLogOut = document.getElementById("divLogOut"); + + let logowanie = document.getElementById("logowanie").value; + + if(logowanie === null || logowanie === ""){ + alert("Aby się zalogować musisz podać twój e-mail!") + }else{ + idLogIn.style.display = "none"; + idLogOut.style.display = "block"; + } + + } + function logOut(){ + let idLogIn = document.getElementById("divLogIn"); + let idLogOut = document.getElementById("divLogOut"); + let logowanie = document.getElementById("logowanie"); + + idLogIn.style.display = "block"; + idLogOut.style.display = "none"; + logowanie.value = ""; + } function handleChange(event) { setEmail(event.target.value); } return (
-

System do zapisów na zajęcia

-

Twój e-mail to {email}

- {message} - +

Witaj w systemie do zapisów na zajęcia

+
+ + + +
+
+

Witaj {email}!

+

Wyloguj

+
); } From ef42664c71eec9aa388f323ee92130f551241ab6 Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 12:00:48 +0200 Subject: [PATCH 04/10] interakcje - v2 --- src/App.js | 51 ++++++++++++++------------------------------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/src/App.js b/src/App.js index b1724ad..e66dda7 100644 --- a/src/App.js +++ b/src/App.js @@ -3,7 +3,7 @@ import './App.css'; import {useState} from "react"; function App() { const [email, setEmail] = useState('szulinska@agh.edu.pl'); - + const [authenticatedUsername, setAuthenticatedUsername] = useState(null); let message; if (email.length < 10) { @@ -14,33 +14,6 @@ function App() { message =
Twój adres e-mail jest stanowczo za długi.
; } - function showAlert(){ - alert(email); - } - - function logIn() { - let idLogIn = document.getElementById("divLogIn"); - let idLogOut = document.getElementById("divLogOut"); - - let logowanie = document.getElementById("logowanie").value; - - if(logowanie === null || logowanie === ""){ - alert("Aby się zalogować musisz podać twój e-mail!") - }else{ - idLogIn.style.display = "none"; - idLogOut.style.display = "block"; - } - - } - function logOut(){ - let idLogIn = document.getElementById("divLogIn"); - let idLogOut = document.getElementById("divLogOut"); - let logowanie = document.getElementById("logowanie"); - - idLogIn.style.display = "block"; - idLogOut.style.display = "none"; - logowanie.value = ""; - } function handleChange(event) { setEmail(event.target.value); } @@ -48,15 +21,19 @@ function App() { return (

Witaj w systemie do zapisów na zajęcia

-
- - - -
-
-

Witaj {email}!

-

Wyloguj

-
+ {!authenticatedUsername && ( +
+ + + +
+ )} + {authenticatedUsername && ( +
+

Jesteś zalogowany jako {authenticatedUsername}

+ setAuthenticatedUsername(null)}>Wyloguj +
+ )}
); } From 98e5f9a01af1862a40dd05e73cc42f53c5165018 Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 12:04:21 +0200 Subject: [PATCH 05/10] Framework CSS --- package-lock.json | 16 ++++++++++++++++ package.json | 1 + src/App.js | 2 ++ 3 files changed, 19 insertions(+) diff --git a/package-lock.json b/package-lock.json index 14446ab..25583f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "milligram": "^1.4.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-scripts": "5.0.1", @@ -11350,6 +11351,15 @@ "node": ">=8.6" } }, + "node_modules/milligram": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/milligram/-/milligram-1.4.1.tgz", + "integrity": "sha512-RCgh/boHhcXWOUfKJWm3RJRoUeaEguoipDg0mJ31G0tFfvcpWMUlO1Zlqqr12K4kAXfDlllaidu0x7PaL2PTFg==", + "license": "MIT", + "dependencies": { + "normalize.css": "~8.0.1" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -11605,6 +11615,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", + "license": "MIT" + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", diff --git a/package.json b/package.json index b3fc595..8e5e42e 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "milligram": "^1.4.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-scripts": "5.0.1", diff --git a/src/App.js b/src/App.js index e66dda7..c7a5b0c 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,8 @@ import logo from './logo.svg'; import './App.css'; import {useState} from "react"; +import "milligram"; + function App() { const [email, setEmail] = useState('szulinska@agh.edu.pl'); const [authenticatedUsername, setAuthenticatedUsername] = useState(null); From 462eaa85764847c2c8c2eb0b56e94a051c2ba1d5 Mon Sep 17 00:00:00 2001 From: Weronika Szulinska Date: Sat, 10 May 2025 12:04:21 +0200 Subject: [PATCH 06/10] Framework CSS --- package-lock.json | 16 ++++++++++++++++ package.json | 1 + src/App.js | 2 ++ 3 files changed, 19 insertions(+) diff --git a/package-lock.json b/package-lock.json index 14446ab..25583f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "milligram": "^1.4.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-scripts": "5.0.1", @@ -11350,6 +11351,15 @@ "node": ">=8.6" } }, + "node_modules/milligram": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/milligram/-/milligram-1.4.1.tgz", + "integrity": "sha512-RCgh/boHhcXWOUfKJWm3RJRoUeaEguoipDg0mJ31G0tFfvcpWMUlO1Zlqqr12K4kAXfDlllaidu0x7PaL2PTFg==", + "license": "MIT", + "dependencies": { + "normalize.css": "~8.0.1" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -11605,6 +11615,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", + "license": "MIT" + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", diff --git a/package.json b/package.json index b3fc595..8e5e42e 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "milligram": "^1.4.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-scripts": "5.0.1", diff --git a/src/App.js b/src/App.js index e66dda7..c7a5b0c 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,8 @@ import logo from './logo.svg'; import './App.css'; import {useState} from "react"; +import "milligram"; + function App() { const [email, setEmail] = useState('szulinska@agh.edu.pl'); const [authenticatedUsername, setAuthenticatedUsername] = useState(null); From 29d20f9f6f5b41eb80f221747e6d428f11dc4a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Twoje=20Imi=C4=99?= Date: Sat, 10 May 2025 12:08:47 +0200 Subject: [PATCH 07/10] Merge remote-tracking branch 'origin/reactAppLab' into reactAppLab --- src/App.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index c7a5b0c..ce7004a 100644 --- a/src/App.js +++ b/src/App.js @@ -19,7 +19,7 @@ function App() { function handleChange(event) { setEmail(event.target.value); } - +//l return (

Witaj w systemie do zapisów na zajęcia

From 47627cb92a303ce23704609b112ff121c429448f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Twoje=20Imi=C4=99?= Date: Sat, 10 May 2025 12:09:57 +0200 Subject: [PATCH 08/10] Merge remote-tracking branch 'origin/reactAppLab' into reactAppLab --- src/App.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/App.js b/src/App.js index ce7004a..44bc7e4 100644 --- a/src/App.js +++ b/src/App.js @@ -6,20 +6,10 @@ import "milligram"; function App() { const [email, setEmail] = useState('szulinska@agh.edu.pl'); const [authenticatedUsername, setAuthenticatedUsername] = useState(null); - let message; - - if (email.length < 10) { - message =
Ale masz krótki adres!
; - } else if (email.length < 15) { - message =
Twój adres e-mail jest w sam raz.
; - } else { - message =
Twój adres e-mail jest stanowczo za długi.
; - } function handleChange(event) { setEmail(event.target.value); } -//l return (

Witaj w systemie do zapisów na zajęcia

From 741c7df618fbe49c7b5c56fc2885f3ef8f872589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Twoje=20Imi=C4=99?= Date: Sun, 11 May 2025 09:37:15 +0200 Subject: [PATCH 09/10] Merge remote-tracking branch 'origin/reactAppLab' into reactAppLab --- src/App.js | 15 +++++++-------- src/LoginForm.js | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 src/LoginForm.js diff --git a/src/App.js b/src/App.js index 44bc7e4..f712dde 100644 --- a/src/App.js +++ b/src/App.js @@ -2,23 +2,22 @@ import logo from './logo.svg'; import './App.css'; import {useState} from "react"; import "milligram"; +import LoginForm from "./LoginForm"; function App() { - const [email, setEmail] = useState('szulinska@agh.edu.pl'); const [authenticatedUsername, setAuthenticatedUsername] = useState(null); - function handleChange(event) { - setEmail(event.target.value); + function login(email){ + if(email){ + setAuthenticatedUsername(email); + } } + return (

Witaj w systemie do zapisów na zajęcia

{!authenticatedUsername && ( -
- - - -
+ login(email)}/> )} {authenticatedUsername && (
diff --git a/src/LoginForm.js b/src/LoginForm.js new file mode 100644 index 0000000..15c6bf4 --- /dev/null +++ b/src/LoginForm.js @@ -0,0 +1,14 @@ +import {useState} from "react"; + + +export default function LoginForm(props) { + const [email, setEmail] = useState(''); + + return
+ + setEmail(e.target.value)}/> + +
; +} \ No newline at end of file From b7ac58f135207671976fd6a2fb21f2c703738a9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Twoje=20Imi=C4=99?= Date: Sun, 11 May 2025 10:33:41 +0200 Subject: [PATCH 10/10] Merge remote-tracking branch 'origin/reactAppLab' into reactAppLab --- src/App.js | 21 +++++++++++---------- src/UserPanel.js | 8 ++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 src/UserPanel.js diff --git a/src/App.js b/src/App.js index f712dde..7dfb39c 100644 --- a/src/App.js +++ b/src/App.js @@ -3,6 +3,7 @@ import './App.css'; import {useState} from "react"; import "milligram"; import LoginForm from "./LoginForm"; +import UserPanel from "./UserPanel"; function App() { const [authenticatedUsername, setAuthenticatedUsername] = useState(null); @@ -13,18 +14,18 @@ function App() { } } + function logout(){ + setAuthenticatedUsername(null); + } + return (
-

Witaj w systemie do zapisów na zajęcia

- {!authenticatedUsername && ( - login(email)}/> - )} - {authenticatedUsername && ( -
-

Jesteś zalogowany jako {authenticatedUsername}

- setAuthenticatedUsername(null)}>Wyloguj -
- )} +

System do zapisów na zajęcia

+ { + authenticatedUsername + ? + : + }
); } diff --git a/src/UserPanel.js b/src/UserPanel.js new file mode 100644 index 0000000..6bfae72 --- /dev/null +++ b/src/UserPanel.js @@ -0,0 +1,8 @@ + + +export default function UserPanel({username, onLogout}) { + return
+

Jesteś zalogowany jako {username}!

+ onLogout()}>Wyloguj +
; +} \ No newline at end of file