Selaa lähdekoodia

finished item details

pull/5/head
Pavle Golubovic 3 vuotta sitten
vanhempi
commit
ba9f3c264c

+ 3
- 3
src/assets/images/svg/eye-striked.svg Näytä tiedosto

<svg width="22" height="16" viewBox="0 0 22 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.9999 7.99994C13.9999 8.79557 13.6838 9.55862 13.1212 10.1212C12.5586 10.6838 11.7956 10.9999 10.9999 10.9999C10.2043 10.9999 9.44126 10.6838 8.87866 10.1212C8.31606 9.55862 8 8.79557 8 7.99994C8 7.20431 8.31606 6.44126 8.87866 5.87866C9.44126 5.31606 10.2043 5 10.9999 5C11.7956 5 12.5586 5.31606 13.1212 5.87866C13.6838 6.44126 13.9999 7.20431 13.9999 7.99994V7.99994Z" stroke="#5A3984" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.45898 7.99986C2.73296 3.94294 6.52388 1 11.0008 1C15.4787 1 19.2686 3.94294 20.5426 7.99986C19.2686 12.0568 15.4787 14.9997 11.0008 14.9997C6.52388 14.9997 2.73296 12.0568 1.45898 7.99986Z" stroke="#5A3984" stroke-linecap="round" stroke-linejoin="round"/>
<svg width="22" height="16" viewBox="0 0 22 16" fill="none" stroke="black" xmlns="http://www.w3.org/2000/svg">
<path d="M13.9999 7.99994C13.9999 8.79557 13.6838 9.55862 13.1212 10.1212C12.5586 10.6838 11.7956 10.9999 10.9999 10.9999C10.2043 10.9999 9.44126 10.6838 8.87866 10.1212C8.31606 9.55862 8 8.79557 8 7.99994C8 7.20431 8.31606 6.44126 8.87866 5.87866C9.44126 5.31606 10.2043 5 10.9999 5C11.7956 5 12.5586 5.31606 13.1212 5.87866C13.6838 6.44126 13.9999 7.20431 13.9999 7.99994V7.99994Z" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.45898 7.99986C2.73296 3.94294 6.52388 1 11.0008 1C15.4787 1 19.2686 3.94294 20.5426 7.99986C19.2686 12.0568 15.4787 14.9997 11.0008 14.9997C6.52388 14.9997 2.73296 12.0568 1.45898 7.99986Z" stroke-linecap="round" stroke-linejoin="round"/>
</svg> </svg>

src/components/ItemDetails/ItemDetailsCard/ItemDetailsCard.js → src/components/Cards/ItemDetailsCard/ItemDetailsCard.js Näytä tiedosto

OfferDetails, OfferDetails,
} from "./ItemDetailsCard.styled"; } from "./ItemDetailsCard.styled";
import { ReactComponent as Category } from "../../../assets/images/svg/category.svg"; import { ReactComponent as Category } from "../../../assets/images/svg/category.svg";
//import { ReactComponent as Quantity } from "../../../assets/images/svg/quantity.svg";
//import { ReactComponent as Eye } from "../../../assets/images/svg/eye-striked.svg";
import { ReactComponent as Subcategory } from "../../../assets/images/svg/subcategory.svg";
import { ReactComponent as Quantity } from "../../../assets/images/svg/quantity.svg";
import { ReactComponent as Eye } from "../../../assets/images/svg/eye-striked.svg";
import selectedTheme from "../../../themes"; import selectedTheme from "../../../themes";
import { Offer as offer } from "../MockupdataDetails";
import { Offer as offer } from "./MockupOfferDetails";
import HorizontalScroller from "../../Scroller/HorizontalScroller"; import HorizontalScroller from "../../Scroller/HorizontalScroller";
import {ReactComponent as DummyImage1 } from "../../../assets/images/svg/dummyImages/offer-1.svg" import {ReactComponent as DummyImage1 } from "../../../assets/images/svg/dummyImages/offer-1.svg"



const ItemDetailsCard = (props) => { const ItemDetailsCard = (props) => {
return ( return (
<ItemDetailsCardContainer sponsored={props.sponsored.toString()} halfwidth={props.halfwidth ? 1 : 0}> <ItemDetailsCardContainer sponsored={props.sponsored.toString()} halfwidth={props.halfwidth ? 1 : 0}>
<OfferInfo> <OfferInfo>
<Info> <Info>
<InfoGroup> <InfoGroup>
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="12px">
<Category width={"22px"} />
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="16px">
<Category width={"14px"} />
</InfoIcon> </InfoIcon>
<InfoText>{offer.category}</InfoText> <InfoText>{offer.category}</InfoText>
</InfoGroup> </InfoGroup>
<InfoGroup> <InfoGroup>
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="12px">
<Category width={"22px"} />
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="16px">
<Subcategory width={"14px"} />
</InfoIcon> </InfoIcon>
<InfoText>{offer.subcategory}</InfoText> <InfoText>{offer.subcategory}</InfoText>
</InfoGroup> </InfoGroup>
<InfoGroup> <InfoGroup>
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="12px">
<Category width={"22px"} />
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="16px">
<Quantity width={"22px"} height={"16px"} />
</InfoIcon> </InfoIcon>
<InfoText>{offer.status}</InfoText> <InfoText>{offer.status}</InfoText>
</InfoGroup> </InfoGroup>
<InfoGroup> <InfoGroup>
<InfoIcon color={selectedTheme.iconStrokeColor} component="span" size="12px">
<Category width={"22px"} />
<InfoIcon color={"black"} component="span" size="12px">
<Eye width={"18px"} height={"20px"} />
</InfoIcon> </InfoIcon>
<InfoText>{offer.numberOfViews}</InfoText> <InfoText>{offer.numberOfViews}</InfoText>
</InfoGroup> </InfoGroup>

src/components/ItemDetails/ItemDetailsCard/ItemDetailsCard.styled.js → src/components/Cards/ItemDetailsCard/ItemDetailsCard.styled.js Näytä tiedosto

gap:18px; gap:18px;
`; `;
export const InfoIcon = styled(Box)` export const InfoIcon = styled(Box)`
display:flex;
align-items:center;
`; `;
export const InfoText = styled(Typography)` export const InfoText = styled(Typography)`
font-family: "Open Sans"; font-family: "Open Sans";
} }
`; `;
export const Details = styled(Box)` export const Details = styled(Box)`
display:flex;
flex-direction:column;
gap:12px;
`; `;

+ 36
- 0
src/components/Cards/ItemDetailsCard/MockupOfferDetails.js Näytä tiedosto

import React from "react"
import {ReactComponent as DummyImage1 } from "../../../assets/images/svg/dummyImages/offer-1.svg"

export const Offer = {
id: 0,
title: "Vino",
category: "Hrana i pice",
subcategory:"Farbe",
status:"novo",
quantity:150,
numberOfViews:45,
description: "Vinarija Aleksić osnovana je u Vranju 2006. godine, otvorivši time put oživljavanju vinogradarstva na jugu Srbije.Vinarija Aleksić osnovana je u Vranju 2006. godine, otvorivši time put oživljavanju vinogradarstva na jugu Srbije.Vinarija Aleksić osnovana je u Vranju 2006. godine, otvorivši time put oživljavanju vinogradarstva na jugu Srbije.Vinarija Aleksić osnovana je u Vranju 2006. godine, otvorivši time put oživljavanju vinogradarstva na jugu Srbije.",
images: [
{
id:0,
image: <DummyImage1 />
},
{
id:1,
image: <DummyImage1 />
},
{
id:2,
image: <DummyImage1 />
},
{
id:3,
image: <DummyImage1 />
},
{
id:4,
image: <DummyImage1 />
},
],
postDate: "12.04.2022",
}

+ 6
- 4
src/components/ItemDetails/Header/Header.js Näytä tiedosto

import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
//import { IconButton } from "../../Buttons/IconButton/IconButton"; //import { IconButton } from "../../Buttons/IconButton/IconButton";
import { HeaderContainer } from './Header.styled';
import { HeaderContainer, HeaderText, ButtonContainer } from './Header.styled';
import { ArrowButton } from '../../Buttons/ArrowButton/ArrowButton'; import { ArrowButton } from '../../Buttons/ArrowButton/ArrowButton';


// const DownArrow = (props) => ( // const DownArrow = (props) => (


return ( return (
<HeaderContainer>
<ArrowButton onClick={handleBackButton} side={"left"}></ArrowButton>
Nazad na objave
<HeaderContainer onClick={handleBackButton}>
<ButtonContainer>
<ArrowButton side={"left"}></ArrowButton>
<HeaderText>Nazad na objave</HeaderText>
</ButtonContainer>
</HeaderContainer> </HeaderContainer>
); );
}; };

+ 9
- 40
src/components/ItemDetails/Header/Header.styled.js Näytä tiedosto

import { Box, MenuItem, Select} from "@mui/material";
import { Box, Link, Typography} from "@mui/material";
import styled from "styled-components"; import styled from "styled-components";
import selectedTheme from "../../../themes"; import selectedTheme from "../../../themes";
import { IconButton } from "../../Buttons/IconButton/IconButton";


export const HeaderContainer = styled(Box)` export const HeaderContainer = styled(Box)`
margin-top: 20px; margin-top: 20px;
`
export const ButtonContainer = styled(Link)`
width:fit-content;
cursor:pointer;
display: flex; display: flex;
justify-content: start; justify-content: start;
align-items:center; align-items:center;
gap:12px;
` `
export const HeaderLocation = styled(Box)`
padding-top: 10px;
export const HeaderText = styled(Typography) `
font-family: "Open Sans"; font-family: "Open Sans";
color: ${selectedTheme.primaryPurple};
font-weight: 700;
line-height: 22px; line-height: 22px;
font-size: 16px; font-size: 16px;
flex: 2;
`
export const HeaderButton = styled(IconButton)`
padding: 2px 10px;
`
export const HeaderOptions = styled(Box)`
display: flex;
flex-direction: row;
flex: 1;
justify-content: end;
`
export const HeaderSelect = styled(Select)`
width: 210px;
height: 35px;
font-family: "Open Sans";
margin-top: 3px;
& div span {
position: relative;
top: -4px;
}
`
export const SelectItem = styled(MenuItem)`
font-family: "Open Sans";
`
export const IconStyled = styled(Box)`
position: relative;
top: 0;
right: 10px;
`
export const HeaderButtons = styled(Box)`
flex-direction: row;
display: flex;
justify-content: space-between;
margin-right: 40px;
color: ${selectedTheme.primaryPurple};
text-decoration: underline;
` `

+ 1
- 1
src/components/ItemDetails/ItemDetails.js Näytä tiedosto

import React from 'react'; import React from 'react';
import Header from "./Header/Header"; import Header from "./Header/Header";
import { ItemDetailsContainer } from './ItemDetails.styled'; import { ItemDetailsContainer } from './ItemDetails.styled';
import ItemDetailsCard from "./ItemDetailsCard/ItemDetailsCard";
import ItemDetailsCard from "../Cards/ItemDetailsCard/ItemDetailsCard";
import ItemDetailsHeaderCard from "./ItemDetailsHeaderCard/ItemDetailsHeaderCard"; import ItemDetailsHeaderCard from "./ItemDetailsHeaderCard/ItemDetailsHeaderCard";





+ 1
- 1
src/components/ItemDetails/ItemDetailsHeaderCard/ItemDetailsHeaderCard.js Näytä tiedosto

</MessageIcon> </MessageIcon>
</HeaderTop> </HeaderTop>
<HeaderDetails> <HeaderDetails>
<BottomDetails>
<BottomDetails>
<StatusText> <StatusText>
<b>{author.numberOfOffers}</b> objava <b>{author.numberOfOffers}</b> objava
</StatusText> </StatusText>

+ 9
- 7
src/components/ItemDetails/ItemDetailsHeaderCard/ItemDetailsHeaderCard.styled.js Näytä tiedosto

import { Box, Typography } from "@mui/material";
import { Box, Grid, Typography } from "@mui/material";
import styled from "styled-components"; import styled from "styled-components";
import selectedTheme from "../../../themes"; import selectedTheme from "../../../themes";
import { IconButton } from "../../Buttons/IconButton/IconButton"; import { IconButton } from "../../Buttons/IconButton/IconButton";
background-color: ${selectedTheme.primaryIconBackgroundColor}; background-color: ${selectedTheme.primaryIconBackgroundColor};
`; `;
export const BottomDetails = styled(Box)` export const BottomDetails = styled(Box)`
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding: 18px;
gap:18px;
max-width:fit-content;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
grid-column-gap: 12px;
grid-row-gap: 12px;
padding: 18px;
`; `;
export const OfferImage = styled(Box)` export const OfferImage = styled(Box)`
border-radius: 50%; border-radius: 50%;
justify-content: start; justify-content: start;
`; `;


export const StatusText = styled(Typography)`
export const StatusText = styled(Grid)`
font-family: "Open Sans"; font-family: "Open Sans";
color: ${selectedTheme.primaryText}; color: ${selectedTheme.primaryText};
` `

Loading…
Peruuta
Tallenna