diff --git a/.eslintrc.json b/.eslintrc.json index b51a26a..51f38ce 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -12,7 +12,7 @@ "ecmaVersion": 2018, "sourceType": "module" }, - "extends": ["airbnb", "plugin:react/recommended", "plugin:react-hooks/recommended"], + "extends": ["plugin:react/recommended", "plugin:react-hooks/recommended"], "plugins": ["react"], "rules": { "react/jsx-filename-extension": ["warn", { "extensions": [".js", ".jsx"] }], diff --git a/src/assets/reserve_page_background.png b/src/assets/reserve_page_background.png deleted file mode 100644 index ee9003d..0000000 Binary files a/src/assets/reserve_page_background.png and /dev/null differ diff --git a/src/components/Button/TertiaryButton.js b/src/components/Button/TertiaryButton.js index ae978e3..d1bd8f6 100644 --- a/src/components/Button/TertiaryButton.js +++ b/src/components/Button/TertiaryButton.js @@ -6,12 +6,26 @@ const TertiaryButton = ({ children }) => {children} const StyledButton = styled.button` display: flex; + border: 2px solid black; justify-content: center; align-items: center; text-align: center; - border: none; + padding: 1rem 7rem; + border-radius: 2rem; + font-size: 1.5rem; background-color: transparent; + color: black; /* Set the default text color */ cursor: pointer; + transition: background-color 0.3s, color 0.3s; + + & >.grey{ + color: white; + } + + &:hover { + background-color: grey; + color: white; + } `; TertiaryButton.propTypes = { diff --git a/src/components/Card/DisplayCartCard.js b/src/components/Card/DisplayCartCard.js new file mode 100644 index 0000000..ba685c7 --- /dev/null +++ b/src/components/Card/DisplayCartCard.js @@ -0,0 +1,81 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from '@emotion/styled'; +import { FaFacebook, FaTwitter, FaInstagram } from 'react-icons/fa'; +import { Link } from 'react-router-dom'; + +const DisplayCartCard = ({ imageName, name, shortNote }) => ( + + {name} + + {name} + {shortNote} + + + + + + + + + + + + + +); + +DisplayCartCard.propTypes = { + imageName: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, + shortNote: PropTypes.string.isRequired, +}; + +const Container = styled(Link)` + display: flex; + flex-direction: column; + text-decoration: none; + width: 300px; +// border: 1px solid #ccc; + border-radius: 8px; + overflow: hidden; +// box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +`; + +const Image = styled.img` + width: 100%; + height: 200px; + border: 1px solid blue; + border-radius: 50%; + margin-top: 1rem; + object-fit: cover; +`; + +const Content = styled.div` + padding: 16px; + align-items: center; + text-align: center; +`; + +const Name = styled.h2` + font-size: 1.5rem; + margin-bottom: 8px; +`; + +const Note = styled.p` + font-size: 1rem; + margin-bottom: 16px; +`; + +const Icons = styled.div` + display: flex; + gap: 15px; + margin-left: 5rem; +`; + +const IconLink = styled.a` + color: #333; + font-size: 1.5rem; +`; + +export default DisplayCartCard; diff --git a/src/components/Card/DisplayItemCard.js b/src/components/Card/DisplayItemCard.js new file mode 100644 index 0000000..43c5de8 --- /dev/null +++ b/src/components/Card/DisplayItemCard.js @@ -0,0 +1,167 @@ +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; +import styled from '@emotion/styled'; +import { FaCog, FaArrowRight, FaSyncAlt } from 'react-icons/fa'; + +const DisplayItemCard = ({ name, imgSrc, amount, description }) => { + const [rotation, setRotation] = useState(0); + + const handleRotate = () => { + setRotation((prevRotation) => (prevRotation + 90) % 360); + }; + return ( + + + + + + + + + {name} + + {description} + + + + Finance Fee + {amount} + + + Opton to purchase fee + {amount} + + + Total amount payable + {amount} + + + Duration + {amount} + +
+ + 5.9% APR Representative + + + DISCOVER MORE MODEL + + + + + + Reserve + + + + +
+
+)}; + +DisplayItemCard.propTypes = { + name: PropTypes.string.isRequired, + amount: PropTypes.string.isRequired, + description: PropTypes.string.isRequired, + imgSrc: PropTypes.string.isRequired, +}; + +const Container = styled.div` +// border: 1px solid #ccc; + display: flex; + border-radius: 8px; + text-align: right; +// margin-right: -20rem; +// width: 40%; + overflow: hidden; +// box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +`; + +const Image = styled.div` + border: 1px solid blue; + width: 40rem; + margin-right: 2rem; + postion: relative; +`; + +const Image1 = styled.img` + border: 1px solid blue; + width: 40rem; + margin-right: 2rem; + transform: rotate(${(props) => props.rotation}deg); + transition: transform 0.5s ease; +`; + +const RotateButton = styled.button` + position: absolute; + bottom: 1rem; + right: 55rem; + background-color: #fff; + border: none; + border-radius: 50%; + padding: 0.5rem; + cursor: pointer; +`; + +const Content = styled.div` + padding: 4rem 2rem; +`; + +const Name = styled.h2` + font-size: 1.5rem; + margin-bottom: 1rem; +`; + +const Description = styled.p` + font-size: 1rem; + margin-bottom: 1rem; +`; + +const Table = styled.table` + width: 100%; + margin-bottom: 2rem; + margin-top: 3rem; +`; + +const TableRow = styled.tr` + background-color: ${(props) => props.color}; +`; + +const TableData = styled.td` + padding: 1rem; + text-align: center; +`; + +const BoldText = styled.div` + font-weight: bolder; + margin-bottom: 2rem; + margin-right: 10rem; +`; + +const ColorWheel = styled.div` + /* Add styles for the color wheel */ + margin-bottom: 5rem; +`; + +const ConfigureButton = styled.button` + background-color: green; + color: #fff; + padding: 8px 16px; + display: flex; + align-items: center; + margin-left: 15rem; + border: none; + border-radius: 5rem; + cursor: pointer; +`; + +const SettingIcon = styled.span` + margin-right: 8px; +`; + +const ArrowIcon = styled.span` + margin-left: 8px; + margin-top: 2px; +`; + +export default DisplayItemCard; diff --git a/src/components/Form/FormField.js b/src/components/Form/FormField.js index be593e2..75b0460 100644 --- a/src/components/Form/FormField.js +++ b/src/components/Form/FormField.js @@ -32,6 +32,7 @@ export const DateField = ({ }; DateField.propTypes = { + id: PropTypes.string.isRequired, label: PropTypes.string.isRequired, name: PropTypes.string.isRequired, className: PropTypes.string.isRequired, @@ -72,6 +73,12 @@ SelectField.propTypes = { className: PropTypes.string.isRequired, name: PropTypes.string.isRequired, id: PropTypes.string.isRequired, + options: PropTypes.arrayOf( + PropTypes.shape({ + value: PropTypes.string.isRequired, + label: PropTypes.string.isRequired, + }) + ).isRequired, }; export const TextInputField = ({ diff --git a/src/components/Img/Img.js b/src/components/Img/Img.js index c27ac09..50fdabf 100644 --- a/src/components/Img/Img.js +++ b/src/components/Img/Img.js @@ -2,7 +2,9 @@ import PropTypes from 'prop-types'; import styled from '@emotion/styled'; import React from 'react'; -const Img = ({ src, alt, className }) => ; +const Img = ({ src, alt, className }) => { +return ; +} const Imgg = styled.img` width: 100%; diff --git a/src/components/Link/Link.js b/src/components/Link/Link.js index f7075f0..ca46a2c 100644 --- a/src/components/Link/Link.js +++ b/src/components/Link/Link.js @@ -16,16 +16,16 @@ export const InternalNavLink = styled(RouterLink)` export const ButtonLink = styled(RouterLink)` text-decoration: none; + font-size: rem; color: grey; font-weight: 500; `; -export const NavBoxItem = ({ icon, path, children }) => ( +export const NavBoxItem = ({ path, children }) => ( (navData.isActive ? 'active' : '')} to={path} > - {icon} {children} ); diff --git a/src/components/ReserveCars/ReserveCar.js b/src/components/ReserveCars/ReserveCar.js index 6b9cdce..3dfcbe9 100644 --- a/src/components/ReserveCars/ReserveCar.js +++ b/src/components/ReserveCars/ReserveCar.js @@ -4,7 +4,6 @@ import ReserveCarFrom from './ReserveCarForm'; const ReserveCar = () => (
-

Reserve car page can book a car

Book A Car on Hourly bases!

diff --git a/src/components/asset/bicycle.jpg b/src/components/asset/bicycle.jpg new file mode 100644 index 0000000..f936064 Binary files /dev/null and b/src/components/asset/bicycle.jpg differ diff --git a/src/components/asset/bike.jpg b/src/components/asset/bike.jpg new file mode 100644 index 0000000..c4e90c9 Binary files /dev/null and b/src/components/asset/bike.jpg differ diff --git a/src/layout/LandingPage/LandingPageLayout.js b/src/layout/LandingPage/LandingPageLayout.js index 7635e5b..d9c3599 100644 --- a/src/layout/LandingPage/LandingPageLayout.js +++ b/src/layout/LandingPage/LandingPageLayout.js @@ -1,17 +1,20 @@ import React from 'react'; import { Outlet } from 'react-router-dom'; -import Footer from './footer/Footer'; -import Header from './header/Header'; +// import Footer from './footer/Footer'; +import Header from './header/Header'; -const LandingPageLayout = () => ( - <> -
-
- -
-