Skip to content

Commit 89470be

Browse files
authored
Merge pull request #125 from Moaguide-develop/feat/productpage
Feat/productpage
2 parents cf591ce + ce0b00e commit 89470be

File tree

3 files changed

+68
-16
lines changed

3 files changed

+68
-16
lines changed

src/app/product/detail/music/[id]/page.tsx

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,27 @@ const MusicDetailpage = (props: any) => {
129129
{data?.name}
130130
</div>
131131
<div className="text-sm font-bold mb-[5px] "> {data?.singer}</div>
132-
<div className=" mb-[20px] font-bold">
132+
<div className="mb-[20px] font-bold">
133133
과거 1년 저작권료(1주)
134-
<span className="text-red-500 ml-1">
135-
{data?.yearDvide.toLocaleString()} ({data?.yearDvideRate}%)
134+
<span
135+
className={`ml-1 ${
136+
data?.yearDvideRate !== undefined
137+
? data.yearDvideRate > 0
138+
? 'text-red-500'
139+
: data.yearDvideRate < 0
140+
? 'text-blue-500'
141+
: 'text-gray-500'
142+
: 'text-gray-500'
143+
}`}>
144+
{data?.yearDvide.toLocaleString()} (
145+
{data?.yearDvideRate !== undefined
146+
? data.yearDvideRate > 0
147+
? `+${data.yearDvideRate}%`
148+
: data.yearDvideRate < 0
149+
? `${data.yearDvideRate}%`
150+
: `0%`
151+
: '0%'}
152+
)
136153
</span>
137154
</div>
138155
</div>
@@ -143,7 +160,26 @@ const MusicDetailpage = (props: any) => {
143160
<div className="text-gray-400">현재가</div>
144161
<div className="flex flex-row ">
145162
<div>{data?.price.toLocaleString()}</div>
146-
<div className="text-red-500 "> ({data?.priceRate}%)</div>
163+
<div
164+
className={`${
165+
data?.priceRate !== undefined
166+
? data.priceRate > 0
167+
? 'text-red-500'
168+
: data.priceRate < 0
169+
? 'text-blue-500'
170+
: 'text-gray-500'
171+
: 'text-gray-500'
172+
}`}>
173+
(
174+
{data?.priceRate !== undefined
175+
? data.priceRate > 0
176+
? `+${data.priceRate}%`
177+
: data.priceRate < 0
178+
? `${data.priceRate}%`
179+
: `0%`
180+
: '0%'}
181+
)
182+
</div>
147183
</div>
148184
</div>
149185

@@ -159,7 +195,24 @@ const MusicDetailpage = (props: any) => {
159195

160196
<div className="flex mt-[10px] w-full desk:max-w-[360px] md:w-[300px] justify-between ">
161197
<div className="text-gray-400">배당 수익률</div>
162-
<div className="text-red-500">{data?.lastDivide_rate}%</div>
198+
<div
199+
className={`${
200+
data?.lastDivide_rate !== undefined
201+
? data.lastDivide_rate > 0
202+
? 'text-red-500'
203+
: data.lastDivide_rate < 0
204+
? 'text-blue-500'
205+
: 'text-gray-500'
206+
: 'text-gray-500'
207+
}`}>
208+
{data?.lastDivide_rate !== undefined
209+
? data.lastDivide_rate > 0
210+
? `+${data.lastDivide_rate}%`
211+
: data.lastDivide_rate < 0
212+
? `${data.lastDivide_rate}%`
213+
: `0%`
214+
: '0%'}
215+
</div>
163216
</div>
164217

165218
<div className="flex mt-[10px] w-full desk:max-w-[360px] md:w-[300px] justify-between ">

src/factory/ProductDetail/MusicProductDetail.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ import axios from 'axios';
66

77
const fetchMusicProductDetail = async (context: QueryFunctionContext) => {
88
const product_id = context.queryKey[1] as string;
9-
const { data } = await axiosInstance.get(
10-
`https://api.moaguide.com/detail/music/${product_id}`
11-
);
9+
const { data } = await axiosInstance.get(`/detail/music/${product_id}`);
1210
return data;
1311
};
1412

src/service/axiosInstance.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,30 @@ import axios from 'axios';
22
import { getToken, setToken, removeToken } from '@/utils/localStorage';
33
import { refreshAccessToken } from './auth';
44

5+
let backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL;
56

6-
const backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL;
7+
process.env.NODE_ENV === 'development'
8+
? (backendUrl = process.env.NEXT_PUBLIC_DATA)
9+
: (backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL);
710

811
// 토큰을 사용하는 Axios 인스턴스
912
export const axiosInstance = axios.create({
1013
baseURL: backendUrl,
11-
withCredentials: true,
14+
withCredentials: true
1215
});
1316

1417
// 토큰을 사용하지 않는 Axios 인스턴스
1518
export const basicAxiosInstance = axios.create({
1619
baseURL: backendUrl,
17-
withCredentials: true,
20+
withCredentials: true
1821
});
1922

2023
// 리프레시 토큰 요청을 위한 Axios 인스턴스
2124
export const refreshAxiosInstance = axios.create({
2225
baseURL: backendUrl,
23-
withCredentials: true,
26+
withCredentials: true
2427
});
2528

26-
2729
axiosInstance.interceptors.request.use(
2830
(config) => {
2931
const token = getToken();
@@ -35,7 +37,6 @@ axiosInstance.interceptors.request.use(
3537
(error) => Promise.reject(error)
3638
);
3739

38-
3940
axiosInstance.interceptors.response.use(
4041
(response) => {
4142
return response;
@@ -57,7 +58,7 @@ axiosInstance.interceptors.response.use(
5758
}
5859
} catch (refreshError) {
5960
console.error('리프레시 토큰 갱신 오류:', refreshError);
60-
61+
6162
// 리프레시 토큰 갱신 실패 시 로그아웃 처리 또는 에러 핸들링
6263
removeToken(); // 만료된 토큰 제거
6364
window.location.href = '/sign'; // 로그인 페이지로 리디렉션
@@ -67,4 +68,4 @@ axiosInstance.interceptors.response.use(
6768

6869
return Promise.reject(error);
6970
}
70-
);
71+
);

0 commit comments

Comments
 (0)