Skip to content

Commit

Permalink
[ feat ] 커뮤니티 리스트 mockdata 연결
Browse files Browse the repository at this point in the history
  • Loading branch information
Brokyeom committed Jul 16, 2022
1 parent cb0bbde commit d53c873
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 83 deletions.
8 changes: 6 additions & 2 deletions components/common/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ export default function Header() {
</Link>
<StSearchWrapper>
<StSearchBar>
<input type="text" placeholder="상품명, 스토어명을 검색해보세요!" />
<input
type="text"
maxLength={60}
placeholder="상품명, 스토어명을 검색해보세요!"
/>
<IcSearchIcon />
</StSearchBar>
<StMenu>
Expand All @@ -40,7 +44,7 @@ const StHeaderWrapper = styled.header`
position: sticky;
top: -3.2rem;
width: 100%;
width: 192rem;
height: 11.4rem;
background-color: ${({ theme }) => theme.colors.mainGreen};
Expand Down
2 changes: 1 addition & 1 deletion components/common/WriteHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const StWriteHeaderWrapper = styled.section`
position: sticky;
top: -3.2em;
width: 100%;
width: 192rem;
height: 11.4rem;
padding-top: 4.2rem;
Expand Down
88 changes: 19 additions & 69 deletions components/community/CommunityList.tsx
Original file line number Diff line number Diff line change
@@ -1,44 +1,27 @@
import styled from '@emotion/styled';
import { IcCommunitySearchIcon } from '../../public/assets/icons';
import ContentCard from './ContentsCard';
import Link from 'next/link';
import { CommunityData } from '../../types/community';

export default function CommunityList() {
interface CommunityListProps {
contentsList: CommunityData[];
}

export default function CommunityList(props: CommunityListProps) {
const { contentsList } = props;
return (
<StCommunityListWrapper>
<StSearchBar>
<input type="text" />
<IcCommunitySearchIcon />
</StSearchBar>
<Link href="/write">
<StWriteBtn>글쓰기</StWriteBtn>
</Link>
<ContentCard
category="후기"
title="그린키드 미끄럼틀 아이가 좋아하네요"
content="군인 또는 군무원이 아닌 국민은 대한민국의 영역안에서는 중대한 군사상 기밀·초병·초소·유독음식물공급·포로·군용물에 관한 죄중 법률이 정한 경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우....경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우...."
userNickname="예현맘"
createdAt="2022.07.12"
replyCount={12}
img="https://www.littlebaby.co.kr:14019/shop/data/goods/1632018070797m0.jpg"
/>
<ContentCard
category="정보공유"
title="그린키드 미끄럼틀 아이가 좋아하네요"
content="군인 또는 군무원이 아닌 국민은 대한민국의 영역안에서는 중대한 군사상 기밀·초병·초소·유독음식물공급·포로·군용물에 관한 죄중 법률이 정한 경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우....경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우...."
userNickname="예현맘"
createdAt="2022.07.12"
replyCount={127}
/>
<ContentCard
category="질문"
title="그린키드 미끄럼틀 아이가 좋아하네요"
content="군인 또는 군무원이 아닌 국민은 대한민국의 영역안에서는 중대한 군사상 기밀·초병·초소·유독음식물공급·포로·군용물에 관한 죄중 법률이 정한 경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우....경우와 비상계엄이 선포된 경우를 제외하고는 군사법원의 재판을 받지 아니한다. 선거에 관한 경비는 법률이 정하는 경우...."
userNickname="예현맘"
createdAt="2022.07.12"
replyCount={3}
img="https://www.littlebaby.co.kr:14019/shop/data/goods/1632018070797m0.jpg"
/>
{contentsList.map((content, idx) => (
<ContentCard
key={idx}
category={content.category}
title={content.title}
content={content.content}
userNickname={content.userNickname}
createdAt={content.createdAt}
replyCount={content.replyCount}
img={content.image}
/>
))}
</StCommunityListWrapper>
);
}
Expand All @@ -51,36 +34,3 @@ const StCommunityListWrapper = styled.section`
margin-bottom: 4.8rem;
`;
const StSearchBar = styled.div`
display: flex;
flex-direction: row;
width: 64.2rem;
height: 4.5rem;
border-bottom: 0.1rem solid ${({ theme }) => theme.colors.black};
margin-bottom: 7.9rem;
input {
width: 60rem;
height: 2.5rem;
font-size: 2.5rem;
}
`;
const StWriteBtn = styled.a`
padding: 0.9rem 2.5rem;
margin-bottom: 3.3rem;
margin-left: 85%;
font-style: normal;
font-weight: 400;
font-size: 2rem;
line-height: 2.8rem;
background-color: #e1ffeb;
color: ${({ theme }) => theme.colors.mainDarkgreen};
border: 0.2rem solid ${({ theme }) => theme.colors.mainDarkgreen};
border-radius: 1rem;
cursor: pointer;
`;
6 changes: 3 additions & 3 deletions components/community/ContentsCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ interface ContentInfoProps {
category: string;
title: string;
content: string;
userNickname: string;
replyCount: number;
createdAt: string;
userNickname?: string;
replyCount?: number;
createdAt?: string;
img?: string;
}

Expand Down
10 changes: 10 additions & 0 deletions core/api/communityList.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import useSWR from 'swr';
import { baseInstance } from '../axios';

export const useGetCommunityList = (key: string) => {
const { data } = useSWR(`/community?sort=${key}`, baseInstance.get);

return {
communityList: data,
};
};
14 changes: 7 additions & 7 deletions core/axios.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import axios from 'axios';
import LocalStorage from './localStorage';
// const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;
const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;

// const baseInstance = axios.create({
// baseURL: `${BASE_URL}`,
// headers: {
// 'Content-Type': 'application/json',
// },
// });
export const baseInstance = axios.create({
baseURL: `${BASE_URL}`,
headers: {
'Content-Type': 'application/json',
},
});
50 changes: 49 additions & 1 deletion pages/community/index.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
import styled from '@emotion/styled';
import { CommunityList } from '../../components/community';
import { IcCommunitySearchIcon } from '../../public/assets/icons';
import Link from 'next/link';
import { useState } from 'react';
import { useGetCommunityList } from '../../core/api/communityList';
import { CommunityData } from '../../types/community';

export default function community() {
const [contentList, setContentList] = useState<CommunityData[]>([]);
// const [currentPage, setCurrentPage] = useState<number>();

return (
<StCommunityWrapper>
<StCommunityTitle>커뮤니티</StCommunityTitle>
<CommunityList />
<StSearchBar>
<input type="text" />
<IcCommunitySearchIcon />
</StSearchBar>
<Link href="/write">
<StWriteBtn>글쓰기</StWriteBtn>
</Link>
{contentList.map(<CommunityList contentsList={contentList} />)}
</StCommunityWrapper>
);
}
Expand All @@ -23,3 +38,36 @@ const StCommunityTitle = styled.h1`
${({ theme }) => theme.fonts.t1_28_medium_150};
`;
const StSearchBar = styled.div`
display: flex;
flex-direction: row;
width: 64.2rem;
height: 4.5rem;
border-bottom: 0.1rem solid ${({ theme }) => theme.colors.black};
margin-bottom: 7.9rem;
input {
width: 60rem;
height: 2.5rem;
font-size: 2.5rem;
}
`;
const StWriteBtn = styled.a`
padding: 0.9rem 2.5rem;
margin-bottom: 3.3rem;
margin-left: 85%;
font-style: normal;
font-weight: 400;
font-size: 2rem;
line-height: 2.8rem;
background-color: #e1ffeb;
color: ${({ theme }) => theme.colors.mainDarkgreen};
border: 0.2rem solid ${({ theme }) => theme.colors.mainDarkgreen};
border-radius: 1rem;
cursor: pointer;
`;

0 comments on commit d53c873

Please sign in to comment.