From 58704fdaea26f5271a9aa1b5cc17c75a696ae6a4 Mon Sep 17 00:00:00 2001 From: woojo230 Date: Sun, 21 Dec 2025 08:09:54 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=8E=A8Design:=20add=20main=20logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/home/components/Navbar/Navbar.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/pages/home/components/Navbar/Navbar.tsx b/src/pages/home/components/Navbar/Navbar.tsx index c4c7512..a56acda 100644 --- a/src/pages/home/components/Navbar/Navbar.tsx +++ b/src/pages/home/components/Navbar/Navbar.tsx @@ -1,14 +1,27 @@ import settingBtn from '../../../../assets/navbar/Gear.png'; +import logo from '../../../../assets/banner/banner.png'; import useNavigation from '../../../../hooks/useNavigation'; const Navbar = () => { const { goTo } = useNavigation(); + const handleRefresh = () => { + window.location.reload(); + }; + const handleClick = () => { goTo('/setting'); }; + return ( -
+
+
+ logo-img + Cotatus +
setting-button Date: Sun, 21 Dec 2025 08:19:14 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9C=A8Feat:=20add=20mock=20data=20fallba?= =?UTF-8?q?ck=20for=20empty=20API=20responses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mocks/chartData.ts | 15 +++++++++++++++ src/pages/home/components/Chart/ChartItem.tsx | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/mocks/chartData.ts diff --git a/src/mocks/chartData.ts b/src/mocks/chartData.ts new file mode 100644 index 0000000..0b8695b --- /dev/null +++ b/src/mocks/chartData.ts @@ -0,0 +1,15 @@ +import type { ChartDataPoint } from '../apis/chart/chartApi'; + +const chartData: ChartDataPoint[] = [ + { time: '10:00', Bitcoin: 0.5, Ethereum: 1.0, Solana: 0.8 }, + { time: '11:00', Bitcoin: 0.7, Ethereum: 0.1, Solana: 0.4 }, + { time: '12:00', Bitcoin: 0.2, Ethereum: -0.3, Solana: 0.6 }, + { time: '13:00', Bitcoin: 0.5, Ethereum: 0, Solana: 0.2 }, + { time: '14:00', Bitcoin: -0.1, Ethereum: -0.7, Solana: 0.9 }, + { time: '15:00', Bitcoin: 0.9, Ethereum: -0.8, Solana: 1.0 }, + { time: '16:00', Bitcoin: -0.7, Ethereum: 0.6, Solana: 0.3 }, + { time: '17:00', Bitcoin: 0.9, Ethereum: 0.4, Solana: -0.3 }, + { time: '18:00', Bitcoin: -0.7, Ethereum: 1.0, Solana: 0.9 }, +]; + +export default chartData; diff --git a/src/pages/home/components/Chart/ChartItem.tsx b/src/pages/home/components/Chart/ChartItem.tsx index 0361d2b..f78400c 100644 --- a/src/pages/home/components/Chart/ChartItem.tsx +++ b/src/pages/home/components/Chart/ChartItem.tsx @@ -11,6 +11,7 @@ import ChartSInfo from './ChartSInfo'; import { useFilterStore } from '../../../../stores/filterStore'; import ChartGradients from './ChartGradients'; import useGetChartData from '../../../../hooks/useQuery/useGetChartData'; +import chartData from '../../../../mocks/chartData'; type StockType = 'ALL' | 'Bitcoin' | 'Ethereum' | 'Solana'; @@ -22,13 +23,15 @@ function ChartItem() { type: filter, }); + const chartDatas = data && data.length > 0 ? data : chartData; + return (
From c5cec0c3fe1f7f8f59852258385f0a5cf7cc95f5 Mon Sep 17 00:00:00 2001 From: woojo230 Date: Sun, 21 Dec 2025 08:34:01 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E2=9C=A8Feat:=20update=20meta=20data=20&?= =?UTF-8?q?=20favicon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 ++-- public/favicons/favicon.ico | Bin 0 -> 8258 bytes vite.config.ts | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 public/favicons/favicon.ico diff --git a/index.html b/index.html index a958bb5..476ab7f 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - fe + Cotatus
diff --git a/public/favicons/favicon.ico b/public/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5955c1668dc5260f55d2a4086fd60ba5a396d249 GIT binary patch literal 8258 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 P=`aKA@xc7wN!I@YHsXQ4 literal 0 HcmV?d00001 diff --git a/vite.config.ts b/vite.config.ts index f478a83..432673b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,10 +9,10 @@ export default defineConfig({ react(), tailwindcss(), VitePWA({ - registerType: 'autoUpdate', // 새 버전 생기면 자동 업데이트 + registerType: 'autoUpdate', injectRegister: 'script-defer', devOptions: { - enabled: false, // 개발 중 SW 활성화 + enabled: false, }, includeAssets: [ 'favicons/favicon.ico', @@ -23,7 +23,7 @@ export default defineConfig({ manifest: { name: 'Cotatus 감성 지능 기반 웹 서비스', short_name: 'Cotatus', - description: 'Scoop AI Hackathon', + description: 'Scoop AI Hackathon team Cotatus', theme_color: '#ffffff', background_color: '#ffffff', display: 'standalone', From 5aba3e3c3d016fe828bc12346f741b96de108c9a Mon Sep 17 00:00:00 2001 From: woojo230 Date: Sun, 21 Dec 2025 08:36:43 +0900 Subject: [PATCH 4/4] remove setting button --- src/pages/home/components/Navbar/Navbar.tsx | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/pages/home/components/Navbar/Navbar.tsx b/src/pages/home/components/Navbar/Navbar.tsx index a56acda..bc944d7 100644 --- a/src/pages/home/components/Navbar/Navbar.tsx +++ b/src/pages/home/components/Navbar/Navbar.tsx @@ -1,20 +1,12 @@ -import settingBtn from '../../../../assets/navbar/Gear.png'; import logo from '../../../../assets/banner/banner.png'; -import useNavigation from '../../../../hooks/useNavigation'; const Navbar = () => { - const { goTo } = useNavigation(); - const handleRefresh = () => { window.location.reload(); }; - const handleClick = () => { - goTo('/setting'); - }; - return ( -
+
{ logo-img Cotatus
- setting-button
); };