diff --git a/src/module/_global/view/view_filter.tsx b/src/module/_global/view/view_filter.tsx
index fbc45b4..6a29917 100644
--- a/src/module/_global/view/view_filter.tsx
+++ b/src/module/_global/view/view_filter.tsx
@@ -84,21 +84,23 @@ export default function ViewFilter({ linkFilter }: { linkFilter: string }) {
)
}
-
-
-
+
+
+
);
}
\ No newline at end of file
diff --git a/src/module/announcement/ui/create_announcement.tsx b/src/module/announcement/ui/create_announcement.tsx
index 955ad30..0265326 100644
--- a/src/module/announcement/ui/create_announcement.tsx
+++ b/src/module/announcement/ui/create_announcement.tsx
@@ -2,7 +2,7 @@
import { LayoutNavbarNew, WARNA } from "@/module/_global";
import LayoutModal from "@/module/_global/layout/layout_modal";
import { useHookstate } from "@hookstate/core";
-import { Avatar, Box, Button, Flex, Group, Stack, Text, Textarea, TextInput } from "@mantine/core";
+import { Avatar, Box, Button, Flex, Group, rem, Stack, Text, Textarea, TextInput } from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { useState } from "react";
import toast from "react-hot-toast";
@@ -140,7 +140,7 @@ export default function CreateAnnouncement() {
-
+
Divisi Terpilih
{(memberGroup.length === 0) ? (
Belum ada anggota
@@ -160,11 +160,15 @@ export default function CreateAnnouncement() {
})}
-
+
-
+
{
memberGroup.get().map((v: any, i: any) => {
return (
@@ -185,11 +185,15 @@ export default function EditAnnouncement() {
-
+
);
}
diff --git a/src/module/calender/ui/history_division_calender.tsx b/src/module/calender/ui/history_division_calender.tsx
index 329d680..13c1c5b 100644
--- a/src/module/calender/ui/history_division_calender.tsx
+++ b/src/module/calender/ui/history_division_calender.tsx
@@ -18,6 +18,7 @@ export default function HistoryDivisionCalender() {
const [searchQuery, setSearchQuery] = useState('')
const [loading, setLoading] = useState(true)
+
const getData = async () => {
try {
setLoading(true)
@@ -100,7 +101,9 @@ export default function HistoryDivisionCalender() {
{v.data.map((d, x) => {
return (
-
+ router.push(`/division/${param.id}/calender/${d.id}`)}
+ >
{d.title}
{d.timeStart} | {d.timeEnd}
diff --git a/src/module/calender/ui/navbar_create_division_calender.tsx b/src/module/calender/ui/navbar_create_division_calender.tsx
index 3d030f2..743cab1 100644
--- a/src/module/calender/ui/navbar_create_division_calender.tsx
+++ b/src/module/calender/ui/navbar_create_division_calender.tsx
@@ -1,6 +1,6 @@
"use client"
import { LayoutNavbarNew, WARNA } from '@/module/_global';
-import { Avatar, Box, Button, Flex, Group, Input, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Flex, Group, Input, rem, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core';
import { DateInput, TimeInput } from '@mantine/dates';
import React, { useState } from 'react';
import { IoIosArrowDropright } from 'react-icons/io';
@@ -245,7 +245,7 @@ export default function NavbarCreateDivisionCalender() {
{
memberUser.length > 0 &&
-
+
Anggota Terpilih
Total {memberUser.length} Anggota
@@ -287,32 +287,36 @@ export default function NavbarCreateDivisionCalender() {
}
-
- {
- if (
- isData.title !== "" &&
- isData.dateStart !== " " &&
- isData.timeStart !== "" &&
- isData.timeEnd !== "" &&
- isData.repeatEventTyper !== ""
- ) {
- setModal(true);
- } else {
- toast.error("Mohon lengkapi semua form");
- }
- }}
- >
- Simpan
-
-
+
+ {
+ if (
+ isData.title !== "" &&
+ isData.dateStart !== " " &&
+ isData.timeStart !== "" &&
+ isData.timeEnd !== "" &&
+ isData.repeatEventTyper !== ""
+ ) {
+ setModal(true);
+ } else {
+ toast.error("Mohon lengkapi semua form");
+ }
+ }}
+ >
+ Simpan
+
+
setModal(false)}
description="Apakah Anda yakin ingin menambahkan data?"
onYes={(val) => { onSubmit(val) }} />
diff --git a/src/module/calender/ui/update_division_calender.tsx b/src/module/calender/ui/update_division_calender.tsx
index 6092dae..522662c 100644
--- a/src/module/calender/ui/update_division_calender.tsx
+++ b/src/module/calender/ui/update_division_calender.tsx
@@ -1,6 +1,6 @@
"use client"
import { LayoutNavbarNew, WARNA } from '@/module/_global';
-import { Avatar, Box, Button, Flex, Group, Input, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Flex, Group, Input, rem, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core';
import { DateInput, TimeInput } from '@mantine/dates';
import React, { useState } from 'react';
import { IoIosArrowDropright } from 'react-icons/io';
@@ -295,8 +295,8 @@ export default function UpdateDivisionCalender() {
Anggota Terpilih
Total {memberUser.length} Anggota
-
-
+
+
- {memberUser.get().map((v: any, i: any) => {
- return (
-
-
-
-
-
- {v.name}
-
-
-
-
- Anggota
-
-
- );
- })}
+ {memberUser.length == 0 ?
+
+ Tidak ada Anggota
+
+ :
+
+ memberUser.get().map((v: any, i: any) => {
+ return (
+
+
+
+
+
+ {v.name}
+
+
+
+
+ Anggota
+
+
+ );
+ })}
-
- setModal(true)}
- >
- Simpan
-
-
+
+ setModal(true)}
+ >
+ Simpan
+
+
setModal(false)}
description="Apakah Anda yakin ingin menambahkan data?"
onYes={(val) => { onSubmit(val) }} />
diff --git a/src/module/discussion/ui/form_create_discussion.tsx b/src/module/discussion/ui/form_create_discussion.tsx
index 628883d..0ba359e 100644
--- a/src/module/discussion/ui/form_create_discussion.tsx
+++ b/src/module/discussion/ui/form_create_discussion.tsx
@@ -1,7 +1,7 @@
'use client'
import { WARNA } from "@/module/_global";
import LayoutModal from "@/module/_global/layout/layout_modal";
-import { Avatar, Box, Button, Center, Grid, Group, Text, Textarea } from "@mantine/core";
+import { Avatar, Box, Button, Center, Grid, Group, rem, Text, Textarea } from "@mantine/core";
import { useState } from "react";
import toast from "react-hot-toast";
import { funCreateDiscussion } from "../lib/api_discussion";
@@ -13,7 +13,7 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
const param = useParams<{ id: string }>()
const [touched, setTouched] = useState({
desc: false,
- });
+ });
const [isData, setData] = useState({
desc: "",
idDivision: id
@@ -26,7 +26,7 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
desc: isData.desc,
idDivision: id
})
-
+
if (response.success) {
toast.success(response.message)
router.push(`/division/${param.id}/discussion/`)
@@ -47,7 +47,7 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
return (
-
+
@@ -69,34 +69,38 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
onBlur={() => setTouched({ ...touched, desc: true })}
error={
touched.desc && (
- isData.desc == "" ? "Form Tidak Boleh Kosong" : null
+ isData.desc == "" ? "Form Tidak Boleh Kosong" : null
)
- }
+ }
/>
-
+
+
{
- if (
- isData.desc !== ""
- ) {
- setValModal(true)
- } else {
- toast.error("Form Tidak Boleh Kosong");
+ onClick={() => {
+ if (
+ isData.desc !== ""
+ ) {
+ setValModal(true)
+ } else {
+ toast.error("Form Tidak Boleh Kosong");
}
}}
>
Simpan
-
setValModal(false)}
description="Apakah Anda yakin ingin
diff --git a/src/module/discussion/ui/form_edit_discussion.tsx b/src/module/discussion/ui/form_edit_discussion.tsx
index 359bc0f..361733f 100644
--- a/src/module/discussion/ui/form_edit_discussion.tsx
+++ b/src/module/discussion/ui/form_edit_discussion.tsx
@@ -1,7 +1,7 @@
'use client'
import { WARNA } from "@/module/_global"
import LayoutModal from "@/module/_global/layout/layout_modal"
-import { Box, Group, Avatar, Textarea, Button, Grid } from "@mantine/core"
+import { Box, Group, Avatar, Textarea, Button, Grid, rem } from "@mantine/core"
import { useParams, useRouter } from "next/navigation"
import { useState } from "react"
import toast from "react-hot-toast"
@@ -15,7 +15,7 @@ export default function FormEditDiscussion() {
const [isDataOne, setDataOne] = useState("")
const [touched, setTouched] = useState({
desc: false,
- });
+ });
async function fetchGetOneDiscussion() {
try {
@@ -56,7 +56,7 @@ export default function FormEditDiscussion() {
}, [])
return (
-
+
@@ -78,33 +78,37 @@ export default function FormEditDiscussion() {
onBlur={() => setTouched({ ...touched, desc: true })}
error={
touched.desc && (
- isDataOne == "" ? "Form Tidak Boleh Kosong" : null
+ isDataOne == "" ? "Form Tidak Boleh Kosong" : null
)
- }
+ }
/>
-
- {
- if (
- isDataOne !== ""
- ) {
- setValModal(true)
- } else {
- toast.error("Form Tidak Boleh Kosong");
+
+
+ {
+ if (
+ isDataOne !== ""
+ ) {
+ setValModal(true)
+ } else {
+ toast.error("Form Tidak Boleh Kosong");
}
}}
- >
- Simpan
-
-
+ >
+ Simpan
+
setValModal(false)}
diff --git a/src/module/division_new/ui/create_anggota_division.tsx b/src/module/division_new/ui/create_anggota_division.tsx
index 99a7424..d5995a2 100644
--- a/src/module/division_new/ui/create_anggota_division.tsx
+++ b/src/module/division_new/ui/create_anggota_division.tsx
@@ -1,9 +1,9 @@
"use client"
-import { LayoutNavbarNew, WARNA } from '@/module/_global';
+import { LayoutNavbarNew, SkeletonSingle, WARNA } from '@/module/_global';
import LayoutModal from '@/module/_global/layout/layout_modal';
import { funGetUserByCookies } from '@/module/auth';
import { funGetAllmember, TypeUser } from '@/module/user';
-import { Avatar, Box, Button, Divider, Group, Stack, Text, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Divider, Group, rem, Stack, Text, TextInput } from '@mantine/core';
import { useParams, useRouter } from 'next/navigation';
import React, { useState } from 'react';
import toast from 'react-hot-toast';
@@ -22,6 +22,7 @@ export default function CreateAnggotaDivision() {
const [group, setGroup] = useState("")
const [isOpen, setOpen] = useState(false)
const param = useParams<{ id: string }>()
+ const [loading, setLoading] = useState(true)
const handleFileClick = (index: number) => {
if (selectedFiles.some((i: any) => i.idUser == dataMember[index].id)) {
@@ -33,6 +34,7 @@ export default function CreateAnggotaDivision() {
async function loadMember(group: string, search: string) {
+ setLoading(true)
const res = await funGetAllmember('?active=true&group=' + group + '&search=' + search);
const user = await funGetUserByCookies();
@@ -41,6 +43,7 @@ export default function CreateAnggotaDivision() {
} else {
toast.error(res.message)
}
+ setLoading(false)
}
async function loadFirst() {
@@ -99,7 +102,17 @@ export default function CreateAnggotaDivision() {
onChange={(e: any) => loadMember(group, e.target.value)}
/>
-
+
+ {loading ?
+ Array(8)
+ .fill(null)
+ .map((_, i) => (
+
+
+
+ ))
+ :
+
{dataMember.map((v: any, index: any) => {
const isSelected = selectedFiles.some((i: any) => i.idUser == dataMember[index].id)
const found = memberDb.some((i: any) => i.idUser == v.id)
@@ -122,7 +135,13 @@ export default function CreateAnggotaDivision() {
)
})}
-
+ }
+
+
-
setOpen(false)}
description="Apakah Anda yakin ingin menambahkan anggota divisi?"
onYes={(val) => {
diff --git a/src/module/division_new/ui/create_division.tsx b/src/module/division_new/ui/create_division.tsx
index c2ec45a..a7db89f 100644
--- a/src/module/division_new/ui/create_division.tsx
+++ b/src/module/division_new/ui/create_division.tsx
@@ -7,6 +7,7 @@ import {
Button,
Flex,
Group,
+ rem,
Select,
Stack,
Text,
@@ -167,7 +168,7 @@ export default function CreateDivision() {
-
+
Anggota Terpilih
Total {member.length} Anggota
@@ -210,22 +211,26 @@ export default function CreateDivision() {
-
- {
- onSubmit()
- }}
- >
- Simpan
-
-
+
+ {
+ onSubmit()
+ }}
+ >
+ Simpan
+
+
);
}
diff --git a/src/module/division_new/ui/edit_division.tsx b/src/module/division_new/ui/edit_division.tsx
index 6a68c87..586186c 100644
--- a/src/module/division_new/ui/edit_division.tsx
+++ b/src/module/division_new/ui/edit_division.tsx
@@ -1,7 +1,7 @@
"use client"
import { LayoutNavbarNew, WARNA } from '@/module/_global';
import LayoutModal from '@/module/_global/layout/layout_modal';
-import { Box, Button, Select, Stack, Textarea, TextInput } from '@mantine/core';
+import { Box, Button, rem, Select, Stack, Textarea, TextInput } from '@mantine/core';
import { useShallowEffect } from '@mantine/hooks';
import { useParams, useRouter } from 'next/navigation';
import React, { useState } from 'react';
@@ -106,7 +106,12 @@ export default function EditDivision() {
}}
/>
-
+
+
-
setOpenModal(false)} description='Apakah Anda yakin ingin edit data'
onYes={(val) => {
if (val) {
diff --git a/src/module/division_new/ui/navbar_create_users.tsx b/src/module/division_new/ui/navbar_create_users.tsx
index 3969394..4b3f724 100644
--- a/src/module/division_new/ui/navbar_create_users.tsx
+++ b/src/module/division_new/ui/navbar_create_users.tsx
@@ -1,7 +1,7 @@
"use client"
import { LayoutNavbarNew, WARNA } from '@/module/_global';
import { useHookstate } from '@hookstate/core';
-import { Avatar, Box, Button, Center, Input, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Center, Input, rem, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core';
import { useShallowEffect } from '@mantine/hooks';
import { useRouter } from 'next/navigation';
import React, { useState } from 'react';
@@ -94,50 +94,56 @@ export default function NavbarCreateUsers({ grup, onClose }: { grup?: string, on
))}
:
-
- {dataMember.map((v, index) => {
- const isSelected = selectedFiles.some((i: any) => i.idUser == dataMember[index].id);
- return (
-
- handleFileClick(index)}
- >
-
-
-
-
- {v.name}
-
+
+
+ {dataMember.map((v, index) => {
+ const isSelected = selectedFiles.some((i: any) => i.idUser == dataMember[index].id);
+ return (
+
+ handleFileClick(index)}
+ >
+
+
+
+
+ {v.name}
+
+
-
- );
- })}
-
+ );
+ })}
+
+
}
-
- { onSubmit() }}
- >
- Simpan
-
-
+
+
+ { onSubmit() }}
+ >
+ Simpan
+
);
diff --git a/src/module/task/ui/add_member_detail_task.tsx b/src/module/task/ui/add_member_detail_task.tsx
index b80c431..36d6912 100644
--- a/src/module/task/ui/add_member_detail_task.tsx
+++ b/src/module/task/ui/add_member_detail_task.tsx
@@ -1,5 +1,5 @@
"use client"
-import { LayoutNavbarNew, WARNA } from "@/module/_global";
+import { LayoutNavbarNew, SkeletonSingle, WARNA } from "@/module/_global";
import { funGetDivisionById, IDataMemberDivision } from "@/module/division_new";
import {
Anchor,
@@ -10,6 +10,7 @@ import {
Divider,
Flex,
Group,
+ rem,
Stack,
Text,
TextInput,
@@ -31,10 +32,12 @@ export default function AddMemberDetailTask() {
const [isDataMember, setDataMember] = useState([])
const [selectAll, setSelectAll] = useState(false)
const [openModal, setOpenModal] = useState(false)
+ const [loading, setLoading] = useState(true)
async function getData() {
try {
+ setLoading(true)
const response = await funGetDivisionById(param.id)
if (response.success) {
setData(response.data.member)
@@ -48,9 +51,13 @@ export default function AddMemberDetailTask() {
} else {
toast.error(res.message);
}
+
+ setLoading(false)
} catch (error) {
console.log(error)
toast.error("Gagal mendapatkan anggota, coba lagi nanti");
+ } finally {
+ setLoading(false)
}
}
@@ -127,54 +134,67 @@ export default function AddMemberDetailTask() {
{selectAll ? : ""}
-
- {isData.map((v, i) => {
- const isSelected = selectedFiles.some((i: any) => i?.idUser == v.idUser);
- const found = isDataMember.some((i: any) => i.idUser == v.idUser)
- return (
- (!found) ? handleFileClick(i) : null}>
-
-
-
-
- (
+
+
+
+ ))
+ :
+
+ {isData.map((v, i) => {
+ const isSelected = selectedFiles.some((i: any) => i?.idUser == v.idUser);
+ const found = isDataMember.some((i: any) => i.idUser == v.idUser)
+ return (
+ (!found) ? handleFileClick(i) : null}>
+
+
+
+
+
+ {v.name}
+
+ {(found) ? "sudah menjadi anggota" : ""}
+
+
+
- {v.name}
-
- {(found) ? "sudah menjadi anggota" : ""}
-
-
-
- {isSelected ? : ""}
-
-
-
-
- );
- })}
-
-
- { onVerifikasi() }}
- >
- Simpan
-
-
+ paddingLeft: 20,
+ }}
+ >
+ {isSelected ? : ""}
+
+
+
+
+ );
+ })}
+
+ }
+
+
+ { onVerifikasi() }}
+ >
+ Simpan
+
setOpenModal(false)}
diff --git a/src/module/task/ui/cancel_task.tsx b/src/module/task/ui/cancel_task.tsx
index d42b367..61850b6 100644
--- a/src/module/task/ui/cancel_task.tsx
+++ b/src/module/task/ui/cancel_task.tsx
@@ -3,6 +3,7 @@ import { LayoutNavbarNew, WARNA } from "@/module/_global";
import {
Box,
Button,
+ rem,
Stack,
Textarea,
} from "@mantine/core";
@@ -20,7 +21,7 @@ export default function CancelTask() {
const param = useParams<{ id: string, detail: string }>()
const [touched, setTouched] = useState({
reason: false,
- });
+ });
function onVerification() {
if (alasan == "")
@@ -47,7 +48,7 @@ export default function CancelTask() {
return (
-
+
@@ -68,18 +69,22 @@ export default function CancelTask() {
onBlur={() => setTouched({ ...touched, reason: true })}
/>
-
- { onVerification() }}
- >
- Simpan
-
-
+
+
+ { onVerification() }}
+ >
+ Simpan
+
diff --git a/src/module/task/ui/create_date_end_task.tsx b/src/module/task/ui/create_date_end_task.tsx
index 8d8e3cb..e8c3b55 100644
--- a/src/module/task/ui/create_date_end_task.tsx
+++ b/src/module/task/ui/create_date_end_task.tsx
@@ -7,6 +7,7 @@ import {
Flex,
Group,
Input,
+ rem,
SimpleGrid,
Stack,
Text,
@@ -110,7 +111,12 @@ export default function ViewDateEndTask({ onClose }: { onClose: (val: IFormDateT
error={touched.title && title == "" ? "Judul Tugas Tidak Boleh Kosong" : null}
/>
-
+
+
-
);
}
diff --git a/src/module/task/ui/create_task.tsx b/src/module/task/ui/create_task.tsx
index 53286a0..ed0f1e6 100644
--- a/src/module/task/ui/create_task.tsx
+++ b/src/module/task/ui/create_task.tsx
@@ -1,6 +1,6 @@
"use client";
import { LayoutDrawer, LayoutNavbarNew, WARNA } from "@/module/_global";
-import { Avatar, Box, Button, Center, Flex, Group, Input, SimpleGrid, Stack, Text, TextInput } from "@mantine/core";
+import { Avatar, Box, Button, Center, Flex, Group, Input, rem, SimpleGrid, Stack, Text, TextInput } from "@mantine/core";
import { useParams, useRouter } from "next/navigation";
import React, { useRef, useState } from "react";
import { IoIosArrowDropright } from "react-icons/io";
@@ -205,7 +205,7 @@ export default function CreateTask() {
{
member.length > 0 &&
-
+
Anggota Terpilih
Total {member.length} Anggota
@@ -249,7 +249,12 @@ export default function CreateTask() {
}
-
+
+
-
diff --git a/src/module/task/ui/create_users_project.tsx b/src/module/task/ui/create_users_project.tsx
index 7f9d3bd..1b15d8d 100644
--- a/src/module/task/ui/create_users_project.tsx
+++ b/src/module/task/ui/create_users_project.tsx
@@ -12,6 +12,7 @@ import {
Divider,
Flex,
Group,
+ rem,
Skeleton,
Text,
TextInput,
@@ -104,19 +105,6 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
menu
/>
- {/* }
- placeholder="Pencarian"
- /> */}
{loading ?
:
@@ -127,7 +115,7 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
{selectAll ? : ""}
}
-
+
{loading ?
Array(3)
.fill(null)
@@ -184,7 +172,12 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
})
}
-
+
+
Simpan
-
);
}
diff --git a/src/module/task/ui/edit_detail_task.tsx b/src/module/task/ui/edit_detail_task.tsx
index 23717f6..c0763b5 100644
--- a/src/module/task/ui/edit_detail_task.tsx
+++ b/src/module/task/ui/edit_detail_task.tsx
@@ -7,9 +7,11 @@ import {
Flex,
Group,
Input,
+ rem,
SimpleGrid,
Stack,
Text,
+ TextInput,
} from "@mantine/core";
import React, { useState } from "react";
import { DatePicker } from "@mantine/dates";
@@ -122,31 +124,37 @@ export default function EditDetailTask() {
- { setTitle(e.target.value) }}
/>
-
- { setOpenModal(true) }}
- >
- Simpan
-
-
+
+
+ { setOpenModal(true) }}
+ >
+ Simpan
+
setOpenModal(false)}
diff --git a/src/module/task/ui/edit_task.tsx b/src/module/task/ui/edit_task.tsx
index ea033d7..caeece9 100644
--- a/src/module/task/ui/edit_task.tsx
+++ b/src/module/task/ui/edit_task.tsx
@@ -4,6 +4,7 @@ import {
Box,
Button,
Input,
+ rem,
Stack,
Textarea,
TextInput,
@@ -23,7 +24,7 @@ export default function EditTask() {
const param = useParams<{ id: string, detail: string }>()
const [touched, setTouched] = useState({
title: false,
- });
+ });
function onVerification() {
if (title == "")
@@ -69,7 +70,7 @@ export default function EditTask() {
return (
-
+
@@ -86,18 +87,23 @@ export default function EditTask() {
size="md"
value={title}
onChange={(e) => {
- setTitle(e.target.value)
+ setTitle(e.target.value)
setTouched({ ...touched, title: false })
}}
error={
touched.title && (
- title == "" ? "Error! harus memasukkan judul tugas" : null
+ title == "" ? "Error! harus memasukkan judul tugas" : null
)
- }
+ }
onBlur={() => setTouched({ ...touched, title: true })}
/>
-
+
+
-
setOpenModal(false)}