diff --git a/fe/.eslintrc.cjs b/fe/.eslintrc.cjs index d6c9537..b11198f 100644 --- a/fe/.eslintrc.cjs +++ b/fe/.eslintrc.cjs @@ -1,18 +1,18 @@ module.exports = { - root: true, + root: false, env: { browser: true, es2020: true }, extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react-hooks/recommended", ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parser: '@typescript-eslint/parser', - plugins: ['react-refresh'], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parser: "@typescript-eslint/parser", + plugins: ["react-refresh"], rules: { - 'react-refresh/only-export-components': [ - 'warn', + "react-refresh/only-export-components": [ + "warn", { allowConstantExport: true }, ], }, -} +}; diff --git a/fe/src/app/layout/MainLayout.tsx b/fe/src/app/layout/MainLayout.tsx index eb40978..5617836 100644 --- a/fe/src/app/layout/MainLayout.tsx +++ b/fe/src/app/layout/MainLayout.tsx @@ -1,11 +1,17 @@ import MainHeader from "@/shared/ui/header/MainHeader"; -import { Outlet } from "react-router-dom"; +import { Outlet, useLocation } from "react-router-dom"; export function MainLayout() { + const location = useLocation(); + // Header의 높이만큼 Outlet을 내리기 위한 스타일 + const outletStyle = location.pathname !== "/" ? "pt-[8dvh]" : ""; + return ( <> - +
+ +
); } diff --git a/fe/src/app/routes/index.tsx b/fe/src/app/routes/index.tsx index d684663..0984e20 100644 --- a/fe/src/app/routes/index.tsx +++ b/fe/src/app/routes/index.tsx @@ -4,6 +4,9 @@ import ErrorLayout from "../layout/ErrorLayout"; import { MainLayout } from "@/app/layout/MainLayout"; import MainPage from "@/pages/main/index"; const NotFoundPage = lazy(() => import("@/pages/not-found/index")); +const ProjectDetailPage = lazy( + () => import("@/pages/project/projectName/index") +); // const MainPage = lazy(() => import("../pages/main/MainPage")); @@ -18,6 +21,14 @@ const router = createBrowserRouter([ path: "main", element: {/* */}, }, + { + path: "project/:projectName", + element: ( + + + + ), + }, { path: "*", element: {}, diff --git a/fe/src/entities/projects/ui/download-button/FileDownloadButton.tsx b/fe/src/entities/projects/ui/download-button/FileDownloadButton.tsx index 599a69f..4537412 100644 --- a/fe/src/entities/projects/ui/download-button/FileDownloadButton.tsx +++ b/fe/src/entities/projects/ui/download-button/FileDownloadButton.tsx @@ -1,4 +1,5 @@ import { useDownloadFile } from "@/entities/projects/libs/useDownloadFile"; +import { useDeviceSize } from "@/shared/libs"; type Props = { fileUrl: string; @@ -6,12 +7,14 @@ type Props = { export default function FileDownload({ fileUrl }: Props) { const { isDownloading, handleFileDownload } = useDownloadFile(fileUrl); + const device = useDeviceSize(); + const textStyle = device === "desktop" ? "text-lg" : "text-sm"; return (