Просмотр исходного кода

Finished feature 639

feature/639
jovan.cirkovic 3 лет назад
Родитель
Сommit
54d72a4e2e

+ 71
- 31
src/components/Cards/OfferCard/SkeletonOfferCard/SkeletonOfferCard.js Просмотреть файл

import React from "react"; import React from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { import {
SkeletonOfferCardsContainer,
LeftPart, LeftPart,
RightPart, RightPart,
SkeletonAuthor, SkeletonAuthor,
SkeletonImage, SkeletonImage,
SkeletonLocation, SkeletonLocation,
SkeletonMessageButton, SkeletonMessageButton,
SkeletonMessageButtonSecond,
SkeletonOfferCardContainer, SkeletonOfferCardContainer,
SkeletonRowGroup, SkeletonRowGroup,
SkeletonTitle, SkeletonTitle,
SkeletonTitleAboveImage,
// SkeletonTitleAboveImage,
SpreadLine, SpreadLine,
} from "./SkeletonOfferCard.styled"; } from "./SkeletonOfferCard.styled";
import useIsMobile from "../../../../hooks/useIsMobile";


const SkeletonOfferCard = (props) => { const SkeletonOfferCard = (props) => {
const { isMobile } = useIsMobile();
return ( return (
<SkeletonOfferCardContainer skeleton={props.skeleton}>
<LeftPart>
<SkeletonImage />
<SkeletonColumnContainer>
<SkeletonTitle />
<SkeletonGroup>
<SkeletonAuthor />
<SkeletonLocation />
</SkeletonGroup>
<SkeletonRowGroup aboveChat={props.aboveChat}>
<SkeletonDetail />
<SkeletonDetail />
<SkeletonDetail />
</SkeletonRowGroup>
</SkeletonColumnContainer>
</LeftPart>
<SpreadLine />
<RightPart>
<SkeletonDescription />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
</RightPart>
<SkeletonExchangeButton>
<SkeletonExchangeLine />
</SkeletonExchangeButton>
<SkeletonMessageButton />
<SkeletonTitleAboveImage />
</SkeletonOfferCardContainer>
<SkeletonOfferCardsContainer>
<SkeletonOfferCardContainer skeleton={props.skeleton}>
<LeftPart>
<SkeletonImage />
<SkeletonColumnContainer>
<SkeletonTitle />
<SkeletonGroup>
<SkeletonAuthor />
<SkeletonLocation />
</SkeletonGroup>
<SkeletonRowGroup aboveChat={props.aboveChat}>
<SkeletonDetail />
<SkeletonDetail />
<SkeletonDetail />
</SkeletonRowGroup>
</SkeletonColumnContainer>
</LeftPart>
<SpreadLine />
<RightPart>
<SkeletonDescription />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
</RightPart>
<SkeletonExchangeButton>
<SkeletonExchangeLine />
</SkeletonExchangeButton>
<SkeletonMessageButton />
{isMobile && <SkeletonMessageButtonSecond />}
{/* <SkeletonTitleAboveImage /> */}
</SkeletonOfferCardContainer>
{isMobile && (
<SkeletonOfferCardContainer skeleton={props.skeleton}>
<LeftPart>
<SkeletonImage />
<SkeletonColumnContainer>
<SkeletonTitle />
<SkeletonGroup>
<SkeletonAuthor />
<SkeletonLocation />
</SkeletonGroup>
<SkeletonRowGroup aboveChat={props.aboveChat}>
<SkeletonDetail />
<SkeletonDetail />
<SkeletonDetail />
</SkeletonRowGroup>
</SkeletonColumnContainer>
</LeftPart>
<SpreadLine />
<RightPart>
<SkeletonDescription />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
<SkeletonDescriptionLine />
</RightPart>
<SkeletonExchangeButton>
<SkeletonExchangeLine />
</SkeletonExchangeButton>
<SkeletonMessageButton />
{isMobile && <SkeletonMessageButtonSecond />}
{/* <SkeletonTitleAboveImage /> */}
</SkeletonOfferCardContainer>
)}
</SkeletonOfferCardsContainer>
); );
}; };



+ 41
- 6
src/components/Cards/OfferCard/SkeletonOfferCard/SkeletonOfferCard.styled.js Просмотреть файл

ItemsTransition, ItemsTransition,
} from "../../../Styles/globalStyleComponents"; } from "../../../Styles/globalStyleComponents";


export const SkeletonOfferCardsContainer = styled(Box)`
display: flex;
`;

export const SkeletonOfferCardContainer = styled(BackgroundTransition)` export const SkeletonOfferCardContainer = styled(BackgroundTransition)`
display: flex; display: flex;
flex-direction: row; flex-direction: row;
& * { & * {
border-radius: 4px; border-radius: 4px;
} }

@media (max-width: 550px) { @media (max-width: 550px) {
height: 184px; height: 184px;
padding: 18px; padding: 18px;
margin: 0 18px; margin: 0 18px;
`} `}
} }
@media (max-width: 600px) {
width: 180px;
height: 373px;
margin-right: 18px;
}
`; `;
export const LeftPart = styled(Box)` export const LeftPart = styled(Box)`
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-right: 40px; margin-right: 40px;
@media (max-width: 600px) { @media (max-width: 600px) {
position: absolute;
bottom: 18px;
flex-direction: column;
} }
`; `;
export const SpreadLine = styled(Box)` export const SpreadLine = styled(Box)`
export const SkeletonImage = styled(ItemsTransition)` export const SkeletonImage = styled(ItemsTransition)`
width: 144px; width: 144px;
height: 144px; height: 144px;
@media (max-width: 600px) {
width: 108px;
height: 108px;
}
`; `;
export const SkeletonColumnContainer = styled(Box)` export const SkeletonColumnContainer = styled(Box)`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@media (max-width: 600px) { @media (max-width: 600px) {
max-height: 107px; max-height: 107px;
margin-left: 0;
margin-top: 9px;
flex: 0;
} }
`; `;
export const SkeletonTitle = styled(ItemsTransition)` export const SkeletonTitle = styled(ItemsTransition)`
export const SkeletonLocation = styled(ItemsTransition)` export const SkeletonLocation = styled(ItemsTransition)`
width: 90px; width: 90px;
height: 18px; height: 18px;

@media (max-width: 600px) {
width: 100px;
margin-top: 36px;
}
`; `;
export const SkeletonRowGroup = styled(Box)` export const SkeletonRowGroup = styled(Box)`
display: flex; display: flex;
& div:nth-child(1) { & div:nth-child(1) {
display: block; display: block;
width: 85px; width: 85px;
margin-top: 4px;
${(props) => props.aboveChat && `margin-bottom: 18px;`} ${(props) => props.aboveChat && `margin-bottom: 18px;`}
} }
& div:nth-child(2) { & div:nth-child(2) {
width: 72px; width: 72px;
height: 14px; height: 14px;
background-color: ${selectedTheme.colors.filterSkeletonItems}; background-color: ${selectedTheme.colors.filterSkeletonItems};

@media (max-width: 600px) {
margin-top: 32px;
}
`; `;
export const SkeletonDescription = styled(ItemsTransition)` export const SkeletonDescription = styled(ItemsTransition)`
width: 72px; width: 72px;
@media (max-width: 600px) { @media (max-width: 600px) {
width: 32px; width: 32px;
height: 32px; height: 32px;
top: 323px;
left: 18px;
}
`;
export const SkeletonMessageButtonSecond = styled(ItemsTransition)`
width: 40px;
height: 40px;
border-radius: 100%;
background-color: ${selectedTheme.colors.filterSkeletonItems};
position: absolute;
top: 18px;
right: 18px;
@media (max-width: 600px) {
width: 32px;
height: 32px;
top: 323px;
left: 59px;
} }
`; `;
export const SkeletonExchangeButton = styled(ItemsTransition)` export const SkeletonExchangeButton = styled(ItemsTransition)`

+ 4
- 2
src/components/Cards/ProfileCard/SkeletonProfileCard/SkeletonProfileCard.js Просмотреть файл

SkeletonProfileCardHeader, SkeletonProfileCardHeader,
SkeletonProfileCardLeftPart, SkeletonProfileCardLeftPart,
SkeletonProfileCardLine, SkeletonProfileCardLine,
SkeletonProfileCardLineSecond,
SkeletonProfileCardLineThird,
SkeletonProfileCardLowerPart, SkeletonProfileCardLowerPart,
SkeletonProfileCardSmallCircle, SkeletonProfileCardSmallCircle,
SkeletonProfileCardUpperPart, SkeletonProfileCardUpperPart,
</SkeletonProfileCardUpperPart> </SkeletonProfileCardUpperPart>
<SkeletonProfileCardLowerPart> <SkeletonProfileCardLowerPart>
<SkeletonProfileCardLine /> <SkeletonProfileCardLine />
<SkeletonProfileCardLine />
<SkeletonProfileCardLine />
<SkeletonProfileCardLineSecond />
<SkeletonProfileCardLineThird />
</SkeletonProfileCardLowerPart> </SkeletonProfileCardLowerPart>
<SkeletonProfileCardFooter> <SkeletonProfileCardFooter>
<SkeletonProfileCardGroup> <SkeletonProfileCardGroup>

+ 96
- 0
src/components/Cards/ProfileCard/SkeletonProfileCard/SkeletonProfileCard.styled.js Просмотреть файл

gap: 18px; gap: 18px;
margin: 0 50px; margin: 0 50px;
margin-top: 20px; margin-top: 20px;
@media (max-width: 600px) {
margin-right: 18px !important;
}
@media (max-width: 1200px) { @media (max-width: 1200px) {
margin-left: 0; margin-left: 0;
margin-right: 36px; margin-right: 36px;
export const SkeletonProfileCardHeader = styled(SkeletonItemBackgroundColor)` export const SkeletonProfileCardHeader = styled(SkeletonItemBackgroundColor)`
width: 148px; width: 148px;
height: 18px; height: 18px;

@media (max-width: 600px) {
width: 72px;
height: 18px;
}
`; `;
export const SkeletonProfileCardContent = styled(SkeletonBackgroundColor)` export const SkeletonProfileCardContent = styled(SkeletonBackgroundColor)`
height: 347px; height: 347px;
flex-direction: column; flex-direction: column;
gap: 39px; gap: 39px;
position: relative; position: relative;

@media (max-width: 600px) {
gap: 18px;
}
`; `;
export const SkeletonProfileCardUpperPart = styled(Box)` export const SkeletonProfileCardUpperPart = styled(Box)`
display: flex; display: flex;
width: 144px; width: 144px;
height: 144px; height: 144px;
border-radius: 100%; border-radius: 100%;

@media (max-width: 600px) {
width: 90px;
height: 90px;
}
`; `;
export const SkeletonProfileCardCircleLines = styled(Box)` export const SkeletonProfileCardCircleLines = styled(Box)`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 18px; gap: 18px;

@media (max-width: 600px) {
gap: 9px;
}
`; `;
export const SkeletonProfileCardCircleLineOne = styled( export const SkeletonProfileCardCircleLineOne = styled(
SkeletonItemBackgroundColor SkeletonItemBackgroundColor
)` )`
width: 90px; width: 90px;
height: 27px; height: 27px;

@media (max-width: 600px) {
height: 20px;
}
`; `;
export const SkeletonProfileCardCircleLineSecond = styled( export const SkeletonProfileCardCircleLineSecond = styled(
SkeletonItemBackgroundColor SkeletonItemBackgroundColor
)` )`
width: 117px; width: 117px;
height: 18px; height: 18px;

@media (max-width: 600px) {
width: 139px;
height: 14px;
}
`; `;
export const SkeletonProfileCardSmallCircle = styled( export const SkeletonProfileCardSmallCircle = styled(
SkeletonItemBackgroundColor SkeletonItemBackgroundColor
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: 100%; border-radius: 100%;

@media (max-width: 600px) {
width: 32px;
height: 32px;
}
`; `;
export const SkeletonProfileCardLowerPart = styled(Box)` export const SkeletonProfileCardLowerPart = styled(Box)`
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: 27px; gap: 27px;
padding-left: 18px; padding-left: 18px;

@media (max-width: 600px) {
flex-direction: column;
gap: 18px;
}
`; `;
export const SkeletonProfileCardLine = styled(SkeletonItemBackgroundColor)` export const SkeletonProfileCardLine = styled(SkeletonItemBackgroundColor)`
width: 108px; width: 108px;
height: 18px; height: 18px;

@media (max-width: 600px) {
width: 84px;
height: 14px;
}
`;
export const SkeletonProfileCardLineSecond = styled(
SkeletonItemBackgroundColor
)`
width: 108px;
height: 18px;

@media (max-width: 600px) {
width: 116px;
height: 14px;
}
`;
export const SkeletonProfileCardLineThird = styled(SkeletonItemBackgroundColor)`
width: 108px;
height: 18px;

@media (max-width: 600px) {
width: 106px;
height: 14px;
}
`; `;
export const SkeletonProfileCardFooter = styled(SkeletonItemBackgroundColor)` export const SkeletonProfileCardFooter = styled(SkeletonItemBackgroundColor)`
width: 100%; width: 100%;
justify-content: flex-start; justify-content: flex-start;
gap: 36px; gap: 36px;
padding-left: 18px; padding-left: 18px;

@media (max-width: 600px) {
flex-direction: column;
height: 127px;
gap: 12px;
}
`; `;
export const SkeletonProfileCardGroup = styled(Box)` export const SkeletonProfileCardGroup = styled(Box)`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 12px; gap: 12px;
margin-top: 20px; margin-top: 20px;

@media (max-width: 600px) {
margin-top: 0;
}
`; `;
export const SkeletonProfileCardFooterLineOne = styled(SkeletonBackgroundColor)` export const SkeletonProfileCardFooterLineOne = styled(SkeletonBackgroundColor)`
height: 18px; height: 18px;
width: 107px; width: 107px;

@media (max-width: 600px) {
margin-top: 18px;
height: 14px;
width: 49px;
}
`; `;
export const SkeletonProfileCardFooterLineSecond = styled( export const SkeletonProfileCardFooterLineSecond = styled(
SkeletonBackgroundColor SkeletonBackgroundColor
)` )`
height: 18px; height: 18px;
width: 144px; width: 144px;

@media (max-width: 600px) {
height: 14px;
width: 134px;
}
`; `;
export const SkeletonProfileCardFooterLineThird = styled( export const SkeletonProfileCardFooterLineThird = styled(
SkeletonBackgroundColor SkeletonBackgroundColor
)` )`
height: 18px; height: 18px;
width: 197px; width: 197px;

@media (max-width: 600px) {
height: 14px;
width: 141px;
}
`; `;
export const SkeletonProfileCardFooterLineForth = styled( export const SkeletonProfileCardFooterLineForth = styled(
SkeletonBackgroundColor SkeletonBackgroundColor
)` )`
height: 18px; height: 18px;
width: 144px; width: 144px;

@media (max-width: 600px) {
height: 14px;
width: 160px;
}
`; `;

+ 1
- 0
src/components/ItemDetails/ItemDetails.js Просмотреть файл

return ( return (
<ItemDetailsContainer> <ItemDetailsContainer>
<Header /> <Header />
<SkeletonItemDetails />
{isLoadingOffer || isLoadingOffer === undefined ? ( {isLoadingOffer || isLoadingOffer === undefined ? (
<SkeletonItemDetails /> <SkeletonItemDetails />
) : ( ) : (

+ 54
- 21
src/components/ItemDetails/SkeletonItemDetails/SkeletonItemDetails.js Просмотреть файл

import React from "react"; import React from "react";
import useIsMobile from "../../../hooks/useIsMobile";
import { import {
SkeletonItemDetailsContainer, SkeletonItemDetailsContainer,
SkeletonItemDetailsHeader, SkeletonItemDetailsHeader,
SkeletonItemDetailsContent, SkeletonItemDetailsContent,
SkeletonItemDetailsLineContainer, SkeletonItemDetailsLineContainer,
SkeletonItemDetailsLineSmallContainer, SkeletonItemDetailsLineSmallContainer,
SkeletonItemDetailsLineSmall,
SkeletonItemDetailsLineSmallFirst,
SkeletonItemDetailsLineSmallSecond,
SkeletonItemDetailsLineSmallThird,
SkeletonItemDetailsLineSmallFourth,
SkeletonItemDetailsLineBig, SkeletonItemDetailsLineBig,
SkeletonItemDetailsGalleryMainContainer, SkeletonItemDetailsGalleryMainContainer,
SkeletonItemDetailsGallery, SkeletonItemDetailsGallery,
SkeletonItemDetailsMainFifthLine, SkeletonItemDetailsMainFifthLine,
SkeletonItemDetailsMainSixthLine, SkeletonItemDetailsMainSixthLine,
SkeletonItemDetailsMainButtons, SkeletonItemDetailsMainButtons,
SkeletonItemDetailsMainButtonRound,
SkeletonItemDetailsMainButtonRoundFirst,
SkeletonItemDetailsMainButtonRoundSecond,
SkeletonItemDetailsMainButtonContainer, SkeletonItemDetailsMainButtonContainer,
SkeletonItemDetailsMainButton, SkeletonItemDetailsMainButton,
SkeletonItemDetailsMainDescription,
SkeletonItemDetailsMainSeventhLine,
SkeletonItemDetailsMainEighthLine,
SkeletonItemDetailsMainNinethLine,
SkeletonItemDetailsMainTenthLine,
SkeletonItemDetailsMainEleventhLine,
SkeletonItemDetailsMainTwelfthLine,
SkeletonItemDetailsMainThirteenthLine,
SkeletonItemDetailsMainFourteenthLine,
SkeletonItemDetailsMainMobileButtonLinesCont,
SkeletonItemDetailsMainMobileButtonFirstLine,
SkeletonItemDetailsMainMobileButtonSecondLine,
} from "./SkeletonItemDetails.styled"; } from "./SkeletonItemDetails.styled";


const SkeletonItemDetails = () => { const SkeletonItemDetails = () => {
const { isMobile } = useIsMobile();
return ( return (
<SkeletonItemDetailsContainer> <SkeletonItemDetailsContainer>
<SkeletonItemDetailsHeader /> <SkeletonItemDetailsHeader />
<SkeletonItemDetailsContent> <SkeletonItemDetailsContent>
<SkeletonItemDetailsLineContainer> <SkeletonItemDetailsLineContainer>
<SkeletonItemDetailsLineSmallContainer> <SkeletonItemDetailsLineSmallContainer>
<SkeletonItemDetailsLineSmall />
<SkeletonItemDetailsLineSmall />
<SkeletonItemDetailsLineSmall />
<SkeletonItemDetailsLineSmall />
<SkeletonItemDetailsLineSmallFirst />
<SkeletonItemDetailsLineSmallSecond />
<SkeletonItemDetailsLineSmallThird />
<SkeletonItemDetailsLineSmallFourth />
</SkeletonItemDetailsLineSmallContainer> </SkeletonItemDetailsLineSmallContainer>
<SkeletonItemDetailsLineBig /> <SkeletonItemDetailsLineBig />
</SkeletonItemDetailsLineContainer> </SkeletonItemDetailsLineContainer>
<SkeletonItemDetailsGallery> <SkeletonItemDetailsGallery>
<SkeletonItemDetailsArrow /> <SkeletonItemDetailsArrow />
<SkeletonItemDetailsImagesContainer> <SkeletonItemDetailsImagesContainer>
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImageHalf />
{isMobile ? (
<>
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImageHalf />
</>
) : (
<>
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImage />
<SkeletonItemDetailsImageHalf />
</>
)}
</SkeletonItemDetailsImagesContainer> </SkeletonItemDetailsImagesContainer>
<SkeletonItemDetailsArrow /> <SkeletonItemDetailsArrow />
</SkeletonItemDetailsGallery> </SkeletonItemDetailsGallery>
<SkeletonItemDetailsMainContainer> <SkeletonItemDetailsMainContainer>
<SkeletonItemDetailsMainFirstLine /> <SkeletonItemDetailsMainFirstLine />
<SkeletonItemDetailsLineSmall />
<SkeletonItemDetailsMainDescription />
<SkeletonItemDetailsMainMarginS /> <SkeletonItemDetailsMainMarginS />
<SkeletonItemDetailsMainSecondLine /> <SkeletonItemDetailsMainSecondLine />
<SkeletonItemDetailsMainThirdLine /> <SkeletonItemDetailsMainThirdLine />
<SkeletonItemDetailsMainFourthLine /> <SkeletonItemDetailsMainFourthLine />
<SkeletonItemDetailsMainMarginL /> <SkeletonItemDetailsMainMarginL />
<SkeletonItemDetailsMainSecondLine />
<SkeletonItemDetailsMainFourthLine />
<SkeletonItemDetailsMainThirdLine />
<SkeletonItemDetailsMainFourthLine />
<SkeletonItemDetailsMainFifthLine /> <SkeletonItemDetailsMainFifthLine />
<SkeletonItemDetailsMainSecondLine />
<SkeletonItemDetailsMainThirdLine />
<SkeletonItemDetailsMainFifthLine />
<SkeletonItemDetailsMainFourthLine />
<SkeletonItemDetailsMainSixthLine /> <SkeletonItemDetailsMainSixthLine />
<SkeletonItemDetailsMainSeventhLine />
<SkeletonItemDetailsMainEighthLine />
<SkeletonItemDetailsMainNinethLine />
<SkeletonItemDetailsMainTenthLine />
<SkeletonItemDetailsMainEleventhLine />
<SkeletonItemDetailsMainTwelfthLine />
<SkeletonItemDetailsMainThirteenthLine />
<SkeletonItemDetailsMainFourteenthLine />
<SkeletonItemDetailsMainButtons> <SkeletonItemDetailsMainButtons>
<SkeletonItemDetailsMainButtonRound />
<SkeletonItemDetailsMainButtonRound />
<SkeletonItemDetailsMainButtonRoundFirst />
<SkeletonItemDetailsMainButtonRoundSecond />
{isMobile && (
<SkeletonItemDetailsMainMobileButtonLinesCont>
<SkeletonItemDetailsMainMobileButtonFirstLine />
<SkeletonItemDetailsMainMobileButtonSecondLine />
</SkeletonItemDetailsMainMobileButtonLinesCont>
)}
<SkeletonItemDetailsMainButtonContainer> <SkeletonItemDetailsMainButtonContainer>
<SkeletonItemDetailsMainButton /> <SkeletonItemDetailsMainButton />
</SkeletonItemDetailsMainButtonContainer> </SkeletonItemDetailsMainButtonContainer>

+ 311
- 7
src/components/ItemDetails/SkeletonItemDetails/SkeletonItemDetails.styled.js Просмотреть файл

} }


@media (max-width: 600px) { @media (max-width: 600px) {
display: none;
margin-top: 180px;
} }
`; `;


margin-bottom: 18px; margin-bottom: 18px;
background-color: ${selectedTheme.colors.filterSkeletonBackground}; background-color: ${selectedTheme.colors.filterSkeletonBackground};
animation: ${skeletonBackgroundAnimation} 2s infinite; animation: ${skeletonBackgroundAnimation} 2s infinite;

@media (max-width: 600px) {
width: 72px;
}
`; `;


export const SkeletonItemDetailsContent = styled(Box)` export const SkeletonItemDetailsContent = styled(Box)`
gap: 27px; gap: 27px;
`; `;


export const SkeletonItemDetailsLineSmall = styled(Box)`
export const SkeletonItemDetailsLineSmallFirst = styled(Box)`
width: 72px;
height: 14px;
border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 78px;
}
`;

export const SkeletonItemDetailsLineSmallSecond = styled(Box)`
width: 72px;
height: 14px;
border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 49px;
}
`;

export const SkeletonItemDetailsLineSmallThird = styled(Box)`
width: 72px; width: 72px;
height: 14px; height: 14px;
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 49px;
}
`;

export const SkeletonItemDetailsLineSmallFourth = styled(Box)`
width: 72px;
height: 14px;
border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 39px;
}
`; `;


export const SkeletonItemDetailsLineBig = styled(Box)` export const SkeletonItemDetailsLineBig = styled(Box)`
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
display: none;
}
`; `;


export const SkeletonItemDetailsGalleryMainContainer = styled(Box)` export const SkeletonItemDetailsGalleryMainContainer = styled(Box)`
display: flex; display: flex;

@media (max-width: 600px) {
flex-direction: column;
margin-top: 60px;
}
`; `;


export const SkeletonItemDetailsGallery = styled(Box)` export const SkeletonItemDetailsGallery = styled(Box)`
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
gap: 18px; gap: 18px;

@media (max-width: 600px) {
flex-direction: row;
gap: 0;
}
`; `;


export const SkeletonItemDetailsArrow = styled(Box)` export const SkeletonItemDetailsArrow = styled(Box)`
border-radius: 100%; border-radius: 100%;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 30px;
height: 30px;
}
`; `;


export const SkeletonItemDetailsImagesContainer = styled(Box)` export const SkeletonItemDetailsImagesContainer = styled(Box)`
display: flex; display: flex;
flex-direction: column; flex-direction: column;

@media (max-width: 600px) {
flex-direction: row;
}
`; `;


export const SkeletonItemDetailsImage = styled(Box)` export const SkeletonItemDetailsImage = styled(Box)`
margin-bottom: 18px; margin-bottom: 18px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
margin-left: 9px;
margin-bottom: 0;
}
`; `;


export const SkeletonItemDetailsImageHalf = styled(Box)` export const SkeletonItemDetailsImageHalf = styled(Box)`
border-radius: 4px; border-radius: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
transform: rotate(90deg);
margin-top: 28px;
margin-left: -15px;
}
`; `;


export const SkeletonItemDetailsMainContainer = styled(Box)` export const SkeletonItemDetailsMainContainer = styled(Box)`
flex-direction: column; flex-direction: column;
margin-left: 20px; margin-left: 20px;
width: 100%; width: 100%;

@media (max-width: 600px) {
margin-left: 0;
}
`; `;


export const SkeletonItemDetailsMainMarginS = styled(Box)` export const SkeletonItemDetailsMainMarginS = styled(Box)`


export const SkeletonItemDetailsMainMarginL = styled(Box)` export const SkeletonItemDetailsMainMarginL = styled(Box)`
margin-bottom: 30px; margin-bottom: 30px;

@media (max-width: 600px) {
margin-bottom: 3px;
}
`; `;


export const SkeletonItemDetailsMainFirstLine = styled(Box)` export const SkeletonItemDetailsMainFirstLine = styled(Box)`
margin-bottom: 15px; margin-bottom: 15px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
position: absolute;
top: 370px;
left: 36px;
width: 123px;
height: 20px;
}
`;

export const SkeletonItemDetailsMainDescription = styled(Box)`
width: 72px;
height: 14px;
border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 26px;
margin-top: 17px;
}
`; `;


export const SkeletonItemDetailsMainSecondLine = styled(Box)` export const SkeletonItemDetailsMainSecondLine = styled(Box)`
@media (max-width: 1200px) { @media (max-width: 1200px) {
width: 370px; width: 370px;
} }
@media (max-width: 600px) {
width: 232px;
}
`; `;


export const SkeletonItemDetailsMainThirdLine = styled(Box)` export const SkeletonItemDetailsMainThirdLine = styled(Box)`
@media (max-width: 1200px) { @media (max-width: 1200px) {
width: 350px; width: 350px;
} }
@media (max-width: 600px) {
width: 271px;
}
`; `;


export const SkeletonItemDetailsMainFourthLine = styled(Box)` export const SkeletonItemDetailsMainFourthLine = styled(Box)`
@media (max-width: 1200px) { @media (max-width: 1200px) {
width: 365px; width: 365px;
} }
@media (max-width: 600px) {
width: 146px;
}
`; `;


export const SkeletonItemDetailsMainFifthLine = styled(Box)` export const SkeletonItemDetailsMainFifthLine = styled(Box)`
width: 441px;
width: 449px;
height: 18px; height: 18px;
border-radius: 2px; border-radius: 2px;
margin-bottom: 4px; margin-bottom: 4px;
@media (max-width: 1200px) { @media (max-width: 1200px) {
width: 361px; width: 361px;
} }
@media (max-width: 600px) {
width: 271px;
}
`; `;


export const SkeletonItemDetailsMainSixthLine = styled(Box)` export const SkeletonItemDetailsMainSixthLine = styled(Box)`
width: 307px;
width: 445px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 340px;
}
@media (max-width: 600px) {
width: 296px;
}
`;

export const SkeletonItemDetailsMainSeventhLine = styled(Box)`
width: 427px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 320px;
}
@media (max-width: 600px) {
width: 160px;
}
`;

export const SkeletonItemDetailsMainEighthLine = styled(Box)`
width: 445px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 340px;
}
@media (max-width: 600px) {
width: 192px;
}
`;

export const SkeletonItemDetailsMainNinethLine = styled(Box)`
width: 449px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 335px;
}
@media (max-width: 600px) {
width: 249px;
}
`;

export const SkeletonItemDetailsMainTenthLine = styled(Box)`
width: 449px;
height: 18px; height: 18px;
border-radius: 2px; border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;


@media (max-width: 1200px) { @media (max-width: 1200px) {
width: 227px;
width: 345px;
}

@media (max-width: 600px) {
width: 237px;
margin-bottom: 18px;
}
`;

export const SkeletonItemDetailsMainEleventhLine = styled(Box)`
width: 427px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 350px;
}

@media (max-width: 600px) {
width: 274px;
}
`;

export const SkeletonItemDetailsMainTwelfthLine = styled(Box)`
width: 449px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 342px;
}

@media (max-width: 600px) {
width: 288px;
}
`;

export const SkeletonItemDetailsMainThirteenthLine = styled(Box)`
width: 445px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 1200px) {
width: 352px;
}

@media (max-width: 600px) {
width: 283px;
}
`;

export const SkeletonItemDetailsMainFourteenthLine = styled(Box)`
width: 307px;
height: 18px;
border-radius: 2px;
margin-bottom: 4px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
display: none;
} }
`; `;


align-items: center; align-items: center;
margin-top: 268px; margin-top: 268px;
margin-left: auto; margin-left: auto;

@media (max-width: 600px) {
margin-top: 35px;
}
`;

export const SkeletonItemDetailsMainButtonRoundFirst = styled(Box)`
width: 40px;
height: 40px;
border-radius: 100%;
margin-right: 18px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 32px;
height: 32px;
position: absolute;
right: 59px;
top: 363px;
}
`; `;


export const SkeletonItemDetailsMainButtonRound = styled(Box)`
export const SkeletonItemDetailsMainButtonRoundSecond = styled(Box)`
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: 100%; border-radius: 100%;
margin-right: 18px; margin-right: 18px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 32px;
height: 32px;
position: absolute;
right: 18px;
top: 363px;
}
`; `;


export const SkeletonItemDetailsMainButton = styled(Box)` export const SkeletonItemDetailsMainButton = styled(Box)`
height: 14px; height: 14px;
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackground}; background-color: ${selectedTheme.colors.filterSkeletonBackground};
animation: ${skeletonAnimation} 2s infinite;
animation: ${skeletonBackgroundAnimation} 2s infinite;
`; `;


export const SkeletonItemDetailsMainButtonContainer = styled(Box)` export const SkeletonItemDetailsMainButtonContainer = styled(Box)`
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;
`; `;

export const SkeletonItemDetailsMainMobileButtonLinesCont = styled(Box)`
position: absolute;
left: 36px;
`;

export const SkeletonItemDetailsMainMobileButtonFirstLine = styled(Box)`
width: 53px;
height: 14px;
border-radius: 2px;
margin-bottom: 3px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;
`;

export const SkeletonItemDetailsMainMobileButtonSecondLine = styled(Box)`
width: 67px;
height: 14px;
border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite;
`;

+ 37
- 32
src/components/Profile/ProfileOffers/ProfileOffers.js Просмотреть файл

<SearchBar handleSearch={handleSearch} /> <SearchBar handleSearch={handleSearch} />
</> </>
)} )}
<OffersContainer>
{!isMobile ? (
isLoadingMineOffers || isLoadingMineOffers === undefined ? (
arrayForMapping.map((item, index) => (
<SkeletonOfferCard key={index} />
))
) : offersToShow.length !== 0 ? (
offersToShow.map((item) => (
<OfferCard
isMyOffer={props.isMyProfile}
offer={item}
key={JSON.stringify(item)}
messageUser={messageUser}
/>
))

{isLoadingMineOffers || isLoadingMineOffers === undefined ? (
<SkeletonOfferCard />
) : (
<OffersContainer>
{!isMobile ? (
isLoadingMineOffers || isLoadingMineOffers === undefined ? (
arrayForMapping.map((item, index) => (
<SkeletonOfferCard key={index} />
))
) : offersToShow.length !== 0 ? (
offersToShow.map((item) => (
<OfferCard
isMyOffer={props.isMyProfile}
offer={item}
key={JSON.stringify(item)}
messageUser={messageUser}
/>
))
) : (
<NoProfileOffers />
)
) : ( ) : (
<NoProfileOffers />
)
) : (
<OffersScroller hideArrows>
{offersToShow.map((item) => (
<OfferCard
vertical
isMyOffer={props.isMyProfile}
offer={item}
key={JSON.stringify(item)}
pinned
messageUser={messageUser}
/>
))}
</OffersScroller>
)}
</OffersContainer>
<OffersScroller hideArrows>
{offersToShow.map((item) => (
<OfferCard
vertical
isMyOffer={props.isMyProfile}
offer={item}
key={JSON.stringify(item)}
pinned
messageUser={messageUser}
/>
))}
</OffersScroller>
)}
</OffersContainer>
)}
</ProfileOffersContainer> </ProfileOffersContainer>
); );
}; };

+ 28
- 0
src/components/ProfileMini/SkeletonProfileMini/SkeletonProfileMini.styled.js Просмотреть файл

border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackground}; background-color: ${selectedTheme.colors.filterSkeletonBackground};
animation: ${skeletonBackgroundAnimation} 2s infinite; animation: ${skeletonBackgroundAnimation} 2s infinite;

@media (max-width: 600px) {
width: 72px;
}
`; `;


export const SkeletonProfileMiniContent = styled(Box)` export const SkeletonProfileMiniContent = styled(Box)`
border-radius: 100%; border-radius: 100%;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 90px;
height: 90px;
}
`; `;


export const SkeletonProfileMiniColumn = styled(Box)` export const SkeletonProfileMiniColumn = styled(Box)`
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
height: 20px;
}
`; `;


export const SkeletonProfileMiniSecondRow = styled(Box)` export const SkeletonProfileMiniSecondRow = styled(Box)`
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 136px;
height: 14px;
margin-top: 9px;
}
`; `;


export const SkeletonProfileMiniThirdRow = styled(Box)` export const SkeletonProfileMiniThirdRow = styled(Box)`
border-radius: 2px; border-radius: 2px;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
display: none;
}
`; `;


export const SkeletonProfileMiniImageSmall = styled(Box)` export const SkeletonProfileMiniImageSmall = styled(Box)`
border-radius: 100%; border-radius: 100%;
background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond}; background-color: ${selectedTheme.colors.filterSkeletonBackgroundSecond};
animation: ${skeletonAnimation} 2s infinite; animation: ${skeletonAnimation} 2s infinite;

@media (max-width: 600px) {
width: 32px;
height: 32px;
}
`; `;

+ 5
- 1
src/i18n/resources/rs.js Просмотреть файл

descriptionNoOfCharsError: "Opis mora imati najmanje 8 karaktera!", descriptionNoOfCharsError: "Opis mora imati najmanje 8 karaktera!",
locationError: "Unesite ispravnu lokaciju!", locationError: "Unesite ispravnu lokaciju!",
categoryError: "Kategorija je obavezna!", categoryError: "Kategorija je obavezna!",
subcategoryError: "Podkategorija je obavezna!"
subcategoryError: "Podkategorija je obavezna!",
}, },
password: { password: {
weak: "slaba", weak: "slaba",
description: "Opis", description: "Opis",
email: "Mejl kompanije", email: "Mejl kompanije",
}, },
carousel: {
imagesReview: "Pregled fotografija",
offer: "Proizvod:",
},
}; };

Загрузка…
Отмена
Сохранить