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 (