From aef294aa528f80bd81d5ada8e79403c517bc665d Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:19:30 +0000 Subject: [PATCH 01/24] complete IdCard.js --- IdCard.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 IdCard.js diff --git a/IdCard.js b/IdCard.js new file mode 100644 index 0000000..6648267 --- /dev/null +++ b/IdCard.js @@ -0,0 +1,16 @@ +function IdCard({ lastName, firstName, gender, height, birth, picture }) { + return ( +
+ {firstName} +
+

Last name: {lastName}

+

First name: {firstName}

+

Gender: {gender}

+

Height: {height / 100}m

+

Birth: {birth.toDateString()}

+
+
+ ); +} + +export default IdCard; From 340441cd32e661515d7e4c4246500d03f805fe4f Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:22:41 +0000 Subject: [PATCH 02/24] complete Greetings/js --- src/Greetings.js | 16 ++++++++++++++++ src/IdCard.js | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/Greetings.js create mode 100644 src/IdCard.js diff --git a/src/Greetings.js b/src/Greetings.js new file mode 100644 index 0000000..70fe5a4 --- /dev/null +++ b/src/Greetings.js @@ -0,0 +1,16 @@ +function Greetings({ lang, children }) { + const messages = { + de: "Hallo", + en: "Hello", + es: "Hola", + fr: "Bonjour", + }; + + return ( +
+ {messages[lang]} {children} +
+ ); +} + +export default Greetings; diff --git a/src/IdCard.js b/src/IdCard.js new file mode 100644 index 0000000..6648267 --- /dev/null +++ b/src/IdCard.js @@ -0,0 +1,16 @@ +function IdCard({ lastName, firstName, gender, height, birth, picture }) { + return ( +
+ {firstName} +
+

Last name: {lastName}

+

First name: {firstName}

+

Gender: {gender}

+

Height: {height / 100}m

+

Birth: {birth.toDateString()}

+
+
+ ); +} + +export default IdCard; From 15e1edeb438950cf847abaae84be99889566f044 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:26:10 +0000 Subject: [PATCH 03/24] move IdCard.js to src --- IdCard.js | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 IdCard.js diff --git a/IdCard.js b/IdCard.js deleted file mode 100644 index 6648267..0000000 --- a/IdCard.js +++ /dev/null @@ -1,16 +0,0 @@ -function IdCard({ lastName, firstName, gender, height, birth, picture }) { - return ( -
- {firstName} -
-

Last name: {lastName}

-

First name: {firstName}

-

Gender: {gender}

-

Height: {height / 100}m

-

Birth: {birth.toDateString()}

-
-
- ); -} - -export default IdCard; From 93a04c1f57d2fdcbc3401142c73600fe01bf5d24 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:29:03 +0000 Subject: [PATCH 04/24] complete Random.js --- src/Random.js | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/Random.js diff --git a/src/Random.js b/src/Random.js new file mode 100644 index 0000000..db3b962 --- /dev/null +++ b/src/Random.js @@ -0,0 +1,11 @@ +function Random({ min, max }) { + const rand = Math.floor(Math.random() * (max - min + 1)) + min; + + return ( +

+ Random value between {min} and {max} => {rand} +

+ ); +} + +export default Random; From f5652f9b37ba945887b0132109d9811d74aefa2e Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:31:05 +0000 Subject: [PATCH 05/24] complete BoxColor.js --- src/BoxColor.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/BoxColor.js diff --git a/src/BoxColor.js b/src/BoxColor.js new file mode 100644 index 0000000..0883954 --- /dev/null +++ b/src/BoxColor.js @@ -0,0 +1,17 @@ +function BoxColor({ r, g, b }) { + const rgb = `rgb(${r},${g},${b})`; + const hex = + "#" + + [r, g, b] + .map((x) => x.toString(16).padStart(2, "0")) + .join(""); + + return ( +
+

{rgb}

+

{hex}

+
+ ); +} + +export default BoxColor; From b013b2fcbe79b6cee4946bebbbba84619986d9fc Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:32:08 +0000 Subject: [PATCH 06/24] complete CreditCard.js --- src/CreditCard.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/CreditCard.js diff --git a/src/CreditCard.js b/src/CreditCard.js new file mode 100644 index 0000000..50fa749 --- /dev/null +++ b/src/CreditCard.js @@ -0,0 +1,26 @@ +function CreditCard({ + type, + number, + expirationMonth, + expirationYear, + bank, + owner, + bgColor, + color, +}) { + const last4 = number.slice(-4); + + return ( +
+
{type}
+
•••• •••• •••• {last4}
+
+ Expires {String(expirationMonth).padStart(2, "0")}/{String(expirationYear).slice(-2)} + {bank} +
+
{owner}
+
+ ); +} + +export default CreditCard; From 2a9941bb1f3476355012525901199beceab35cd4 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:33:08 +0000 Subject: [PATCH 07/24] complete Rating.js --- src/Rating.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/Rating.js diff --git a/src/Rating.js b/src/Rating.js new file mode 100644 index 0000000..bc6eb7e --- /dev/null +++ b/src/Rating.js @@ -0,0 +1,8 @@ +function Rating({ children }) { + const rounded = Math.round(children); + const stars = "★".repeat(rounded) + "☆".repeat(5 - rounded); + + return
{stars}
; +} + +export default Rating; From f2a390e859503237ca4a163a084c5944070a2bd2 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:33:59 +0000 Subject: [PATCH 08/24] complete DriverCard.js --- src/DriverCard.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/DriverCard.js diff --git a/src/DriverCard.js b/src/DriverCard.js new file mode 100644 index 0000000..856989f --- /dev/null +++ b/src/DriverCard.js @@ -0,0 +1,16 @@ +import Rating from "./Rating"; + +function DriverCard({ name, rating, img, car }) { + return ( +
+ {name} +
+

{name}

+ {rating} +

{car.model} — {car.licensePlate}

+
+
+ ); +} + +export default DriverCard; From e45cc84f8d3de7e019aa5c1dbdaac038b8061d8d Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:34:47 +0000 Subject: [PATCH 09/24] complete LikeButton --- src/LikeButton | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/LikeButton diff --git a/src/LikeButton b/src/LikeButton new file mode 100644 index 0000000..56318e7 --- /dev/null +++ b/src/LikeButton @@ -0,0 +1,18 @@ +import { useState } from "react"; + +const colors = ['purple','blue','green','yellow','orange','red']; + +function LikeButton() { + const [count, setCount] = useState(0); + + return ( + + ); +} + +export default LikeButton; From 19ddec3a437c56d5629140db310739e599d3b602 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:36:09 +0000 Subject: [PATCH 10/24] save LikeButton as LikeButton.js --- src/{LikeButton => LikeButton.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{LikeButton => LikeButton.js} (100%) diff --git a/src/LikeButton b/src/LikeButton.js similarity index 100% rename from src/LikeButton rename to src/LikeButton.js From 6b41655ca9e45ad96c2828175fe11180871d0e65 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:37:17 +0000 Subject: [PATCH 11/24] comlete ClickablePicture.js --- src/ClickablePicture.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/ClickablePicture.js diff --git a/src/ClickablePicture.js b/src/ClickablePicture.js new file mode 100644 index 0000000..ddf4f8f --- /dev/null +++ b/src/ClickablePicture.js @@ -0,0 +1,16 @@ +import { useState } from "react"; + +function ClickablePicture({ img, imgClicked }) { + const [clicked, setClicked] = useState(false); + + return ( + clickable setClicked(!clicked)} + style={{ cursor: "pointer" }} + /> + ); +} + +export default ClickablePicture; From 6fca9765807f79301954259860e3adc735d57fab Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:37:59 +0000 Subject: [PATCH 12/24] complete Dice.js --- src/Dice.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/Dice.js diff --git a/src/Dice.js b/src/Dice.js new file mode 100644 index 0000000..a9f9100 --- /dev/null +++ b/src/Dice.js @@ -0,0 +1,26 @@ +import { useState } from "react"; + +const diceImages = [ + "/assets/images/dice1.png", + "/assets/images/dice2.png", + "/assets/images/dice3.png", + "/assets/images/dice4.png", + "/assets/images/dice5.png", + "/assets/images/dice6.png", +]; + +function Dice() { + const [dice, setDice] = useState("/assets/images/dice-empty.png"); + + const rollDice = () => { + setDice("/assets/images/dice-empty.png"); + setTimeout(() => { + const random = Math.floor(Math.random() * 6); + setDice(diceImages[random]); + }, 1000); + }; + + return dice; +} + +export default Dice; From 045e0907c35e9c14c89da458e59839c852b0a83a Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:38:59 +0000 Subject: [PATCH 13/24] complete Carousel.js --- src/Carousel.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/Carousel.js diff --git a/src/Carousel.js b/src/Carousel.js new file mode 100644 index 0000000..2b03ea6 --- /dev/null +++ b/src/Carousel.js @@ -0,0 +1,21 @@ +import { useState } from "react"; + +function Carousel({ images }) { + const [index, setIndex] = useState(0); + + return ( +
+ + + carousel + + +
+ ); +} + +export default Carousel; From 7fc92dd3abce2b1c0068abe65ea2f9ba1db1032c Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:39:55 +0000 Subject: [PATCH 14/24] complete NumbersTable.js --- src/NumbersTable.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/NumbersTable.js diff --git a/src/NumbersTable.js b/src/NumbersTable.js new file mode 100644 index 0000000..c6cf5c2 --- /dev/null +++ b/src/NumbersTable.js @@ -0,0 +1,22 @@ +function NumbersTable({ limit }) { + const array = Array.from({ length: limit }, (_, i) => i + 1); + + return ( +
+ {array.map((n) => ( +
+ {n} +
+ ))} +
+ ); +} + +export default NumbersTable; From 0917ff18cf8404da3ce1ecd4c40f9352f39dd658 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:40:51 +0000 Subject: [PATCH 15/24] complete RGBColorPicker.js --- src/RGBColorPicker.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/RGBColorPicker.js diff --git a/src/RGBColorPicker.js b/src/RGBColorPicker.js new file mode 100644 index 0000000..53ef10c --- /dev/null +++ b/src/RGBColorPicker.js @@ -0,0 +1,29 @@ +function SingleColorPicker({ color, value, onChange }) { + const label = { r: 'Red', g: 'Green', b: 'Blue' }[color]; + + return ( +
+
+ + onChange(Number(e.target.value))} + /> + + {label} +
+ ); +} + +export default SingleColorPicker; From a192a798a748ae9da5cd3e1b88ba333b3c015526 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:43:05 +0000 Subject: [PATCH 16/24] complete SingleColorPicker.js --- src/RGBColorPicker.js | 35 +++++++++++++++-------------------- src/SingleColorPicker.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 src/SingleColorPicker.js diff --git a/src/RGBColorPicker.js b/src/RGBColorPicker.js index 53ef10c..034448c 100644 --- a/src/RGBColorPicker.js +++ b/src/RGBColorPicker.js @@ -1,29 +1,24 @@ -function SingleColorPicker({ color, value, onChange }) { - const label = { r: 'Red', g: 'Green', b: 'Blue' }[color]; +import { useState } from "react"; +import SingleColorPicker from "./SingleColorPicker"; + +function RGBColorPicker() { + const [rValue, setR] = useState(0); + const [gValue, setG] = useState(0); + const [bValue, setB] = useState(0); + + const rgb = `rgb(${rValue},${gValue},${bValue})`; return (
+ + + +
- - onChange(Number(e.target.value))} - /> - - {label}
); } -export default SingleColorPicker; +export default RGBColorPicker; diff --git a/src/SingleColorPicker.js b/src/SingleColorPicker.js new file mode 100644 index 0000000..53ef10c --- /dev/null +++ b/src/SingleColorPicker.js @@ -0,0 +1,29 @@ +function SingleColorPicker({ color, value, onChange }) { + const label = { r: 'Red', g: 'Green', b: 'Blue' }[color]; + + return ( +
+
+ + onChange(Number(e.target.value))} + /> + + {label} +
+ ); +} + +export default SingleColorPicker; From fa90059480b17364c1a889e4c654a7d2bca5019c Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 16:56:30 +0000 Subject: [PATCH 17/24] complete IdCard.css --- src/components/IdCard/IdCard.css | 15 +++++++++++++++ src/{ => components/IdCard}/IdCard.js | 0 2 files changed, 15 insertions(+) create mode 100644 src/components/IdCard/IdCard.css rename src/{ => components/IdCard}/IdCard.js (100%) diff --git a/src/components/IdCard/IdCard.css b/src/components/IdCard/IdCard.css new file mode 100644 index 0000000..8338b09 --- /dev/null +++ b/src/components/IdCard/IdCard.css @@ -0,0 +1,15 @@ +.IdCard { + display: flex; + border: 1px solid #ccc; + padding: 16px; + margin: 15px 0; +} + +.IdCard img { + width: 120px; + margin-right: 20px; +} + +.IdCard-info p { + margin: 4px 0; +} diff --git a/src/IdCard.js b/src/components/IdCard/IdCard.js similarity index 100% rename from src/IdCard.js rename to src/components/IdCard/IdCard.js From ec1df4fcbc1b38baeb7d6deda17e631f29895bbd Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 17:00:14 +0000 Subject: [PATCH 18/24] complete Greetings.css --- src/components/Greetings/Greetings.css | 5 +++++ src/{ => components/Greetings}/Greetings.js | 0 2 files changed, 5 insertions(+) create mode 100644 src/components/Greetings/Greetings.css rename src/{ => components/Greetings}/Greetings.js (100%) diff --git a/src/components/Greetings/Greetings.css b/src/components/Greetings/Greetings.css new file mode 100644 index 0000000..86fa2af --- /dev/null +++ b/src/components/Greetings/Greetings.css @@ -0,0 +1,5 @@ +.Greetings { + border: 1px solid black; + padding: 12px; + margin: 15px 0; +} diff --git a/src/Greetings.js b/src/components/Greetings/Greetings.js similarity index 100% rename from src/Greetings.js rename to src/components/Greetings/Greetings.js From 78792d70db9cd71900b5a46d85129b7af58d6cca Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 17:02:06 +0000 Subject: [PATCH 19/24] complete Random.css --- src/components/Random/Random.css | 5 +++++ src/{ => components/Random}/Random.js | 0 2 files changed, 5 insertions(+) create mode 100644 src/components/Random/Random.css rename src/{ => components/Random}/Random.js (100%) diff --git a/src/components/Random/Random.css b/src/components/Random/Random.css new file mode 100644 index 0000000..57b0851 --- /dev/null +++ b/src/components/Random/Random.css @@ -0,0 +1,5 @@ +.Random { + border: 1px solid black; + padding: 12px; + margin: 15px 0; +} diff --git a/src/Random.js b/src/components/Random/Random.js similarity index 100% rename from src/Random.js rename to src/components/Random/Random.js From 7e7dd3da0a75f0d4794bb52b074e09ecfe41c9ce Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 17:31:35 +0000 Subject: [PATCH 20/24] complete BoxColor.css --- src/components/BoxColor/BoxColor.css | 6 ++++++ src/{ => components/BoxColor}/BoxColor.js | 0 2 files changed, 6 insertions(+) create mode 100644 src/components/BoxColor/BoxColor.css rename src/{ => components/BoxColor}/BoxColor.js (100%) diff --git a/src/components/BoxColor/BoxColor.css b/src/components/BoxColor/BoxColor.css new file mode 100644 index 0000000..bfaa4a5 --- /dev/null +++ b/src/components/BoxColor/BoxColor.css @@ -0,0 +1,6 @@ +.BoxColor { + padding: 20px; + border: 1px solid black; + margin: 15px 0; + text-align: center; +} diff --git a/src/BoxColor.js b/src/components/BoxColor/BoxColor.js similarity index 100% rename from src/BoxColor.js rename to src/components/BoxColor/BoxColor.js From a1453f0ce0c2b0bd033b77bdff108663c6c09097 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 17:44:27 +0000 Subject: [PATCH 21/24] complete all necessary css files --- src/components/Carousel/Carousel.css | 10 +++++++ src/{ => components/Carousel}/Carousel.js | 0 .../ClickablePicture/ClickablePicture.css | 4 +++ .../ClickablePicture}/ClickablePicture.js | 0 src/components/CreditCard/CreditCard.css | 26 +++++++++++++++++++ src/{ => components/CreditCard}/CreditCard.js | 0 src/components/Dice/Dice.css | 4 +++ src/{ => components/Dice}/Dice.js | 0 src/components/DriverCard/DriverCard.css | 15 +++++++++++ src/{ => components/DriverCard}/DriverCard.js | 0 src/components/LikeButton/LikeButton.css | 5 ++++ src/{ => components/LikeButton}/LikeButton.js | 0 src/components/NumbersTable/NumbersTable.css | 10 +++++++ .../NumbersTable}/NumbersTable.js | 0 .../RGBColorPicker/RGBColorPicker.css | 19 ++++++++++++++ .../RGBColorPicker}/RGBColorPicker.js | 0 .../RGBColorPicker}/SingleColorPicker.js | 0 src/components/Rating/Rating.css | 4 +++ src/{ => components/Rating}/Rating.js | 0 19 files changed, 97 insertions(+) create mode 100644 src/components/Carousel/Carousel.css rename src/{ => components/Carousel}/Carousel.js (100%) create mode 100644 src/components/ClickablePicture/ClickablePicture.css rename src/{ => components/ClickablePicture}/ClickablePicture.js (100%) create mode 100644 src/components/CreditCard/CreditCard.css rename src/{ => components/CreditCard}/CreditCard.js (100%) create mode 100644 src/components/Dice/Dice.css rename src/{ => components/Dice}/Dice.js (100%) create mode 100644 src/components/DriverCard/DriverCard.css rename src/{ => components/DriverCard}/DriverCard.js (100%) create mode 100644 src/components/LikeButton/LikeButton.css rename src/{ => components/LikeButton}/LikeButton.js (100%) create mode 100644 src/components/NumbersTable/NumbersTable.css rename src/{ => components/NumbersTable}/NumbersTable.js (100%) create mode 100644 src/components/RGBColorPicker/RGBColorPicker.css rename src/{ => components/RGBColorPicker}/RGBColorPicker.js (100%) rename src/{ => components/RGBColorPicker}/SingleColorPicker.js (100%) create mode 100644 src/components/Rating/Rating.css rename src/{ => components/Rating}/Rating.js (100%) diff --git a/src/components/Carousel/Carousel.css b/src/components/Carousel/Carousel.css new file mode 100644 index 0000000..2949f2a --- /dev/null +++ b/src/components/Carousel/Carousel.css @@ -0,0 +1,10 @@ +.Carousel { + display: flex; + align-items: center; + gap: 10px; + margin: 15px 0; +} + +.Carousel img { + width: 200px; +} diff --git a/src/Carousel.js b/src/components/Carousel/Carousel.js similarity index 100% rename from src/Carousel.js rename to src/components/Carousel/Carousel.js diff --git a/src/components/ClickablePicture/ClickablePicture.css b/src/components/ClickablePicture/ClickablePicture.css new file mode 100644 index 0000000..72287c4 --- /dev/null +++ b/src/components/ClickablePicture/ClickablePicture.css @@ -0,0 +1,4 @@ +.ClickablePicture { + width: 200px; + cursor: pointer; +} diff --git a/src/ClickablePicture.js b/src/components/ClickablePicture/ClickablePicture.js similarity index 100% rename from src/ClickablePicture.js rename to src/components/ClickablePicture/ClickablePicture.js diff --git a/src/components/CreditCard/CreditCard.css b/src/components/CreditCard/CreditCard.css new file mode 100644 index 0000000..267e322 --- /dev/null +++ b/src/components/CreditCard/CreditCard.css @@ -0,0 +1,26 @@ +.CreditCard { + width: 280px; + padding: 20px; + border-radius: 10px; + margin: 15px 0; + font-size: 1.1rem; +} + +.type { + text-align: right; + font-size: 1.4rem; +} + +.number { + font-size: 1.6rem; + margin: 20px 0; +} + +.details { + display: flex; + justify-content: space-between; +} + +.owner { + margin-top: 10px; +} diff --git a/src/CreditCard.js b/src/components/CreditCard/CreditCard.js similarity index 100% rename from src/CreditCard.js rename to src/components/CreditCard/CreditCard.js diff --git a/src/components/Dice/Dice.css b/src/components/Dice/Dice.css new file mode 100644 index 0000000..81f6bbf --- /dev/null +++ b/src/components/Dice/Dice.css @@ -0,0 +1,4 @@ +.Dice { + width: 150px; + cursor: pointer; +} diff --git a/src/Dice.js b/src/components/Dice/Dice.js similarity index 100% rename from src/Dice.js rename to src/components/Dice/Dice.js diff --git a/src/components/DriverCard/DriverCard.css b/src/components/DriverCard/DriverCard.css new file mode 100644 index 0000000..1d49590 --- /dev/null +++ b/src/components/DriverCard/DriverCard.css @@ -0,0 +1,15 @@ +.DriverCard { + background-color: #455eb5; + color: white; + display: flex; + align-items: center; + padding: 20px; + border-radius: 10px; + margin: 15px 0; +} + +.DriverCard img { + width: 100px; + border-radius: 50%; + margin-right: 20px; +} diff --git a/src/DriverCard.js b/src/components/DriverCard/DriverCard.js similarity index 100% rename from src/DriverCard.js rename to src/components/DriverCard/DriverCard.js diff --git a/src/components/LikeButton/LikeButton.css b/src/components/LikeButton/LikeButton.css new file mode 100644 index 0000000..c632926 --- /dev/null +++ b/src/components/LikeButton/LikeButton.css @@ -0,0 +1,5 @@ +.LikeButton { + padding: 10px 20px; + font-size: 1.2rem; + margin: 10px; +} diff --git a/src/LikeButton.js b/src/components/LikeButton/LikeButton.js similarity index 100% rename from src/LikeButton.js rename to src/components/LikeButton/LikeButton.js diff --git a/src/components/NumbersTable/NumbersTable.css b/src/components/NumbersTable/NumbersTable.css new file mode 100644 index 0000000..d780e79 --- /dev/null +++ b/src/components/NumbersTable/NumbersTable.css @@ -0,0 +1,10 @@ +.NumbersTable { + display: grid; + grid-template-columns: repeat(6, 80px); +} + +.cell { + border: 1px solid black; + padding: 20px; + text-align: center; +} diff --git a/src/NumbersTable.js b/src/components/NumbersTable/NumbersTable.js similarity index 100% rename from src/NumbersTable.js rename to src/components/NumbersTable/NumbersTable.js diff --git a/src/components/RGBColorPicker/RGBColorPicker.css b/src/components/RGBColorPicker/RGBColorPicker.css new file mode 100644 index 0000000..b295033 --- /dev/null +++ b/src/components/RGBColorPicker/RGBColorPicker.css @@ -0,0 +1,19 @@ +.SingleColorPicker { + display: flex; + align-items: center; + margin: 10px 0; +} + +.SingleColorPicker .preview { + width: 40px; + height: 40px; + margin-right: 10px; + border: 1px solid #000; +} + +.color-preview { + width: 100px; + height: 100px; + margin-top: 15px; + border: 1px solid #000; +} diff --git a/src/RGBColorPicker.js b/src/components/RGBColorPicker/RGBColorPicker.js similarity index 100% rename from src/RGBColorPicker.js rename to src/components/RGBColorPicker/RGBColorPicker.js diff --git a/src/SingleColorPicker.js b/src/components/RGBColorPicker/SingleColorPicker.js similarity index 100% rename from src/SingleColorPicker.js rename to src/components/RGBColorPicker/SingleColorPicker.js diff --git a/src/components/Rating/Rating.css b/src/components/Rating/Rating.css new file mode 100644 index 0000000..6b15990 --- /dev/null +++ b/src/components/Rating/Rating.css @@ -0,0 +1,4 @@ +.Rating { + font-size: 2rem; + margin: 10px 0; +} diff --git a/src/Rating.js b/src/components/Rating/Rating.js similarity index 100% rename from src/Rating.js rename to src/components/Rating/Rating.js From 0d113949df9852158bb43a5d768e41ab94ee3fc5 Mon Sep 17 00:00:00 2001 From: SiyaM108 Date: Tue, 9 Dec 2025 17:55:24 +0000 Subject: [PATCH 22/24] update all functions --- src/components/BoxColor/BoxColor.js | 14 ++++----- src/components/Carousel/Carousel.js | 5 +-- .../ClickablePicture/ClickablePicture.js | 7 +++-- src/components/CreditCard/CreditCard.js | 11 +++++-- src/components/Dice/Dice.js | 31 ++++++++++--------- src/components/DriverCard/DriverCard.js | 5 +-- src/components/Greetings/Greetings.js | 8 +++-- src/components/IdCard/IdCard.js | 7 +++-- src/components/LikeButton/LikeButton.js | 6 ++-- src/components/NumbersTable/NumbersTable.js | 15 +++++---- .../RGBColorPicker/RGBColorPicker.js | 25 +++++++-------- .../RGBColorPicker/SingleColorPicker.js | 25 +++++++-------- src/components/Random/Random.js | 10 +++--- src/components/Rating/Rating.js | 4 ++- 14 files changed, 96 insertions(+), 77 deletions(-) diff --git a/src/components/BoxColor/BoxColor.js b/src/components/BoxColor/BoxColor.js index 0883954..84279ba 100644 --- a/src/components/BoxColor/BoxColor.js +++ b/src/components/BoxColor/BoxColor.js @@ -1,13 +1,13 @@ +import './BoxColor.css'; + function BoxColor({ r, g, b }) { - const rgb = `rgb(${r},${g},${b})`; - const hex = - "#" + - [r, g, b] - .map((x) => x.toString(16).padStart(2, "0")) - .join(""); + const rgb = `rgb(${r}, ${g}, ${b})`; + const hex = "#" + [r, g, b] + .map((v) => v.toString(16).padStart(2, "0")) + .join(""); return ( -
+

{rgb}

{hex}

diff --git a/src/components/Carousel/Carousel.js b/src/components/Carousel/Carousel.js index 2b03ea6..b025900 100644 --- a/src/components/Carousel/Carousel.js +++ b/src/components/Carousel/Carousel.js @@ -1,10 +1,11 @@ -import { useState } from "react"; +import './Carousel.css'; +import { useState } from 'react'; function Carousel({ images }) { const [index, setIndex] = useState(0); return ( -
+
diff --git a/src/components/ClickablePicture/ClickablePicture.js b/src/components/ClickablePicture/ClickablePicture.js index ddf4f8f..b09a78c 100644 --- a/src/components/ClickablePicture/ClickablePicture.js +++ b/src/components/ClickablePicture/ClickablePicture.js @@ -1,4 +1,5 @@ -import { useState } from "react"; +import './ClickablePicture.css'; +import { useState } from 'react'; function ClickablePicture({ img, imgClicked }) { const [clicked, setClicked] = useState(false); @@ -6,9 +7,9 @@ function ClickablePicture({ img, imgClicked }) { return ( clickable setClicked(!clicked)} - style={{ cursor: "pointer" }} + className="ClickablePicture" + alt="toggle" /> ); } diff --git a/src/components/CreditCard/CreditCard.js b/src/components/CreditCard/CreditCard.js index 50fa749..b3be392 100644 --- a/src/components/CreditCard/CreditCard.js +++ b/src/components/CreditCard/CreditCard.js @@ -1,3 +1,5 @@ +import './CreditCard.css'; + function CreditCard({ type, number, @@ -11,13 +13,18 @@ function CreditCard({ const last4 = number.slice(-4); return ( -
+
{type}
•••• •••• •••• {last4}
+
- Expires {String(expirationMonth).padStart(2, "0")}/{String(expirationYear).slice(-2)} + + Expires {String(expirationMonth).padStart(2, "0")}/ + {String(expirationYear).slice(-2)} + {bank}
+
{owner}
); diff --git a/src/components/Dice/Dice.js b/src/components/Dice/Dice.js index a9f9100..8f19d6e 100644 --- a/src/components/Dice/Dice.js +++ b/src/components/Dice/Dice.js @@ -1,26 +1,27 @@ -import { useState } from "react"; - -const diceImages = [ - "/assets/images/dice1.png", - "/assets/images/dice2.png", - "/assets/images/dice3.png", - "/assets/images/dice4.png", - "/assets/images/dice5.png", - "/assets/images/dice6.png", -]; +import './Dice.css'; +import { useState } from 'react'; function Dice() { - const [dice, setDice] = useState("/assets/images/dice-empty.png"); + const diceImgs = [ + '/assets/images/dice1.png', + '/assets/images/dice2.png', + '/assets/images/dice3.png', + '/assets/images/dice4.png', + '/assets/images/dice5.png', + '/assets/images/dice6.png', + ]; + + const [dice, setDice] = useState('/assets/images/dice-empty.png'); - const rollDice = () => { - setDice("/assets/images/dice-empty.png"); + const roll = () => { + setDice('/assets/images/dice-empty.png'); setTimeout(() => { const random = Math.floor(Math.random() * 6); - setDice(diceImages[random]); + setDice(diceImgs[random]); }, 1000); }; - return dice; + return dice; } export default Dice; diff --git a/src/components/DriverCard/DriverCard.js b/src/components/DriverCard/DriverCard.js index 856989f..68b2e43 100644 --- a/src/components/DriverCard/DriverCard.js +++ b/src/components/DriverCard/DriverCard.js @@ -1,8 +1,9 @@ -import Rating from "./Rating"; +import './DriverCard.css'; +import Rating from '../Rating/Rating'; function DriverCard({ name, rating, img, car }) { return ( -
+
{name}

{name}

diff --git a/src/components/Greetings/Greetings.js b/src/components/Greetings/Greetings.js index 70fe5a4..89f0293 100644 --- a/src/components/Greetings/Greetings.js +++ b/src/components/Greetings/Greetings.js @@ -1,5 +1,7 @@ +import './Greetings.css'; + function Greetings({ lang, children }) { - const messages = { + const text = { de: "Hallo", en: "Hello", es: "Hola", @@ -7,8 +9,8 @@ function Greetings({ lang, children }) { }; return ( -
- {messages[lang]} {children} +
+ {text[lang]} {children}
); } diff --git a/src/components/IdCard/IdCard.js b/src/components/IdCard/IdCard.js index 6648267..ed3aef4 100644 --- a/src/components/IdCard/IdCard.js +++ b/src/components/IdCard/IdCard.js @@ -1,8 +1,11 @@ +import './IdCard.css'; + function IdCard({ lastName, firstName, gender, height, birth, picture }) { return ( -
+
{firstName} -
+ +

Last name: {lastName}

First name: {firstName}

Gender: {gender}

diff --git a/src/components/LikeButton/LikeButton.js b/src/components/LikeButton/LikeButton.js index 56318e7..a79e928 100644 --- a/src/components/LikeButton/LikeButton.js +++ b/src/components/LikeButton/LikeButton.js @@ -1,12 +1,14 @@ -import { useState } from "react"; +import './LikeButton.css'; +import { useState } from 'react'; -const colors = ['purple','blue','green','yellow','orange','red']; +const colors = ['purple', 'blue', 'green', 'yellow', 'orange', 'red']; function LikeButton() { const [count, setCount] = useState(0); return ( + const prev = () => setIndex((index - 1 + images.length) % images.length); + const next = () => setIndex((index + 1) % images.length); + return ( +
+ carousel - - +
); } diff --git a/src/components/ClickablePicture/ClickablePicture.css b/src/components/ClickablePicture/ClickablePicture.css index 72287c4..30a27e0 100644 --- a/src/components/ClickablePicture/ClickablePicture.css +++ b/src/components/ClickablePicture/ClickablePicture.css @@ -1,4 +1,5 @@ -.ClickablePicture { - width: 200px; +.clickable-picture { cursor: pointer; + width: 200px; + margin: 10px 0; } diff --git a/src/components/ClickablePicture/ClickablePicture.js b/src/components/ClickablePicture/ClickablePicture.js index b09a78c..9d8b744 100644 --- a/src/components/ClickablePicture/ClickablePicture.js +++ b/src/components/ClickablePicture/ClickablePicture.js @@ -1,15 +1,15 @@ -import './ClickablePicture.css'; -import { useState } from 'react'; +import "./ClickablePicture.css"; +import { useState } from "react"; function ClickablePicture({ img, imgClicked }) { const [clicked, setClicked] = useState(false); return ( clickable setClicked(!clicked)} - className="ClickablePicture" - alt="toggle" /> ); } diff --git a/src/components/CreditCard/CreditCard.css b/src/components/CreditCard/CreditCard.css index 267e322..01837f0 100644 --- a/src/components/CreditCard/CreditCard.css +++ b/src/components/CreditCard/CreditCard.css @@ -1,22 +1,23 @@ -.CreditCard { - width: 280px; - padding: 20px; +.credit-card { + width: 300px; border-radius: 10px; - margin: 15px 0; - font-size: 1.1rem; + padding: 20px; + margin: 12px; + display: flex; + flex-direction: column; } -.type { - text-align: right; - font-size: 1.4rem; +.card-logo { + width: 60px; + align-self: flex-end; } -.number { - font-size: 1.6rem; +.card-number { + font-size: 1.5rem; margin: 20px 0; } -.details { +.exp-bank { display: flex; justify-content: space-between; } diff --git a/src/components/CreditCard/CreditCard.js b/src/components/CreditCard/CreditCard.js index b3be392..d1f2f6f 100644 --- a/src/components/CreditCard/CreditCard.js +++ b/src/components/CreditCard/CreditCard.js @@ -1,4 +1,4 @@ -import './CreditCard.css'; +import "./CreditCard.css"; function CreditCard({ type, @@ -10,14 +10,20 @@ function CreditCard({ bgColor, color, }) { - const last4 = number.slice(-4); + const cardTypeImg = + type === "Visa" + ? "/assets/images/visa.png" + : "/assets/images/master-card.svg"; + + const maskedNumber = "•••• •••• •••• " + number.slice(-4); return ( -
-
{type}
-
•••• •••• •••• {last4}
+
+ {type} + +
{maskedNumber}
-
+
Expires {String(expirationMonth).padStart(2, "0")}/ {String(expirationYear).slice(-2)} diff --git a/src/components/Dice/Dice.css b/src/components/Dice/Dice.css index 81f6bbf..1aa84ef 100644 --- a/src/components/Dice/Dice.css +++ b/src/components/Dice/Dice.css @@ -1,4 +1,5 @@ -.Dice { - width: 150px; +.dice { + width: 100px; cursor: pointer; + margin: 10px 0; } diff --git a/src/components/Dice/Dice.js b/src/components/Dice/Dice.js index 8f19d6e..7cc2fad 100644 --- a/src/components/Dice/Dice.js +++ b/src/components/Dice/Dice.js @@ -1,27 +1,35 @@ -import './Dice.css'; -import { useState } from 'react'; +import { useState } from "react"; +import "./Dice.css"; + +const diceImages = [ + "/assets/images/dice1.png", + "/assets/images/dice2.png", + "/assets/images/dice3.png", + "/assets/images/dice4.png", + "/assets/images/dice5.png", + "/assets/images/dice6.png", +]; function Dice() { - const diceImgs = [ - '/assets/images/dice1.png', - '/assets/images/dice2.png', - '/assets/images/dice3.png', - '/assets/images/dice4.png', - '/assets/images/dice5.png', - '/assets/images/dice6.png', - ]; + const [dice, setDice] = useState(diceImages[0]); - const [dice, setDice] = useState('/assets/images/dice-empty.png'); + const rollDice = () => { + setDice("/assets/images/dice-empty.png"); - const roll = () => { - setDice('/assets/images/dice-empty.png'); setTimeout(() => { const random = Math.floor(Math.random() * 6); - setDice(diceImgs[random]); + setDice(diceImages[random]); }, 1000); }; - return dice; + return ( + dice + ); } export default Dice; diff --git a/src/components/DriverCard/DriverCard.css b/src/components/DriverCard/DriverCard.css index 1d49590..635e18d 100644 --- a/src/components/DriverCard/DriverCard.css +++ b/src/components/DriverCard/DriverCard.css @@ -1,15 +1,15 @@ -.DriverCard { +.driver-card { background-color: #455eb5; color: white; + border-radius: 10px; + padding: 20px; display: flex; align-items: center; - padding: 20px; - border-radius: 10px; - margin: 15px 0; + margin: 10px 0; } -.DriverCard img { - width: 100px; +.driver-card img { + width: 120px; border-radius: 50%; margin-right: 20px; } diff --git a/src/components/DriverCard/DriverCard.js b/src/components/DriverCard/DriverCard.js index 68b2e43..18ad367 100644 --- a/src/components/DriverCard/DriverCard.js +++ b/src/components/DriverCard/DriverCard.js @@ -1,14 +1,16 @@ -import './DriverCard.css'; -import Rating from '../Rating/Rating'; +import "./DriverCard.css"; +import Rating from "../Rating/Rating"; function DriverCard({ name, rating, img, car }) { return ( -
+
{name}
-

{name}

+

{name}

{rating} -

{car.model} — {car.licensePlate}

+

+ {car.model} – {car.licensePlate} +

); diff --git a/src/components/LikeButton/LikeButton.css b/src/components/LikeButton/LikeButton.css index c632926..f1e8633 100644 --- a/src/components/LikeButton/LikeButton.css +++ b/src/components/LikeButton/LikeButton.css @@ -1,5 +1,9 @@ -.LikeButton { +.like-button { padding: 10px 20px; - font-size: 1.2rem; margin: 10px; + border: none; + color: white; + cursor: pointer; + border-radius: 6px; + font-size: 1rem; } diff --git a/src/components/LikeButton/LikeButton.js b/src/components/LikeButton/LikeButton.js index a79e928..c523f2f 100644 --- a/src/components/LikeButton/LikeButton.js +++ b/src/components/LikeButton/LikeButton.js @@ -1,15 +1,17 @@ -import './LikeButton.css'; -import { useState } from 'react'; +import { useState } from "react"; +import "./LikeButton.css"; -const colors = ['purple', 'blue', 'green', 'yellow', 'orange', 'red']; +const colors = ["purple", "blue", "green", "yellow", "orange", "red"]; function LikeButton() { const [count, setCount] = useState(0); + const color = colors[count % colors.length]; + return (