add folders column

This commit is contained in:
Takeshi Kimata
2024-02-17 19:28:55 +09:00
parent 2c0a4631bc
commit 303d24409f
8 changed files with 70 additions and 32 deletions

View File

@@ -2,8 +2,8 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Config from "@/config/config"; import Config from "@/config/config";
const apiServer = Config.apiServer; const apiServer = Config.apiServer;
import Main from "./main"; import { Listbox, ListboxItem } from "@nextui-org/react";
import Sidebar from "./sidebar"; import { FolderIcon } from "@/components/icons";
/** /**
* fetch folder records * fetch folder records
@@ -50,21 +50,19 @@ export default function Page({ params }: { params: { id: string } }) {
}, []); }, []);
return ( return (
<> <div className="w-64 min-h-screen border-r-1">
{/* <div>Project: {params.id}</div> <Listbox aria-label="Listbox Variants">
<div className="flex flex-wrap gap-4 mt-5">
{folders.map((folder, index) => ( {folders.map((folder, index) => (
<div key={index}> <ListboxItem
<div>{folder.name}</div> key={index}
<div>{folder.detail}</div> startContent={<FolderIcon size={16} className="text-gray-600" />}
<div>{folder.projectId}</div> >
</div> {folder.name}
{/* {folder.detail}
{folder.projectId} */}
</ListboxItem>
))} ))}
</div> */} </Listbox>
<div className="flex border-t-1 min-h-screen"> </div>
<Sidebar />
<Main />
</div>
</>
); );
} }

View File

@@ -0,0 +1,3 @@
export default function Page() {
return <>This is Home tab</>;
}

View File

@@ -1,7 +1,18 @@
import Sidebar from "./sidebar";
export default function ProjectsLayout({ export default function ProjectsLayout({
children, children,
}: { }: {
children: React.ReactNode; children: React.ReactNode;
}) { }) {
return <>{children}</>; return (
<>
<div className="flex border-t-1 min-h-screen">
<Sidebar />
<div className="flex">
<div className="flex-grow bg-white rounded-lg">{children}</div>
</div>
</div>
</>
);
} }

View File

@@ -1,11 +0,0 @@
import React from "react";
export default function Main() {
return (
<div className="flex">
<div className="flex-grow bg-white rounded-lg m-2">
aaa
</div>
</div>
);
}

View File

@@ -0,0 +1,3 @@
export default function Page() {
return <>This is Runs tab</>;
}

View File

@@ -1,17 +1,32 @@
"use client";
import { Menu, MenuItem } from "@nextui-org/react"; import { Menu, MenuItem } from "@nextui-org/react";
import { HomeIcon, PagesIcon, PlayIcon } from "@/components/icons"; import { HomeIcon, PagesIcon, PlayIcon } from "@/components/icons";
import { useRouter } from "next/navigation";
export default function Sidebar() { export default function Sidebar() {
const router = useRouter();
return ( return (
<div className="w-64 bg-white border-r-1"> <div className="w-64 bg-white border-r-1">
<Menu aria-label="sidebar"> <Menu aria-label="sidebar">
<MenuItem startContent={<HomeIcon size={28} />} className="p-3"> <MenuItem
startContent={<HomeIcon size={28} />}
className="p-3"
onClick={() => router.push("/projects/1/home")}
>
Home Home
</MenuItem> </MenuItem>
<MenuItem startContent={<PagesIcon size={28} />} className="p-3"> <MenuItem
startContent={<PagesIcon size={28} />}
className="p-3"
onClick={() => router.push("/projects/1/folders")}
>
Test Cases Test Cases
</MenuItem> </MenuItem>
<MenuItem startContent={<PlayIcon size={28} />} className="p-3"> <MenuItem
startContent={<PlayIcon size={28} />}
className="p-3"
onClick={() => router.push("/projects/1/runs")}
>
Test Runs Test Runs
</MenuItem> </MenuItem>
</Menu> </Menu>

View File

@@ -10,7 +10,7 @@ import NextLink from "next/link";
export function ProjectCard({ projectName, projectDetail }) { export function ProjectCard({ projectName, projectDetail }) {
return ( return (
<NextLink href={`/projects/${1}`}> <NextLink href={`/projects/${1}/home`}>
<Card className="w-[250px] bg-white hover:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-800"> <Card className="w-[250px] bg-white hover:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-800">
<CardHeader className="flex gap-3"> <CardHeader className="flex gap-3">
<Image <Image

View File

@@ -265,3 +265,22 @@ export const PlayIcon: React.FC<IconSvgProps> = ({
</svg> </svg>
); );
}; };
export const FolderIcon: React.FC<IconSvgProps> = ({
size = 24,
width,
height,
...props
}) => {
return (
<svg
viewBox="0 0 512 512"
fill="currentColor"
height={size || height}
width={size || height}
{...props}
>
<path d="M64 480h384c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7l-26.5-26.6c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64z" />
</svg>
);
};