Skip to content

Commit

Permalink
Merge pull request #28 from KUSITMS-27-chilling/feat/add-center-news-โ€ฆ
Browse files Browse the repository at this point in the history
โ€ฆapi/hyewon

feat: ๊ด€์‹ฌ์„ผํ„ฐ ์ƒˆ์†Œ์‹ api ์—ฐ๊ฒฐ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ํƒญ๋ฐ” ์˜ค๋ฅ˜ ์ˆ˜์ •
  • Loading branch information
yeonsuu21 committed May 14, 2023
2 parents ba1c22d + 9dc5d8c commit d402247
Show file tree
Hide file tree
Showing 11 changed files with 126 additions and 124 deletions.
66 changes: 60 additions & 6 deletions src/components/CenterNews/CenterNews.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ import {
LearningGroundText,
CenterNewsOut
} from './CenterNews.styled';
import { LGDataArr } from '../../types/centerNews';
import { useState } from 'react';
import { LGData, LGProgram } from '../../types/centerNews';
import { useEffect, useState } from 'react';
import { loginState } from '../../recoil/user';
import { useRecoilValue } from 'recoil';
import axios from 'axios';

function CenterNews({ lgData }: LGDataArr) {
const [programs, setPrograms] = useState(lgData[0].programs);
function CenterNews() {
const [lgData, setLgData] = useState<LGData[]>([]);
const [programs, setPrograms] = useState<LGProgram[]>([]);
const state = useRecoilValue(loginState);

function regionClick(e: React.MouseEvent<HTMLButtonElement>) {
Expand All @@ -37,6 +39,58 @@ function CenterNews({ lgData }: LGDataArr) {
})
}

async function getMyRegions(token: string) {
if(token !== null) {
await axios.get(`${import.meta.env.VITE_APP_HOST}/user/regions`, {
headers: {
Authorization: `Bearer ${token}`
}
}).then((res) => {
getCenterNews(res.data.data.regions);
})
.catch((err) => console.log(err));
}
}

async function getCenterNews(regions: string[]) {
const tempArr: LGData[] = await Promise.all(
regions.map(async (el) => {
const response = await axios.get(`${import.meta.env.VITE_APP_HOST}/program/new/${el}`);
const res = response.data.data.newPrograms;
const tempPrograms: LGProgram[] = [];
for (let key in res) {
const tempProgram: LGProgram = {
programTitle: res[key].programName,
programPeriod: dateToStr(res[key].startDate, res[key].endDate)
}
tempPrograms.push(tempProgram);
}
return {
region: el.slice(0, -1),
programs: tempPrograms
};
})
);
setPrograms(tempArr[0].programs);
setLgData(tempArr);
}


function dateToStr(start: string, end: string) {
let str = '';
let dateParts = start.split('-');
str = `${dateParts[0]}. ${dateParts[1]}. ${dateParts[2]} ~ `;
dateParts = end.split('-');
str += `${dateParts[0]}. ${dateParts[1]}. ${dateParts[2]}`;
return str;
}

useEffect(() => {
setLgData([]);
const token = localStorage.getItem('access_token');
if(token !== null) getMyRegions(token);
}, [state])

return(
<CenterNewsContainer>
<CenterNewsHeader>
Expand All @@ -54,7 +108,7 @@ function CenterNews({ lgData }: LGDataArr) {
<>
<RegionContainer>
{
lgData &&
(lgData.length > 0) &&
lgData.map((el, idx) => {
if(idx == 0){
return (
Expand All @@ -75,7 +129,7 @@ function CenterNews({ lgData }: LGDataArr) {
</LearningGroundHeader>
<LearningGroundList>
{
lgData &&
(lgData.length > 0) &&
programs.map((el, idx) => (
<LearningGroundProgram key={idx}>
<LearningGroundText>{el.programTitle}</LearningGroundText>
Expand Down
21 changes: 12 additions & 9 deletions src/components/Commu/CommuTab/CommuTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,19 @@ import {
import { commuTabKind } from "../../../recoil/community";
import { useSetRecoilState } from "recoil";
import { useEffect } from "react";
import { Navigate ,useNavigate } from "react-router-dom";
import { useNavigate } from "react-router-dom";
import { CommuTabType } from "../../../types/communityTab";

function CommuTab(props: any) {
function CommuTab({ thisCommu }: { thisCommu: CommuTabType }) {
const setCommuTab = useSetRecoilState(commuTabKind);
useEffect(() => {
setCommuTab('review');
},[])

const navigate = useNavigate();

useEffect(() => {
setCommuTab(thisCommu);
const el = document.getElementById(`community-tab__${thisCommu}`);
el?.click();
}, []);

function btnClick(e: React.MouseEvent<HTMLDivElement>) {
const tabArr = document.querySelectorAll('.community-tab__btn');
tabArr.forEach((el) => {
Expand All @@ -35,7 +38,7 @@ function CommuTab(props: any) {
return;
}

if(e.currentTarget.id == 'community-tab__free-board') {
if(e.currentTarget.id == 'community-tab__freeBoard') {
navigate('/commu');
setCommuTab('freeBoard');
return;
Expand All @@ -45,12 +48,12 @@ function CommuTab(props: any) {
return(
<CommuTabContainer>
<CommuTabBtn id="community-tab__review"
className="community-tab__btn active"
className="community-tab__btn"
onClick={e => btnClick(e)}>์ˆ˜๊ฐ• ํ›„๊ธฐ</CommuTabBtn>
<CommuTabBtn id="community-tab__together"
className="community-tab__btn"
onClick={e => btnClick(e)}>๊ฐ™์ด ๋“ฃ๊ธฐ</CommuTabBtn>
<CommuTabBtn id="community-tab__free-board"
<CommuTabBtn id="community-tab__freeBoard"
className="community-tab__btn"
onClick={e => btnClick(e)}>์ž์œ ๊ฒŒ์‹œํŒ</CommuTabBtn>
</CommuTabContainer>
Expand Down
5 changes: 4 additions & 1 deletion src/components/DetailContent/DetailContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ function DetailContent() {
goalNum: response[key].goalNum,
currentNum: response[key].currentNum,
tags: response[key].tags,
programName: response[key].programName
listenIdx: response[key].listenIdx,
programName: response[key].programName,
detailOrCommu: 'detail'
}

setTogetherArr(togetherArr => [object, ...togetherArr]);
Expand All @@ -51,6 +53,7 @@ function DetailContent() {
const response = res.data.data.reviews;
for(let key in response) {
const object: ReviewData = {
userImg: response[key].profile,
userNick: response[key].nickName,
time: '18์‹œ๊ฐ„ ์ „',
title: response[key].title,
Expand Down
2 changes: 1 addition & 1 deletion src/components/Review/Review.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function Review({ props }: ReviewProps) {
const [viewContent, setViewContent] = useState('');
const [overLength, setOverLength] = useState(false);
const { userImg, userNick, time, title, lecture, content, region, detailPlace, reviewImg, reviewIdx, detailOrCommu } = props;

function countImg() {
if(reviewImg && (reviewImg?.length > 0)) {
setCount(reviewImg.length);
Expand Down
67 changes: 33 additions & 34 deletions src/components/ReviewDetail/ReviewDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,48 +59,47 @@ function ReviewDetail({ reviewIdx }: { reviewIdx: number }) {
fetchData();
}, [reviewIdx]);

console.log(data);

return (
<div>
<CardForm>
{
data && (
<>
<CardTop>
<div className='profile'></div>
<div className='right'>
<div className='user-title'>
<div className='user-name'>{data.nickName}</div>
<div className='user-grade'></div>
<CardTop>
<div className='profile'></div>
<div className='right'>
<div className='user-title'>
<div className='user-name'>{data.nickName}</div>
<div className='user-grade'></div>
</div>
<div className='tag-day'>
<div className='tag-category-box'>
{data.favFields.map((favField, idx) => (
<div className="tag-category" key={idx}>#{favField}</div>
))}
{/* <div className='tag-category'>#{data.favFields[0]}</div>
<div className='tag-category'>#{data.favFields[1]}</div> */}
</div>
<div className='day'>{data.createdAt}</div>
</div>
</div>
<div className='tag-day'>
<div className='tag-category-box'>
{data.favFields.map((favField) => (
<div className="tag-category">#{favField}</div>
))}
{/* <div className='tag-category'>#{data.favFields[0]}</div>
<div className='tag-category'>#{data.favFields[1]}</div> */}
</div>
<div className='day'>{data.createdAt}</div>
</div>
</div>
</CardTop>
<Line></Line>
<CardTitle>
<div className='content-title'>{data.title}</div>
<div className='content-classname'>{data.programName}</div>
</CardTitle>
<CardContent>
<div className='img'>{data.image}</div>
<div className='content-tag'>
<div className='content'>{data.content}</div>
<div className='tag'>
<div className='tag-region'>#{data.tags[0]}</div>
<div className='tag-center'>#{data.tags[1]}</div>
</div>
</div>
</CardContent>
</CardTop>
<Line></Line>
<CardTitle>
<div className='content-title'>{data.title}</div>
<div className='content-classname'>{data.programName}</div>
</CardTitle>
<CardContent>
<div className='img'>{data.image}</div>
<div className='content-tag'>
<div className='content'>{data.content}</div>
<div className='tag'>
<div className='tag-region'>#{data.tags[0]}</div>
<div className='tag-center'>#{data.tags[1]}</div>
</div>
</div>
</CardContent>
</>
)
}
Expand Down
5 changes: 2 additions & 3 deletions src/components/TogetherDetail/TogetherDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ function TogetherDetail({ listenIdx }: { listenIdx: number }) {
`${import.meta.env.VITE_APP_HOST}/listen/${listenIdx}`
);
setData(response.data.data);
console.log(data);
} catch (e) {
console.log(e);
}
Expand All @@ -94,8 +93,8 @@ function TogetherDetail({ listenIdx }: { listenIdx: number }) {
</div>
<div className='tag-day'>
<div className='tag-category-box'>
{data.favField.map((favFields) => (
<div className="tag-category">#{favFields}</div>
{data.favField.map((favFields, idx) => (
<div className="tag-category" key={idx}>#{favFields}</div>
))}
{/* <div className='tag-category'>#{data.favField[0]}</div>
<div className='tag-category'>#{data.favField[1]}</div> */}
Expand Down
8 changes: 4 additions & 4 deletions src/pages/Commu/CommunityPage.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React from 'react'
import Review from '../../components/Review'
import {
MainBanner
} from "./CommunityPage.styled"
Expand All @@ -9,19 +8,20 @@ import CommuTab from '../../components/Commu/CommuTab';
import CommuHeader from '../../components/Commu/CommuHeader';
import CommuList from '../../components/Commu/CommuList';
import { Category } from '../../types/tabCategory';
import { detailOrCommu } from '../../types/review';
import { commuTabKind } from '../../recoil/community';
import { useRecoilValue } from 'recoil';

function CommunityPage() {
const commu: detailOrCommu = 'community';
const category: Category = 'community';
const commuTab = useRecoilValue(commuTabKind);

return (
<div>
<>
<Header/>
<TabBar prop={category} />
<MainBanner />
<CommuTab />
<CommuTab thisCommu={commuTab} />
<CommuHeader />
<CommuList />
</>
Expand Down
56 changes: 1 addition & 55 deletions src/pages/Main/MainPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,68 +97,14 @@ function MainPage() {
else getPrograms();
}, [state])


const lgData: LGData[] = [
{
region: '์ข…๋กœ',
programs: [
{
programTitle: '๋ณดํƒœ๋‹ˆ์ปฌ ๋™์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ช…ํ™” ์„œ์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ณดํƒœ๋‹ˆ์ปฌ ๋™์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ช…ํ™” ์„œ์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ณดํƒœ๋‹ˆ์ปฌ ๋™์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
}
]
},
{
region: '์„ฑ๋ถ',
programs: [
{
programTitle: '๋ช…ํ™” ์„œ์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ณดํƒœ๋‹ˆ์ปฌ ๋™์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ช…ํ™” ์„œ์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ณดํƒœ๋‹ˆ์ปฌ ๋™์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
},
{
programTitle: '๋ช…ํ™” ์„œ์–‘ํ™” ๋ฐฐ์šฐ๊ธฐ',
programPeriod: '2023. 04. 01 ~ 2023. 05. 21'
}
]
}
]

return (
<>
<Header />
<MainBanner />
<MainBody_Today>

<MainBody_Today_In>
<CenterNews lgData={lgData} />
<CenterNews />
<TodayMy />
</MainBody_Today_In>

Expand Down
3 changes: 1 addition & 2 deletions src/pages/ReviwDetail/RevieDetailPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@ import{

const RevieDetailPage =() => {
const { reviewIdx } = useParams();
console.log(reviewIdx);
const category: Category = 'community';
return (
<div>
<Header/>
<TabBar prop={category} />
<MainBanner />
<CommuTab />
<CommuTab thisCommu='review' />
<ReviewDetailBox>
<ReviewDetail reviewIdx ={Number(reviewIdx)}/>
</ReviewDetailBox>
Expand Down
Loading

1 comment on commit d402247

@vercel
Copy link

@vercel vercel bot commented on d402247 May 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

encore-fe โ€“ ./

encore-fe-git-develop-chilling-dachae.vercel.app
encore-fe.vercel.app
encore-fe-chilling-dachae.vercel.app

Please sign in to comment.