From 25bf3390dcab8520cf830f2d17d2867f09ccca17 Mon Sep 17 00:00:00 2001
From: Takeshi Kimata <117462761+kimatata@users.noreply.github.com>
Date: Fri, 23 Feb 2024 12:47:27 +0900
Subject: [PATCH] selected folder
---
.../folders/[folderId]/cases/page.tsx | 36 +++++++++++--------
.../projects/[projectId]/folders/layout.tsx | 27 +++++++++++---
frontend/app/projects/[projectId]/layout.tsx | 2 +-
3 files changed, 44 insertions(+), 21 deletions(-)
diff --git a/frontend/app/projects/[projectId]/folders/[folderId]/cases/page.tsx b/frontend/app/projects/[projectId]/folders/[folderId]/cases/page.tsx
index 5953a6e..1ff50d2 100644
--- a/frontend/app/projects/[projectId]/folders/[folderId]/cases/page.tsx
+++ b/frontend/app/projects/[projectId]/folders/[folderId]/cases/page.tsx
@@ -32,7 +32,11 @@ async function fetchCases(url) {
}
}
-export default function Page({ params }: { params: { projectId: string, folderId: string } }) {
+export default function Page({
+ params,
+}: {
+ params: { projectId: string; folderId: string };
+}) {
const router = useRouter();
const [cases, setCases] = useState([]);
const url = `${apiServer}/cases?folderId=${params.folderId}`;
@@ -51,19 +55,21 @@ export default function Page({ params }: { params: { projectId: string, folderId
}, []);
return (
-
- {cases.map((testCase, index) => (
-
- router.push(
- `/projects/${params.projectId}/folders/${params.folderId}/cases/${testCase.id}`
- )
- }
- >
- {testCase.title}
-
- ))}
-
+ <>
+
+ {cases.map((testCase, index) => (
+
+ router.push(
+ `/projects/${params.projectId}/folders/${params.folderId}/cases/${testCase.id}`
+ )
+ }
+ >
+ {testCase.title}
+
+ ))}
+
+ >
);
}
diff --git a/frontend/app/projects/[projectId]/folders/layout.tsx b/frontend/app/projects/[projectId]/folders/layout.tsx
index 1d13a6b..56dac6e 100644
--- a/frontend/app/projects/[projectId]/folders/layout.tsx
+++ b/frontend/app/projects/[projectId]/folders/layout.tsx
@@ -5,6 +5,7 @@ const apiServer = Config.apiServer;
import { Button, Listbox, ListboxItem } from "@nextui-org/react";
import { Folder, Plus } from "lucide-react";
import { useRouter } from "next/navigation";
+import useGetCurrentIds from "@/utils/useGetCurrentIds";
/**
* fetch folder records
@@ -41,24 +42,34 @@ export default function ProjectsLayout({
params: { projectId: string };
}) {
const [folders, setFolders] = useState([]);
+ const [selectedFolder, setSelectedFolder] = useState({
+ id: null,
+ name: "",
+ });
const url = `${apiServer}/folders?projectId=${params.projectId}`;
+ const { folderId } = useGetCurrentIds();
useEffect(() => {
async function fetchDataEffect() {
try {
const data = await fetchFolders(url);
setFolders(data);
+
+ const selectedFolderFromUrl = data.find(
+ (folder) => folder.id === folderId
+ );
+ setSelectedFolder(selectedFolderFromUrl);
} catch (error) {
console.error("Error in effect:", error.message);
}
}
fetchDataEffect();
- }, []);
+ }, [folderId]);
const router = useRouter();
return (
-
+
}
@@ -78,15 +89,21 @@ export default function ProjectsLayout({
)
}
startContent={}
+ className={
+ selectedFolder && folder.id === selectedFolder.id
+ ? "bg-gray-300"
+ : ""
+ }
>
{folder.name}
- {/* {folder.detail}
- {folder.projectId} */}
))}
-
{children}
+
+
{selectedFolder ? selectedFolder.name : "Select Folder"}
+ {children}
+
);
}
diff --git a/frontend/app/projects/[projectId]/layout.tsx b/frontend/app/projects/[projectId]/layout.tsx
index deaf7c1..f85d727 100644
--- a/frontend/app/projects/[projectId]/layout.tsx
+++ b/frontend/app/projects/[projectId]/layout.tsx
@@ -9,7 +9,7 @@ export default function ProjectsLayout({
<>