diff --git a/.env b/.env deleted file mode 100644 index e69de29..0000000 diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 4b931e3..00aa587 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -26,7 +26,4 @@ jobs: run: npm install - name: Publish to Chromatic - uses: chromaui/action@v1 - with: - projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} - token: ${{ secrets.GITHUB_TOKEN }} + run: npx chromatic --project-token=${{ secrets.CHROMATIC_PROJECT_TOKEN }} diff --git a/.gitignore b/.gitignore index f52343a..c0d44f7 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ dist-ssr *storybook.log storybook-static +.env \ No newline at end of file diff --git a/index.html b/index.html index 0c589ec..3a441b8 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,13 @@ - + + - Vite + React + 마이트랙
diff --git a/package-lock.json b/package-lock.json index bdfc258..be0a31d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "react-icons": "^5.5.0", "react-router-dom": "^7.6.2", "vite-plugin-svgr": "^4.5.0", + "vite-tsconfig-paths": "^5.1.4", "zustand": "^5.0.5" }, "devDependencies": { @@ -33,7 +34,7 @@ "@vitest/browser": "^3.2.4", "@vitest/coverage-v8": "^3.2.4", "autoprefixer": "^10.4.21", - "chromatic": "^13.1.3", + "chromatic": "^13.1.4", "eslint": "^9.29.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-prettier": "^5.5.0", @@ -4121,9 +4122,9 @@ } }, "node_modules/chromatic": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-13.1.3.tgz", - "integrity": "sha512-aOZDwg1PsDe9/UhiXqS6EJPoCGK91hYbj3HaunV/0Ij492eWLkXIzku/e5cF1t7Ma7cAuGpCQDo0vGHg0UO91w==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-13.1.4.tgz", + "integrity": "sha512-6Voxdy2OvSyoA7mJjyiFiWii7d8ng0jBcW97TqL+ptlAWrJhIf10jrJ78KLPDUNOBIPxvx9Vcpe/bUwoLFIG5g==", "dev": true, "license": "MIT", "bin": { @@ -5639,6 +5640,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "license": "MIT" + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -8975,6 +8982,26 @@ "node": ">=6.10" } }, + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -9316,6 +9343,25 @@ "vite": ">=2.6.0" } }, + "node_modules/vite-tsconfig-paths": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vitest": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", diff --git a/package.json b/package.json index 750c7c3..4350f7f 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "react-icons": "^5.5.0", "react-router-dom": "^7.6.2", "vite-plugin-svgr": "^4.5.0", + "vite-tsconfig-paths": "^5.1.4", "zustand": "^5.0.5" }, "devDependencies": { @@ -39,7 +40,7 @@ "@vitest/browser": "^3.2.4", "@vitest/coverage-v8": "^3.2.4", "autoprefixer": "^10.4.21", - "chromatic": "^13.1.3", + "chromatic": "^13.1.4", "eslint": "^9.29.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-prettier": "^5.5.0", diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..8411919 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/app/index.jsx b/src/app/index.jsx index 88b7f9b..3540619 100644 --- a/src/app/index.jsx +++ b/src/app/index.jsx @@ -1,16 +1,13 @@ // 전역 컨텍스트 및 상태 관리 설정 (라우팅, 인증 등) - import { - BrowserRouter, + BrowserRouter as Router, Routes, Route, useLocation, Navigate, } from 'react-router-dom'; - import Header from '../widgets/navigation/Header'; import Footer from '../widgets/navigation/Footer'; - import Home from '../pages/home'; import TrackInfo from '../pages/info'; import NotFound from '../pages/NotFound'; @@ -18,13 +15,13 @@ import Search from '../pages/Search'; import Splash from '../pages/splash'; import Login from '../pages/login'; import MyPage from '../pages/my'; -import TrackDataUploadModal from '../features/track-management/components/TrackDataUploadModal'; +// import TrackDataUploadModal from '../features/track-management/components/TrackDataUploadModal'; function App() { return ( - + - + ); } @@ -34,19 +31,23 @@ function AppContent() { const shouldHideHeaderFooter = hiddenRoutes.includes(location.pathname); return ( -
+
{!shouldHideHeaderFooter &&
} - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - +
+ + } /> + } /> + } /> + } /> + } /> + } /> + } /> + {/* } /> */} + } /> + +
{!shouldHideHeaderFooter &&
}
); diff --git a/src/assets/background.svg b/src/assets/background.svg deleted file mode 100644 index 6c60523..0000000 --- a/src/assets/background.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/features/track-management/components/TrackCourseList.jsx b/src/features/track-management/components/TrackCourseList.jsx index b4c843d..5e55d91 100644 --- a/src/features/track-management/components/TrackCourseList.jsx +++ b/src/features/track-management/components/TrackCourseList.jsx @@ -32,7 +32,7 @@ const TrackCourseList = ({ activeTrack }) => { if (!current) { // 데이터가 없으면 업로드 안내 메시지 표시 return ( -
+

업로드된 이력이 없습니다.

); diff --git a/src/features/track-management/components/TrackIntroHeader.jsx b/src/features/track-management/components/TrackIntroHeader.jsx index 4bea7bf..fbcca1a 100644 --- a/src/features/track-management/components/TrackIntroHeader.jsx +++ b/src/features/track-management/components/TrackIntroHeader.jsx @@ -16,9 +16,9 @@ function TrackIntroHeader() { // 전체 컨테이너: 왼쪽 정렬, 좌우 패딩
{/* 일러스트 */} -
+ {/*
-
+
*/} {/* 제목 */}

diff --git a/src/features/track-management/components/TrackStatus.jsx b/src/features/track-management/components/TrackStatus.jsx index a72e29e..d668fde 100644 --- a/src/features/track-management/components/TrackStatus.jsx +++ b/src/features/track-management/components/TrackStatus.jsx @@ -19,13 +19,13 @@ function TrackStatus({ const characterClasses = isLarge ? 'w-40 h-auto' : 'w-28 h-auto'; // 캐릭터 크기 매핑(large: w-40, card: w-28) const titleClasses = isLarge // 제목 타이포, 마진 매핑 ? 'text-2xl font-semibold text-blue-600 mb-2 leading-relaxed' - : 'text-xl font-semibold text-blue-600 mt-16 mb-8'; + : 'text-xl font-semibold text-blue-600 mt-8 mb-4'; return ( // 공통 레이아웃
{/* 캐릭터 */} -
+
{onClickCharacter ? ( // 클릭 가능 여부에 따라 button으로 감싸기