diff --git a/src/assets/common/LeftArrow.svg b/src/assets/common/Arrow.svg similarity index 100% rename from src/assets/common/LeftArrow.svg rename to src/assets/common/Arrow.svg diff --git a/src/common/BottomButton.tsx b/src/common/BottomButton.tsx index ca86198..585f801 100644 --- a/src/common/BottomButton.tsx +++ b/src/common/BottomButton.tsx @@ -4,13 +4,13 @@ import styled from 'styled-components/native'; import { Body16M } from '../styles/GlobalText'; import { PURPLE, GREEN } from '../styles/GlobalColor'; -interface BottomButtonParams { +interface BottomButtonProps { value: string; pressed: boolean; onPress: () => void; } -const BottomButton = ({ value, pressed, onPress }: BottomButtonParams) => { +const BottomButton = ({ value, pressed, onPress }: BottomButtonProps) => { return ( {value} diff --git a/src/common/Footer.tsx b/src/common/Footer.tsx index b3cbc9f..ab46de3 100644 --- a/src/common/Footer.tsx +++ b/src/common/Footer.tsx @@ -9,7 +9,7 @@ const Footer = () => { const [pressed, setPressed] = useState(false); return ( - setLike(!like)} /> + setLike(!like)} blank /> setPressed(!pressed)} /> ) diff --git a/src/common/Hashtag.tsx b/src/common/Hashtag.tsx index 1c53dd3..cd13734 100644 --- a/src/common/Hashtag.tsx +++ b/src/common/Hashtag.tsx @@ -4,14 +4,14 @@ import styled from 'styled-components/native'; import { Filter14M } from '../styles/GlobalText'; import { PURPLE } from '../styles/GlobalColor'; -interface HashtagParams { +interface HashtagProps { value: string; pressable?: boolean; pressed?: boolean; onPress?: () => void; } -const Hashtag = ({value, pressable, pressed, onPress} : HashtagParams) => { +const Hashtag = ({value, pressable, pressed, onPress} : HashtagProps) => { return ( {value} diff --git a/src/common/HeartButton.tsx b/src/common/HeartButton.tsx index 682c082..44b033a 100644 --- a/src/common/HeartButton.tsx +++ b/src/common/HeartButton.tsx @@ -1,17 +1,18 @@ import React from 'react'; import { TouchableOpacity } from 'react-native'; import Heart from '../assets/common/Heart.svg'; -import { PURPLE } from '../styles/GlobalColor'; +import { PURPLE, PURPLE2, PURPLE3 } from '../styles/GlobalColor'; interface HeartProps { like: boolean; onPress: () => void; + blank?: boolean; } -const HeartButton = ({ like, onPress }: HeartProps) => { +const HeartButton = ({ like, onPress, blank }: HeartProps) => { return ( - - + + ) } diff --git a/src/common/ThumbnailHashtag.tsx b/src/common/ThumbnailHashtag.tsx new file mode 100644 index 0000000..b6cf299 --- /dev/null +++ b/src/common/ThumbnailHashtag.tsx @@ -0,0 +1,26 @@ +import styled from 'styled-components/native'; +import { PURPLE3 } from '../styles/GlobalColor'; +import { Caption11M } from '../styles/GlobalText'; + +interface ThumbnailHashtagProps { + value: string; +} + +const ThumbnailHashtag = ({ value }: ThumbnailHashtagProps) => { + return ( + + {value} + + ) +} + +const Container = styled.View` + display: flex; + padding: 4px 8px; + justify-content: center; + align-items: center; + border-radius: 4px; + background: ${PURPLE3}; +` + +export default ThumbnailHashtag; \ No newline at end of file diff --git a/src/components/Home/Market/MarketTabView.tsx b/src/components/Home/Market/MarketTabView.tsx index 6a75099..644e7fd 100644 --- a/src/components/Home/Market/MarketTabView.tsx +++ b/src/components/Home/Market/MarketTabView.tsx @@ -8,9 +8,10 @@ import { StackScreenProps } from '@react-navigation/stack'; import { HomeStackParams } from '../../../pages/Home'; import InfoPage from './InfoPage.tsx'; +import ProductPage from './ProductPage.tsx'; import Footer from '../../../common/Footer.tsx'; -import LeftArrow from '../../../assets/common/LeftArrow.svg'; +import Arrow from '../../../assets/common/Arrow.svg'; import Hashtag from '../../../common/Hashtag.tsx'; const ProfileSection = () => { @@ -39,14 +40,6 @@ const ProfileSection = () => { ) } -const ProductPage = () => { - return ( - - 상품 - - ) -} - const ReviewPage = () => { return ( @@ -78,7 +71,7 @@ const MarketTabView = ({ navigation, route } : StackScreenProps navigation.goBack()}> - + void; +} + +const ProductItem = ({ onPress }: ProductItemProps) => { + const [like, setLike] = useState(false); + return ( + + + setLike(!like)} /> + + 청바지 에코백 + + 25,000 + + + + ) +} + +const TextContainer = styled.View` + display: flex; + flex-direction: row; + justify-content: space-between; + padding-vertical: 5px; +` + +export default ProductItem; \ No newline at end of file diff --git a/src/components/Home/components/ServiceItem.tsx b/src/components/Home/components/ServiceItem.tsx new file mode 100644 index 0000000..5a0315e --- /dev/null +++ b/src/components/Home/components/ServiceItem.tsx @@ -0,0 +1,39 @@ +import { useState } from 'react'; +import { View, TouchableOpacity, ImageBackground } from 'react-native'; +import styled from 'styled-components/native'; + +import HeartButton from '../../../common/HeartButton'; +import { Body16B, Caption12M, Subtitle16B } from '../../../styles/GlobalText'; +import { BLACK2 } from '../../../styles/GlobalColor'; + +interface ServiceItemProps { + onPress: () => void; +} + +const ServiceItem = ({ onPress }: ServiceItemProps) => { + const [like, setLike] = useState(false); + return ( + + + setLike(!like)} /> + + + 청바지 에코백 서비스 + 20000원 ~ + + 안입는 청바지를 활용한 나만의 에코백! 아주 좋은 에코백 환경에도 좋고 나에게도 좋고 어쩌구저쩌구한 에코백입니다 최고임 짱짱 + + ) +} + +const TitleContainer = styled.View` + display: flex; + flex-direction: row; + justify-content: space-between; + padding-vertical: 5px; +` + +export default ServiceItem; \ No newline at end of file diff --git a/src/styles/GlobalColor.tsx b/src/styles/GlobalColor.tsx index 104c536..a7c1aa6 100644 --- a/src/styles/GlobalColor.tsx +++ b/src/styles/GlobalColor.tsx @@ -1,4 +1,6 @@ export const PURPLE = '#612FEF'; +export const PURPLE2 = '#CEBFFA'; +export const PURPLE3 = '#E7E0FD'; export const GREEN = '#DBFC72'; export const BLACK = '#222222'; export const BLACK2 = '#929292'; \ No newline at end of file