From 4acac52a0ca4490ccf00fa2eee8addc09e328972 Mon Sep 17 00:00:00 2001 From: lukman Date: Mon, 8 Jul 2024 17:30:39 +0800 Subject: [PATCH] style : update project Deskripsi: - add view create project - add view filter project No issue --- .../project/components/ui/drawer_project.tsx | 34 +++ .../project/components/ui/navbar_project.tsx | 194 ++++++++++++++++++ src/module/project/index.ts | 6 +- .../project/view/view_create_project.tsx | 10 + .../project/view/view_filter_project.tsx | 73 +++++++ src/module/project/view/view_project.tsx | 3 +- 6 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 src/module/project/components/ui/drawer_project.tsx create mode 100644 src/module/project/components/ui/navbar_project.tsx create mode 100644 src/module/project/view/view_create_project.tsx create mode 100644 src/module/project/view/view_filter_project.tsx diff --git a/src/module/project/components/ui/drawer_project.tsx b/src/module/project/components/ui/drawer_project.tsx new file mode 100644 index 0000000..8ab49a5 --- /dev/null +++ b/src/module/project/components/ui/drawer_project.tsx @@ -0,0 +1,34 @@ +import { WARNA } from '@/module/_global'; +import { Box, Flex, SimpleGrid, Stack, Text } from '@mantine/core'; +import React, { useState } from 'react'; +import { HiOutlineFilter } from 'react-icons/hi'; +import { IoAddCircle } from 'react-icons/io5'; + +export default function DrawerProject() { + return ( + + + + window.location.href = "/project/create"} justify={'center'} align={'center'} direction={'column'} > + + + + + Tambah Proyek + + + window.location.href = "/project/filter"} justify={'center'} align={'center'} direction={'column'} > + + + + + Filter + + + + + + ); +} diff --git a/src/module/project/components/ui/navbar_project.tsx b/src/module/project/components/ui/navbar_project.tsx new file mode 100644 index 0000000..33224be --- /dev/null +++ b/src/module/project/components/ui/navbar_project.tsx @@ -0,0 +1,194 @@ +"use client" +import { isDrawer, LayoutDrawer, LayoutNavbarNew, WARNA } from '@/module/_global'; +import { useHookstate } from '@hookstate/core'; +import { ActionIcon, Avatar, Badge, Box, Card, Center, Divider, Flex, Grid, Group, Text, TextInput, Title } from '@mantine/core'; +import React, { useState } from 'react'; +import { HiMenu } from 'react-icons/hi'; +import { HiMagnifyingGlass, HiMiniPresentationChartBar, HiOutlineListBullet, HiSquares2X2 } from 'react-icons/hi2'; +import { MdAccountCircle } from 'react-icons/md'; +import { RiCircleFill } from "react-icons/ri"; +import DrawerProject from './drawer_project'; + +const dataProject = [ + { + id: 1, + title: 'Project 1', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROJECT SELESAI', + color: '#387529' + }, + { + id: 2, + title: 'Project 2', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROJECT SELESAI', + color: '#387529' + }, + { + id: 3, + title: 'Project 3', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROJECT SELESAI', + color: '#387529' + }, + { + id: 4, + title: 'Project 4', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROSES', + color: '#C5771A' + }, + { + id: 5, + title: 'Project5', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROSES', + color: '#C5771A' + }, + { + id: 6, + title: 'Project 6', + description: 'Tempat berkumpul semua anggota / staff perbekal darmasaba', + status: 'PROSES', + color: '#C5771A' + }, +] + +export default function NavbarProject() { + const [isList, setIsList] = useState(false) + const [openDrawer, setOpenDrawer] = useState(false) + + const handleList = () => { + setIsList(!isList) + } + return ( + + setOpenDrawer(true)} bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings"> + + } /> + + + + } + placeholder="Pencarian" + /> + + + + {isList ? ( + + ) : ( + + )} + + + + + + Total Proyek + + 35 + + + + + + Proyek Selesai + + 35 + + + + + + Proyek Proses + + 35 + + + + + {isList ? ( + + {dataProject.map((v, i) => { + return ( + + + +
+ + + +
+ {v.title} +
+ + + +
+ +
+ ); + })} +
+ ) : ( + + {dataProject.map((v, i) => { + return ( + + + + + + {v.title} + + + + + {v.description} + + {v.status} + + + + + +5 + + + + + + ); + })} + + )} +
+
+ setOpenDrawer(false)}> + + +
+ ); +} + diff --git a/src/module/project/index.ts b/src/module/project/index.ts index 8d44769..5c2cf10 100644 --- a/src/module/project/index.ts +++ b/src/module/project/index.ts @@ -1,3 +1,7 @@ +import ViewCreateProject from "./view/view_create_project"; +import ViewFilterProject from "./view/view_filter_project"; import ViewProject from "./view/view_project"; -export {ViewProject} \ No newline at end of file +export { ViewProject } +export { ViewCreateProject } +export { ViewFilterProject } diff --git a/src/module/project/view/view_create_project.tsx b/src/module/project/view/view_create_project.tsx new file mode 100644 index 0000000..5b3c9d7 --- /dev/null +++ b/src/module/project/view/view_create_project.tsx @@ -0,0 +1,10 @@ +import React from 'react'; + +export default function ViewCreateProject() { + return ( +
+ ViewCreateProject +
+ ); +} + diff --git a/src/module/project/view/view_filter_project.tsx b/src/module/project/view/view_filter_project.tsx new file mode 100644 index 0000000..05e3384 --- /dev/null +++ b/src/module/project/view/view_filter_project.tsx @@ -0,0 +1,73 @@ +'use client' +import { LayoutNavbarNew, WARNA } from '@/module/_global'; +import { Box, Button, Divider, Group, Text } from '@mantine/core'; +import React, { useState } from 'react'; +import { FaCheck } from "react-icons/fa6"; + +const dataFilter = [ + { + id: 1, + name: 'Semua Proyek' + }, + { + id: 1, + name: 'Proyek Dinas' + }, + { + id: 1, + name: 'Proyek Lpd' + }, + { + id: 1, + name: 'Proyek Lembaga 1' + }, + { + id: 1, + name: 'Proyek Lembaga 2' + }, + { + id: 1, + name: 'Proyek Lembaga 3' + }, +] + + +export default function ProjectFilter() { + const [selectedFilter, setSelectedFilter] = useState(null); + + const handleFilterClick = (filterName: string) => { + setSelectedFilter(filterName); + }; + + return ( + + + + {dataFilter.map((filter) => ( + + handleFilterClick(filter.name)} + > + + {filter.name} + + {selectedFilter === filter.name && } + + + + ))} + + + + ); +} diff --git a/src/module/project/view/view_project.tsx b/src/module/project/view/view_project.tsx index aa17b79..e947a75 100644 --- a/src/module/project/view/view_project.tsx +++ b/src/module/project/view/view_project.tsx @@ -1,9 +1,10 @@ import React from 'react'; +import NavbarProject from '../components/ui/navbar_project'; export default function ViewProject() { return (
- ViewProject +
); }