From b96116c1d585e0b0c354eeba1c1ec7450facfef1 Mon Sep 17 00:00:00 2001 From: Anang Yusman Date: Sun, 21 Apr 2024 23:20:06 +0700 Subject: [PATCH] feat:add form adn table master-user-level --- .../master/master-user-level/create/page.tsx | 14 + app/admin/master/master-user-level/page.tsx | 13 + .../master-menu/menu-data/menu-data-form.tsx | 4 +- .../master-module/master-module-form.tsx | 6 +- .../master-user-level-form.tsx | 363 ++++++++++++++++++ .../master-user-level-table.tsx | 217 +++++++++++ 6 files changed, 612 insertions(+), 5 deletions(-) create mode 100644 app/admin/master/master-user-level/create/page.tsx create mode 100644 app/admin/master/master-user-level/page.tsx create mode 100644 components/form/master/master-user-level/master-user-level-form.tsx create mode 100644 components/table/master/master-user-level/master-user-level-table.tsx diff --git a/app/admin/master/master-user-level/create/page.tsx b/app/admin/master/master-user-level/create/page.tsx new file mode 100644 index 0000000..916eafe --- /dev/null +++ b/app/admin/master/master-user-level/create/page.tsx @@ -0,0 +1,14 @@ +import CreateMagazineForm from '@/components/form/magazine/magazine-form' +import CreateMenuDataForm from '@/components/form/master/master-menu/menu-data/menu-data-form' +import CreateMasterModuleForm from '@/components/form/master/master-module/master-module-form' +import CreateMasterUserLevelForm from '@/components/form/master/master-user-level/master-user-level-form' +import MagazineTable from '@/components/table/magazine/magazine-table' +import React from 'react' + +const AdminMasterUserLevelCreate = () => { + return ( +
+ ) +} + +export default AdminMasterUserLevelCreate \ No newline at end of file diff --git a/app/admin/master/master-user-level/page.tsx b/app/admin/master/master-user-level/page.tsx new file mode 100644 index 0000000..cb67e53 --- /dev/null +++ b/app/admin/master/master-user-level/page.tsx @@ -0,0 +1,13 @@ +import MagazineTable from '@/components/table/magazine/magazine-table' +import MenuDataTable from '@/components/table/master/master-menu/menu-data/menu-data-table' +import MasterModuleTable from '@/components/table/master/master-module/master-module-table' +import MasterUserLevelTable from '@/components/table/master/master-user-level/master-user-level-table' +import React from 'react' + +const AdminMasterUserLevel = () => { + return ( +
+ ) +} + +export default AdminMasterUserLevel \ No newline at end of file diff --git a/components/form/master/master-menu/menu-data/menu-data-form.tsx b/components/form/master/master-menu/menu-data/menu-data-form.tsx index 0c830e8..6859834 100644 --- a/components/form/master/master-menu/menu-data/menu-data-form.tsx +++ b/components/form/master/master-menu/menu-data/menu-data-form.tsx @@ -344,7 +344,7 @@ export default function CreateMenuDataForm() { classNames={{ label: "!text-black", }} - value="no" + value="1" > Active @@ -352,7 +352,7 @@ export default function CreateMenuDataForm() { classNames={{ label: "!text-black", }} - value="yes" + value="2" > Inactive diff --git a/components/form/master/master-module/master-module-form.tsx b/components/form/master/master-module/master-module-form.tsx index a08aa9b..cedd20b 100644 --- a/components/form/master/master-module/master-module-form.tsx +++ b/components/form/master/master-module/master-module-form.tsx @@ -241,7 +241,7 @@ export default function CreateMasterModuleForm() { classNames={{ label: "!text-black", }} - value="no" + value="1" > Active @@ -249,14 +249,14 @@ export default function CreateMasterModuleForm() { classNames={{ label: "!text-black", }} - value="yes" + value="2" > Inactive
- + {" "} + + +
+ +
+
+ NextUI hero Image +
+
+ + + + + + + + + ) +} diff --git a/components/table/master/master-user-level/master-user-level-table.tsx b/components/table/master/master-user-level/master-user-level-table.tsx new file mode 100644 index 0000000..865c245 --- /dev/null +++ b/components/table/master/master-user-level/master-user-level-table.tsx @@ -0,0 +1,217 @@ +"use client"; +import { + TableCell, + TableRow, + Table, + TableHeader, + TableColumn, + TableBody, + Pagination, + Dropdown, + DropdownTrigger, + DropdownMenu, + DropdownItem, + Input, + User, + Card, + Divider, + Chip, + ChipProps, +} from "@nextui-org/react"; +import { Button } from "@nextui-org/button"; +import React, { Key, useCallback, useMemo, useState } from "react"; +import { + AddIcon, + CreateIconIon, + DeleteIcon, + DotsYIcon, + EyeFilledIcon, + EyeIconMdi, +} from "@/components/icons"; +import Link from "next/link"; + +type UserObject = { + id: number; + name: string; + levelNumber: string; + aliasName: string; + parentLevelId: string; + provinceId: string; +}; + +const statusColorMap = { + active: "success", + paused: "danger", + vacation: "warning", +}; + + +export default function MasterUserLevelTable() { + type TableRow = (typeof masterUserLevelTable)[0]; + + const columns = [ + { name: "No", uid: "no" }, + { name: "Name", uid: "name" }, + { name: "User Name", uid: "aliasName" }, + { name: "Level Number", uid: "levelNumber" }, + { name: "Parent Level", uid: "parentLevelId" }, + { name: "Province", uid: "provinceId" }, + { name: "Action", uid: "actions" }, + ]; + + const masterUserLevelTable = [ + { + id: 1, + name: "AI Journalist ", + aliasName: "Journalist", + levelNumber: "admin", + parentLevelId: "admin", + provinceId: "Sumatra Barat", + }, + { + id: 2, + name: "AI Journalist ", + aliasName: "Journalist", + levelNumber: "admin", + parentLevelId: "admin", + provinceId: "Sumatra Barat", + }, + { + id: 3, + name: "AI Journalist ", + aliasName: "Journalist", + levelNumber: "admin", + parentLevelId: "admin", + provinceId: "Sumatra Barat", + }, + { + id: 4, + name: "AI Journalist ", + aliasName: "Journalist", + levelNumber: "admin", + parentLevelId: "admin", + provinceId: "Sumatra Barat", + }, + { + id: 5, + name: "AI Journalist ", + aliasName: "Journalist", + levelNumber: "admin", + parentLevelId: "admin", + provinceId: "Sumatra Barat", + }, + ]; + + const renderCell = useCallback((masterUserLevel: TableRow, columnKey: Key) => { + const cellValue = masterUserLevel[columnKey as keyof UserObject]; + const statusColorMap: Record = { + active: "success", + cancel: "danger", + pending: "warning", + }; + + switch (columnKey) { + case "no": + return ( +
{masterUserLevel.id}
+ ) + + case "name": + return ( +
{masterUserLevel.name}
+ ) + + case "aliasName": + return ( +
{masterUserLevel.aliasName}
+ ) + + case "actions": + return ( +
+ + + + + + + + + Detail + + + + + + Edit + + + + + + Delete + + + + +
+ ); + + default: + return cellValue; + } + }, []); + + return ( + <> +
+ + + +
+ + + {(column) => ( + {column.name} + )} + + + {(item) => ( + + {(columnKey) => ( + {renderCell(item, columnKey)} + )} + + )} + +
+
+
+ + + ); +}