From b77fa62da2e0c61497b01e1d1a42100aa1b7b4ab Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:16:05 +0900 Subject: [PATCH 01/10] =?UTF-8?q?refactor:=20css=20=EC=95=A0=EB=8B=88?= =?UTF-8?q?=EB=A9=94=EC=9D=B4=EC=85=98=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=86=8D=EB=8F=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/tailwind.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/tailwind.config.js b/packages/client/tailwind.config.js index 8de44888..89f9b5d3 100644 --- a/packages/client/tailwind.config.js +++ b/packages/client/tailwind.config.js @@ -12,12 +12,12 @@ module.exports = withMT({ sans: ['Pretendard', 'sans-serif'], }, animation: { - infiniteScroll: 'infiniteScroll 250s linear infinite', + infiniteScroll: 'infiniteScroll 500s linear infinite', }, keyframes: { infiniteScroll: { '0%': { transform: 'translateX(0)' }, - '100%': { transform: 'translateX(-50%)' }, + '100%': { transform: 'translateX(-100%)' }, }, }, }, From 3a7edadcfc88b356a1d12a08a33156f452e350b9 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:16:24 +0900 Subject: [PATCH 02/10] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20fragment=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/components/Header.tsx | 106 +++++++++++----------- 1 file changed, 52 insertions(+), 54 deletions(-) diff --git a/packages/client/src/components/Header.tsx b/packages/client/src/components/Header.tsx index 5d9873df..199674b3 100644 --- a/packages/client/src/components/Header.tsx +++ b/packages/client/src/components/Header.tsx @@ -1,6 +1,6 @@ import { useAuth } from '@/hooks/auth/useAuth'; import { Button, Navbar } from '@material-tailwind/react'; -import { Link, NavLink, useLocation, useMatch } from 'react-router-dom'; +import { Link, NavLink, useLocation } from 'react-router-dom'; import { useAuthStore } from '@/store/authStore'; import { useToast } from '@/hooks/ui/useToast'; import logoImage from '@asset/logo/corineeLogo.png'; @@ -22,65 +22,63 @@ function Header() { const isAccountPage = location.pathname.startsWith('/account'); return ( - <> - -
- - -

Corinee

- -
-
- - `${isActive ? 'text-black font-semibold' : 'text-gray-600'} hover:text-black` - } + +
+ + +

Corinee

+ +
+
+ + `${isActive ? 'text-black font-semibold' : 'text-gray-600'} hover:text-black` + } + > + 홈 + + + 내 계좌 + +
+
+ {isAuthenticated ? ( +
-
- {isAuthenticated ? ( + 로그아웃 + + ) : ( +
- ) : ( -
- - - -
- )} -
- - + + +
+ )} +
+
); } From 2eed44a752c4801d06d64a5c0980a5874159b758 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:16:51 +0900 Subject: [PATCH 03/10] =?UTF-8?q?feat:=20fetch=20interval=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/hooks/chart/usePeriodChart.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/client/src/hooks/chart/usePeriodChart.ts b/packages/client/src/hooks/chart/usePeriodChart.ts index 398c5f92..5e18e867 100644 --- a/packages/client/src/hooks/chart/usePeriodChart.ts +++ b/packages/client/src/hooks/chart/usePeriodChart.ts @@ -1,5 +1,6 @@ import { getCandleByPeriod } from '@/api/market'; import { Candle, CandlePeriod, InfiniteCandle } from '@/types/chart'; +import { getPeriodMs } from '@/utility/chart/chartTimeUtils'; import { useSuspenseInfiniteQuery } from '@tanstack/react-query'; export function usePeriodChart( @@ -29,6 +30,7 @@ export function usePeriodChart( candles: data.pages.flat(), hasNextPage: data.pages[data.pages.length - 1]?.length === 200, }), + refetchInterval: getPeriodMs(period, minute), }); return { From fde749b6e2b89fcf17509f42d4d6b59a4e88b2dc Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:17:23 +0900 Subject: [PATCH 04/10] =?UTF-8?q?refactor:=20=EC=B0=A8=ED=8A=B8=20?= =?UTF-8?q?=EC=8B=A4=EC=8B=9C=EA=B0=84=20=EB=93=B1=EB=9D=BD=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/hooks/chart/useRealTimeCandle.ts | 36 +++++++------------ 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/packages/client/src/hooks/chart/useRealTimeCandle.ts b/packages/client/src/hooks/chart/useRealTimeCandle.ts index db47754c..aca6a372 100644 --- a/packages/client/src/hooks/chart/useRealTimeCandle.ts +++ b/packages/client/src/hooks/chart/useRealTimeCandle.ts @@ -1,7 +1,6 @@ import { useEffect, useRef } from 'react'; import { CandleFormat, CandlePeriod } from '@/types/chart'; import { ISeriesApi } from 'lightweight-charts'; -import { getCurrentCandleStartTime } from '@/utility/chart/chartTimeUtils'; type Props = { seriesRef: React.RefObject>; @@ -20,31 +19,22 @@ export function useRealTimeCandle({ const updateRealTimeCandle = () => { if (!seriesRef.current || !currentPrice || !lastCandleRef.current) return; - - const currentCandleStartTime = getCurrentCandleStartTime( - activePeriod, - minute, - ); - if ( - !lastCandleRef.current || - lastCandleRef.current.time !== currentCandleStartTime - ) { - // refetch(); - } else { - const updatedCandle = { - ...lastCandleRef.current, - close: currentPrice, - high: Math.max(lastCandleRef.current.high, currentPrice), - low: Math.min(lastCandleRef.current.low, currentPrice), - }; - lastCandleRef.current = updatedCandle; - seriesRef.current.update(updatedCandle); - } + const updatedCandle = { + ...lastCandleRef.current, + close: currentPrice, + high: Math.max(lastCandleRef.current.high, currentPrice), + low: Math.min(lastCandleRef.current.low, currentPrice), + }; + lastCandleRef.current = updatedCandle; + seriesRef.current.update(updatedCandle); }; useEffect(() => { - if (!seriesRef.current || !currentPrice) return; - updateRealTimeCandle(); + const intervalId = setInterval(() => { + if (!seriesRef.current || !currentPrice) return; + updateRealTimeCandle(); + }, 500); + return () => clearInterval(intervalId); }, [currentPrice, minute, activePeriod]); return { lastCandleRef }; From 528560dcf3b5264369de9f865e8e1a28b2962187 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:17:38 +0900 Subject: [PATCH 05/10] =?UTF-8?q?refactor:=20css=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/pages/layout/Layout.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/client/src/pages/layout/Layout.tsx b/packages/client/src/pages/layout/Layout.tsx index dd4c9605..dfb3c534 100644 --- a/packages/client/src/pages/layout/Layout.tsx +++ b/packages/client/src/pages/layout/Layout.tsx @@ -4,16 +4,15 @@ import { Outlet } from 'react-router-dom'; function Layout() { return ( -
+
-
+
-
From ff06a085d4901b7ade3946ae8ac5a2b0ee363101 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:18:21 +0900 Subject: [PATCH 06/10] =?UTF-8?q?refactor:=20css=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/pages/trade/Trade.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/client/src/pages/trade/Trade.tsx b/packages/client/src/pages/trade/Trade.tsx index 6e0126f1..0436a24a 100644 --- a/packages/client/src/pages/trade/Trade.tsx +++ b/packages/client/src/pages/trade/Trade.tsx @@ -37,9 +37,9 @@ function Trade() { return ( <> -
+
-
+
}> @@ -50,10 +50,12 @@ function Trade() { />
+
+ + + +
- - - ); } From 8318fcb79cea589bbff28e9c162d5f3797ffd8a5 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:18:28 +0900 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20css=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/trade_footer/TradeFooter.tsx | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/client/src/pages/trade/components/trade_footer/TradeFooter.tsx b/packages/client/src/pages/trade/components/trade_footer/TradeFooter.tsx index 22db83fc..437dcf04 100644 --- a/packages/client/src/pages/trade/components/trade_footer/TradeFooter.tsx +++ b/packages/client/src/pages/trade/components/trade_footer/TradeFooter.tsx @@ -9,17 +9,15 @@ function TradeFooter() { const duplicatedCoins = coins ? [...coins, ...coins, ...coins, ...coins] : []; return ( -
-
-
- {duplicatedCoins?.map((coin, index) => ( - - ))} -
+
+
+ {duplicatedCoins?.map((coin, index) => ( + + ))}
); From 857ad519e635f31477ebd238c670515c5285adb7 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:18:50 +0900 Subject: [PATCH 08/10] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=ED=95=A8=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/utility/chart/chartTimeUtils.ts | 39 ------------------- 1 file changed, 39 deletions(-) diff --git a/packages/client/src/utility/chart/chartTimeUtils.ts b/packages/client/src/utility/chart/chartTimeUtils.ts index c070ddc3..7da3bccf 100644 --- a/packages/client/src/utility/chart/chartTimeUtils.ts +++ b/packages/client/src/utility/chart/chartTimeUtils.ts @@ -1,5 +1,4 @@ import { CandlePeriod } from '@/types/chart'; -import { Time } from 'lightweight-charts'; export const getPeriodMs = (activePeriod: CandlePeriod, minute?: number) => { switch (activePeriod) { @@ -15,41 +14,3 @@ export const getPeriodMs = (activePeriod: CandlePeriod, minute?: number) => { return 60 * 1000; } }; - -export const getCurrentCandleStartTime = ( - activePeriod: CandlePeriod, - minute?: number, -) => { - const now = new Date(); - const periodMs = getPeriodMs(activePeriod, minute); - - switch (activePeriod) { - case 'minutes': - return ((Math.floor(now.getTime() / periodMs) * periodMs) / 1000) as Time; - - case 'days': { - const startOfDay = new Date(now); - startOfDay.setUTCHours(0, 0, 0, 0); - return (startOfDay.getTime() / 1000) as Time; - } - - case 'weeks': { - const startOfWeek = new Date(now); - startOfWeek.setUTCHours(0, 0, 0, 0); - const day = startOfWeek.getUTCDay(); - const diff = startOfWeek.getUTCDate() - day + (day === 0 ? -6 : 1); - startOfWeek.setUTCDate(diff); - return (startOfWeek.getTime() / 1000) as Time; - } - - case 'months': { - const startOfMonth = new Date(now); - startOfMonth.setUTCHours(0, 0, 0, 0); - startOfMonth.setUTCDate(1); - return (startOfMonth.getTime() / 1000) as Time; - } - - default: - return ((Math.floor(now.getTime() / periodMs) * periodMs) / 1000) as Time; - } -}; From 2bd271cf761b42a3d67efe65ff1387f243d3ed23 Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:19:42 +0900 Subject: [PATCH 09/10] =?UTF-8?q?chore:=20console.log=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/pages/home/components/Coin.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/client/src/pages/home/components/Coin.tsx b/packages/client/src/pages/home/components/Coin.tsx index d3f980b2..67349569 100644 --- a/packages/client/src/pages/home/components/Coin.tsx +++ b/packages/client/src/pages/home/components/Coin.tsx @@ -19,7 +19,6 @@ function Coin({ formatters, market, sseData }: CoinProps) { const { addRecentlyViewedMarket } = useRecentlyMarketStore(); const handleClick = () => { addRecentlyViewedMarket(market.market); - console.log(market); navigate(`/trade/KRW-${market.market.split('-')[1]}`); queryClient.invalidateQueries({ queryKey: ['recentlyMarketList'] }); }; From 2660de129d0d53176caa3764606267f41e72838c Mon Sep 17 00:00:00 2001 From: qwer0114 Date: Tue, 26 Nov 2024 23:27:04 +0900 Subject: [PATCH 10/10] =?UTF-8?q?refactor:=20api=20url=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/client/src/api/trade.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/api/trade.ts b/packages/client/src/api/trade.ts index 0524d4d5..3e4067ca 100644 --- a/packages/client/src/api/trade.ts +++ b/packages/client/src/api/trade.ts @@ -41,11 +41,11 @@ export async function trade(params: TradeAPI): Promise { } export async function checkCoin(coin: string): Promise { - const response = await authInstance.get(`/trade/check-coinData/${coin}`); + const response = await authInstance.get(`/trade/check-coindata?coin=${coin}`); return response.data; } export async function pendingCoin(coin: string): Promise { - const response = await authInstance.get(`/trade/tradeData/${coin}`); + const response = await authInstance.get(`/trade/tradeData?coin=${coin}`); return response.data; }