Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
898688d
fixed develper
Marcosbit93 Mar 7, 2023
aa83067
footer
RosannaContasti Mar 8, 2023
97695d6
Merge pull request #8 from Marcosbit93/footer
RosannaContasti Mar 8, 2023
cb06f36
add files loging signup
Marcosbit93 Mar 8, 2023
a8466f2
add themes
Marcosbit93 Mar 8, 2023
30e4902
add Profile
Marcosbit93 Mar 8, 2023
dc3d73a
Merge branch 'developer' into navbar
Marcosbit93 Mar 8, 2023
37411e4
Merge pull request #10 from Marcosbit93/navbar
Marcosbit93 Mar 8, 2023
5428949
nuevaCard
RosannaContasti Mar 8, 2023
baa467e
Merge pull request #11 from Marcosbit93/card
Marcosbit93 Mar 8, 2023
61d49e8
add home productCard ProductGrid cart
Marcosbit93 Mar 9, 2023
232a589
Merge pull request #12 from Marcosbit93/home
Marcosbit93 Mar 9, 2023
b5adcfd
fixed things
Marcosbit93 Mar 9, 2023
46a16a1
Merge pull request #13 from Marcosbit93/home
Marcosbit93 Mar 9, 2023
fa9240f
cambios
RosannaContasti Mar 9, 2023
0c0261b
Merge branch 'developer' into card
RosannaContasti Mar 9, 2023
5bc291e
Merge pull request #14 from Marcosbit93/card
RosannaContasti Mar 9, 2023
bc5b159
newChanges
NicholasInchauspe2 Mar 9, 2023
e1937ca
Merge pull request #15 from Marcosbit93/newbranch
NicholasInchauspe2 Mar 9, 2023
6252f2a
NewLogin
NicholasInchauspe2 Mar 9, 2023
4faa6a9
Merge pull request #16 from Marcosbit93/newbranch
NicholasInchauspe2 Mar 9, 2023
08f1ef9
vista cart
julietamag Mar 9, 2023
61a32e9
Merge pull request #17 from Marcosbit93/feature/cart
julietamag Mar 9, 2023
62468a2
prettyLogin
NicholasInchauspe2 Mar 9, 2023
b34b97d
Merge pull request #18 from Marcosbit93/newbranch
NicholasInchauspe2 Mar 9, 2023
826f3ca
fisrt commit
julietamag Mar 10, 2023
2ac9232
final fix demo1
julietamag Mar 10, 2023
be76f89
Merge pull request #19 from Marcosbit93/branch-hiperFix
julietamag Mar 10, 2023
ccd3880
Hot Fix Pre Demo 1
julietamag Mar 10, 2023
1e8821b
Final Fix Pre Demo
julietamag Mar 10, 2023
0d1a7b0
Merge pull request #20 from Marcosbit93/fix/preDemo-views
julietamag Mar 10, 2023
66f4b83
fix artist name on product card
julietamag Mar 12, 2023
4917430
register fix, artist name on card
julietamag Mar 13, 2023
49b7201
Merge pull request #21 from Marcosbit93/feature-domingoJuli
julietamag Mar 13, 2023
53fd61e
Adding Error Page
RosannaContasti Mar 13, 2023
a817728
Adding a Error Page Components
RosannaContasti Mar 13, 2023
d7e70bc
Merge pull request #22 from Marcosbit93/feature/ErrorPage
RosannaContasti Mar 13, 2023
f80d592
menus para buscar artistas y categorias
jalarg Mar 14, 2023
2c3086e
Adding Details Card
RosannaContasti Mar 14, 2023
ca332bc
Merge pull request #23 from Marcosbit93/feature/PoductPage
RosannaContasti Mar 14, 2023
7167b78
Merge branch 'developer' into Menus
jalarg Mar 14, 2023
f666fad
Merge pull request #24 from Marcosbit93/Menus
jalarg Mar 14, 2023
6a187ae
fix duplicated product on cart
julietamag Mar 14, 2023
1df00df
Merge pull request #25 from Marcosbit93/fix-duplicatedProduct
julietamag Mar 14, 2023
ee85e28
hotfix y searchbar
jalarg Mar 14, 2023
174cbc9
arreglo bugs searchbar y botones de busqueda
jalarg Mar 14, 2023
3835220
Merge pull request #26 from Marcosbit93/hotfix
jalarg Mar 14, 2023
0c50df3
logo fixed
Marcosbit93 Mar 14, 2023
035ed1a
Merge pull request #27 from Marcosbit93/logoSetState
Marcosbit93 Mar 14, 2023
ee4f74e
checkout back
julietamag Mar 14, 2023
9b335a3
Merge branch 'developer' into feature/checkoutForm
julietamag Mar 14, 2023
037c65e
Merge pull request #28 from Marcosbit93/feature/checkoutForm
julietamag Mar 14, 2023
edbf1ac
Adding User Shopping History
RosannaContasti Mar 14, 2023
f902dae
firebasae2.0 logeo with google and facebook recovered password
Marcosbit93 Mar 14, 2023
e77267c
ProductGrid responsive
Marcosbit93 Mar 15, 2023
dce1997
Merge pull request #30 from Marcosbit93/firebase2.0
Marcosbit93 Mar 15, 2023
b726e79
Merge pull request #31 from Marcosbit93/feature/NewUserShoppingHistory
RosannaContasti Mar 15, 2023
0623390
hasta aca llegamos
thep3Dr0 Mar 15, 2023
fa5362b
Merge pull request #32 from Marcosbit93/feature-admin-view
thep3Dr0 Mar 15, 2023
dc6b929
pagination 10 product X page
Marcosbit93 Mar 15, 2023
08ea31e
Merge pull request #33 from Marcosbit93/pagination
Marcosbit93 Mar 15, 2023
1ade2ff
fixed things
Marcosbit93 Mar 15, 2023
4004313
Merge pull request #34 from Marcosbit93/navbarResponsive
Marcosbit93 Mar 15, 2023
8316c9f
Cambios
RosannaContasti Mar 15, 2023
b062a7f
add feature review
julietamag Mar 15, 2023
f503bce
uploadPhoto use firebase
Marcosbit93 Mar 15, 2023
25dc961
Merge pull request #35 from Marcosbit93/upLoadPhoto
Marcosbit93 Mar 15, 2023
ca59f53
Merge branch 'developer' into feature/Review
julietamag Mar 15, 2023
1f36235
Merge pull request #36 from Marcosbit93/feature/Review
julietamag Mar 15, 2023
159e162
fix typo
julietamag Mar 15, 2023
2120292
Merge pull request #37 from Marcosbit93/hotFix/typo
julietamag Mar 15, 2023
a225044
buf fixes
julietamag Mar 15, 2023
a2a186f
Merge pull request #38 from Marcosbit93/hoy-fix-cart
julietamag Mar 15, 2023
19d41ff
adminFunctions
jalarg Mar 15, 2023
c6f81c5
Merge branch 'developer' into admincomponents
jalarg Mar 16, 2023
91703df
Merge pull request #40 from Marcosbit93/admincomponents
jalarg Mar 16, 2023
0d402aa
adminfix
jalarg Mar 16, 2023
898ba78
Merge pull request #41 from Marcosbit93/adminsfix
jalarg Mar 16, 2023
32d7a69
hotfix
jalarg Mar 16, 2023
b3bcae8
Merge pull request #42 from Marcosbit93/adminfix2
jalarg Mar 16, 2023
418fb57
new add
julietamag Mar 16, 2023
04404a5
ro juli
julietamag Mar 16, 2023
a1f9846
edit viernes
julietamag Mar 17, 2023
1f26046
pre demo merge
julietamag Mar 17, 2023
ade06d2
fix
julietamag Mar 17, 2023
fa112d2
Merge branch 'developer' into edit/jueves
julietamag Mar 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,964 changes: 1,921 additions & 43 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,26 @@
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@mui/icons-material": "^5.11.11",
"@mui/lab": "^5.0.0-alpha.122",
"@mui/material": "^5.11.12",
"@mui/x-data-grid": "^6.0.1",
"@reduxjs/toolkit": "^1.9.3",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"antd": "^5.3.0",
"axios": "^1.3.4",
"firebase": "^9.17.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hot-toast": "^2.4.0",
"react-redux": "^8.0.5",
"react-router": "^6.8.2",
"react-router-dom": "^6.8.2",
"react-redux": "^8.0.5",
"react-scripts": "5.0.1",
"react-tagsinput": "^3.20.0",
"redux": "^4.2.1",
"uuid": "^9.0.0",
"web-vitals": "^2.1.4"
},
"scripts": {
Expand Down
23 changes: 0 additions & 23 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,11 @@
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>
83 changes: 83 additions & 0 deletions src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,86 @@
transform: rotate(360deg);
}
}

.profileButton {
text-decoration: none;
color: #6e44ff;
}

.userProfileImage {
margin: 5rem 0 auto;
text-align: center;
}


.userProfileImg{
height: 300px;
width: 300px;
border-radius: 50%;
display: inline-block;
margin-bottom: 3rem;
}

.btn {
margin: 2rem auto 0.7rem;
border-radius: 8px;
width: 20%;
height: 2rem;
border: 1px solid black;
background-color: #6e44ff;
color: white;
font-size: 18px;
}

.userProfileInfo {
margin: 0 auto 2rem;
padding-bottom: 2.5rem;
text-align: center;
width: 60%;
display: flex;
flex-direction: column;
border: 1px solid rgb(196, 196, 196);
border-radius: 5px;
}

.userProfileSecurity {
margin: 0 auto 2rem;
text-align: center;
width: 60%;
display: flex;
flex-direction: column;
border: 1px solid rgb(196, 196, 196);
padding-bottom: 1rem;
border-radius: 5px;
}

.inputForm{
width: 35%;
height: 2rem;
margin: 0.5rem auto;
border-radius: 5px;
border: 1px solid rgb(196, 196, 196);
}

.container{
width: 70%;
margin: 4rem auto;
padding-bottom: 3rem;
border-radius: 6px;
}

.newProductContainer{
display: flex;
flex-direction: row;
margin: 0 auto;
align-items: flex-end;
justify-content:flex-end;
width: 65%;
}

.productsContainer{
padding-top: 3rem;
padding-bottom: 3rem;
flex-direction: column;
margin: 0 auto;
}
48 changes: 39 additions & 9 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,46 @@
import './App.css';
import Auth from '../src/components/Auth'
import { Route, Routes } from 'react-router';
import { Navbar } from './components/Navbar';
import "./App.css";
import { Route, Routes } from "react-router";
import { Navbar } from "./components/Navbar";
import { LoginM } from "./components/Auth/LoginM";
import { SignupM } from "./components/Auth/SignupM";
import Profile from "./components/Profile";
import Footer from "./components/Footer";
import { Home } from "./components/Home";
import { Toaster } from "react-hot-toast";
import Checkout from "./components/Checkout/Checkout";
import ErrorPage from "./components/ErrorPage";
import DetailsCard from "./commons/DetailsCard";
import AdminViewUser from "./components/Admin/AdminViewUser";
import { HomeAdmin } from "./components/Admin/HomeAdmin";
import AdminViewProduct from "./components/Admin/AdminViewProduct";
import AdminViewArtist from "./components/Admin/AdminViewArtist";
import AdminShoppingHistory from "./components/AdminShoppingHistory.";

function App() {
return (
<div>
<Navbar/>
<>
<div>
<Toaster />
</div>
<Navbar />
<Routes>
<Route path='/auth' element={<Auth/>}/>
</Routes>
</div>
<Route path="/" element={<Home />} />
<Route path="/profile" element={<Profile />} />
<Route path="/login" element={<LoginM />} />
<Route path="/product/:id" element={<DetailsCard />} />
<Route path="/signup" element={<SignupM />} />
<Route path="/checkout" element={<Checkout />} />
<Route path="/admin" element={<HomeAdmin />} />
<Route path="/admin/product" element={<AdminViewProduct />} />
<Route path="/admin/user" element={<AdminViewUser />} />
<Route path="/admin/user/history/:id" element={<AdminShoppingHistory />} />
<Route path="/admin/artist" element={<AdminViewArtist />} />


<Route path="*" element={<ErrorPage />} />
</Routes>
<Footer />
</>
);
}

Expand Down
18 changes: 18 additions & 0 deletions src/commons/AddButton.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from "react";
import Box from "@mui/material/Box";
import Fab from "@mui/material/Fab";
import AddIcon from "@mui/icons-material/Add";

export default function AddButton({ openModal }) {
return (
<Box>
<Fab color="primary" aria-label="add" >
<AddIcon
onClick={() => {
openModal();
}}
/>
</Fab>
</Box>
);
}
116 changes: 116 additions & 0 deletions src/commons/DetailsCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import React, { useEffect, useState } from "react";
import { useLocation } from "react-router";
import axios from "axios";
import ProductReview from "./ProductReview";
import CardContent from "@mui/material/CardContent";
import CardMedia from "@mui/material/CardMedia";
import Typography from "@mui/material/Typography";
import IconButton from "@mui/material/IconButton";
import Divider from "@mui/material/Divider";
import Rating from "@mui/material/Rating";
import Button from "@mui/material/Button";
import AddShoppingCartOutlinedIcon from "@mui/icons-material/AddShoppingCartOutlined";
import ArrowBackIosNewOutlinedIcon from "@mui/icons-material/ArrowBackIosNewOutlined";
import { useDispatch, useSelector } from "react-redux";
import { setCart } from "../state/cart";

const DetailsCard = () => {
const [detail, setDetail] = useState({});
const cart = useSelector((state) => state.cart);
const location = useLocation();
const dispatch = useDispatch();
const userId = localStorage.getItem("id");
const starRound = useSelector((state) => state.review.reviewRound);

const handleAddCart = () => {
dispatch(setCart({ product: detail, quantity: 1 }));
};

const handleOnClick = () => {
window.history.back();
};

// refreso de pagina
useEffect(() => {
axios
.get(
`http://localhost:3001/api/product/${location.pathname.split("/")[2]}`
)
.then((detail) => {
setDetail(detail.data);
})
.catch((err) => console.error(err));
}, []);

useEffect(() => {
axios
.post(`http://localhost:3001/api/cart/${userId}/update/${detail.id}`, {
products: cart,
})
.catch((err) => console.error(err));
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [cart]);

return (
<>


<Button variant="text" onClick={handleOnClick} sx={{ px: 10 }}>
<ArrowBackIosNewOutlinedIcon color="black" /> GO BACK
</Button>
<div style={{ display: "flex" }}>
<CardMedia
component="img"
height="100%"
image={detail?.photo_url}
alt="print"
sx={{ boxShadow: 10, width: 600, margin: 10 }}
/>
<CardContent>
<Divider
orientation="vertical"
textAlign="center"
sx={{ width: [100, 200, 300], mx: 20 }}
>
<React.Fragment>
<Typography component="legend"></Typography>
{!starRound ? (
<Typography variant="subtitle1" color="text.secondary">No reviews yet</Typography>
) : (
<Rating
name="read-only"
value={starRound}
precision={0.5}
readOnly
/>
)}{" "}
</React.Fragment>
<Typography gutterBottom variant="h5" component="div">
{detail?.name}
</Typography>
<Typography variant="h5" color="text.secondary">
{detail?.artist?.title}
</Typography>
<Typography variant="subtitle1" color="text.secondary">
${detail?.price}
</Typography>
<Typography variant="subtitle1" color="text.secondary">
{detail?.category}
</Typography>
<Typography variant="subtitle1" color="text.secondary">
{detail?.description}
</Typography>
<IconButton aria-label="add to favorites">
<AddShoppingCartOutlinedIcon onClick={handleAddCart} />
</IconButton>
</Divider>
</CardContent>
</div>
<div>
<ProductReview />
</div>
</>
);
};

export default DetailsCard;
49 changes: 49 additions & 0 deletions src/commons/EditRemoveButtons.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import React from "react";
import Box from "@mui/material/Box";
import Fab from "@mui/material/Fab";
import EditIcon from "@mui/icons-material/Edit";
import DeleteIcon from "@mui/icons-material/Delete";
import axios from "axios";
import { useDispatch } from "react-redux";
import { setBooleano } from "../state/adminProduct";

export default function EditRemoveButtons({ item, openModal }) {
const dispatch = useDispatch();

// funcion para destruir el item en el back
function handleClick() {
const userId = localStorage.getItem("id");
if (item.price) {
return axios
.delete(`http://localhost:3001/api/product/${userId}/${item.id}`)
.then((res) => {
dispatch(setBooleano());
});
} else if (item.uid) {
return axios
.delete(`http://localhost:3001/api/user/${userId}/delete/${item.id}`)
.then((res) => {
dispatch(setBooleano());
});
} else if (item.title) {
return axios
.delete(`http://localhost:3001/api/artist/${userId}/delete/${item.id}`)
.then((res) => {
dispatch(setBooleano());
});
}
}

return (
<Box sx={{ "& > :not(style)": { m: 1 }, margin: "auto auto auto 0" }}>
<Fab color="secondary" aria-label="edit">
<EditIcon onClick={() => openModal()} />
</Fab>
{!item.uid && (
<Fab color="error">
<DeleteIcon onClick={handleClick} />
</Fab>
)}
</Box>
);
}
Loading