diff --git a/src/app/api/discussion/[id]/route.ts b/src/app/api/discussion/[id]/route.ts
index 9067a37..8e1459a 100644
--- a/src/app/api/discussion/[id]/route.ts
+++ b/src/app/api/discussion/[id]/route.ts
@@ -66,7 +66,7 @@ export async function GET(request: Request, context: { params: { id: string } })
const { ...userMember } = data
const username = data?.User.name
const user_img = data?.User.img
- const createdAt = moment(data?.createdAt).format("LL")
+ const createdAt = moment(data?.createdAt).format("ll")
diff --git a/src/app/api/discussion/route.ts b/src/app/api/discussion/route.ts
index 467d1f8..ad5e378 100644
--- a/src/app/api/discussion/route.ts
+++ b/src/app/api/discussion/route.ts
@@ -72,7 +72,7 @@ export async function GET(request: Request) {
user_name: v.User.name,
img: v.User.img,
total_komentar: v.DivisionDisscussionComment.length,
- createdAt: moment(v.createdAt).format("LL")
+ createdAt: moment(v.createdAt).format("ll")
}))
return NextResponse.json({ success: true, message: "Berhasil mendapatkan diskusi", data: fixData, }, { status: 200 });
diff --git a/src/module/calender/ui/create_user_calender.tsx b/src/module/calender/ui/create_user_calender.tsx
index ba7f87a..97543e2 100644
--- a/src/module/calender/ui/create_user_calender.tsx
+++ b/src/module/calender/ui/create_user_calender.tsx
@@ -6,7 +6,7 @@ import { useHookstate } from '@hookstate/core';
import toast from 'react-hot-toast';
import { useShallowEffect } from '@mantine/hooks';
import { LayoutNavbarNew, SkeletonSingle, WARNA } from '@/module/_global';
-import { Avatar, Box, Button, Divider, Flex, Group, rem, Text } from '@mantine/core';
+import { Avatar, Box, Button, Divider, Flex, Grid, Group, rem, Text } from '@mantine/core';
import { FaCheck } from 'react-icons/fa6';
export default function CreateUserCalender({ onClose }: { onClose: (val: any) => void }) {
@@ -31,7 +31,7 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
} else {
toast.error(response.message)
}
-
+
} catch (error) {
console.log(error)
toast.error("Gagal mendapatkan anggota, coba lagi nanti");
@@ -83,77 +83,73 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
return (
-
-
-
-
- Pilih Semua Anggota
-
- {selectAll ? : ""}
+
+
+
+
+ Pilih Semua Anggota
+
+ {selectAll ? : ""}
- {loading ?
+ {loading ?
Array(8)
- .fill(null)
- .map((_, i) => (
-
+ .fill(null)
+ .map((_, i) => (
+
-
- ))
- :
-
- {isData.map((v, i) => {
- const isSelected = selectedFiles.some((i: any) => i?.idUser == v.idUser);
- return (
- handleFileClick(i)}>
-
-
-
-
+ ))
+ :
+
+ {isData.map((v, i) => {
+ const isSelected = selectedFiles.some((i: any) => i?.idUser == v.idUser);
+ return (
+ handleFileClick(i)}>
+
- {v.name}
-
-
-
- {isSelected ? : ""}
-
-
-
-
- );
- })}
-
+
+
+
+
+
+
+ {v.name}
+
+ {isSelected ? : null}
+
+
+
+
+
+
+
+ );
+ })}
+
}
-
+
+ maxWidth: rem(550),
+ zIndex: 999,
+ backgroundColor: `${WARNA.bgWhite}`,
+ }}>
-
+
);
}
diff --git a/src/module/calender/ui/date_event_division.tsx b/src/module/calender/ui/date_event_division.tsx
index 716721b..39e193b 100644
--- a/src/module/calender/ui/date_event_division.tsx
+++ b/src/module/calender/ui/date_event_division.tsx
@@ -1,5 +1,5 @@
import { WARNA } from '@/module/_global';
-import { Box, Divider, Group, Indicator, Skeleton, Text } from '@mantine/core';
+import { Box, Divider, Flex, Group, Indicator, Skeleton, Text } from '@mantine/core';
import { DatePicker, DatePickerProps } from '@mantine/dates';
import { useParams, useRouter } from 'next/navigation';
import React, { useState } from 'react';
@@ -82,7 +82,7 @@ export default function DateEventDivision() {
const muncul = isListTgl.includes(coba)
return (
-
+
{day}
);
@@ -136,11 +136,25 @@ export default function DateEventDivision() {
}} h={113}>
-
+
{event.timeStart} - {event.timeEnd}
- {event.title}
- Dibuat oleh : {event.user_name}
-
+
+
+ {_.startCase(event.title)}
+
+
+
+
+ Dibuat oleh : {event.user_name}
+
+
+
diff --git a/src/module/calender/ui/detail_event_division.tsx b/src/module/calender/ui/detail_event_division.tsx
index 3ad7b46..00fcabd 100644
--- a/src/module/calender/ui/detail_event_division.tsx
+++ b/src/module/calender/ui/detail_event_division.tsx
@@ -1,6 +1,6 @@
'use client'
import { LayoutDrawer, LayoutNavbarNew, SkeletonSingle, WARNA } from '@/module/_global';
-import { ActionIcon, Avatar, Box, CopyButton, Flex, Group, Skeleton, Stack, Text, Tooltip } from '@mantine/core';
+import { ActionIcon, Avatar, Box, CopyButton, Divider, Flex, Grid, Group, Skeleton, Spoiler, Stack, Text, Tooltip } from '@mantine/core';
import React, { useState } from 'react';
import { BsCalendar2Event, BsCalendarDate } from 'react-icons/bs';
import { MdEventNote, MdOutlineFormatListBulleted } from "react-icons/md";
@@ -61,63 +61,130 @@ export default function DetailEventDivision() {
padding: 20,
borderRadius: 10
}}>
-
-
-
- {isDataCalender?.title}
-
-
-
- {moment(isDataCalender?.dateStart).format('LL')}
-
-
-
- {isDataCalender?.timeStart} | {isDataCalender?.timeEnd}
-
-
-
-
- {isDataCalender?.repeatEventTyper.toString() === '1' ? 'Acara 1 Kali' :
- isDataCalender?.repeatEventTyper.toString() === '2' ? 'Hari Kerja (senin - jumat)' :
- isDataCalender?.repeatEventTyper.toString() === '3' ? 'Minggu' :
- isDataCalender?.repeatEventTyper.toString() === '4' ? 'Bulanan' :
- isDataCalender?.repeatEventTyper.toString() === '5' ? 'Tahunan' :
- ''}
-
-
-
-
- {isDataCalender?.linkMeet ? (
-
- {isDataCalender?.linkMeet}
-
- {({ copied, copy }) => (
-
-
- {copied ? (
-
- ) : (
-
- )}
-
-
- )}
-
-
- ) : (
- -
- )
- }
-
-
-
- {isDataCalender?.desc ? (
- {isDataCalender?.desc}
- ) : (
- -
- )
- }
-
+
+
+
+
+
+
+ {isDataCalender?.title}
+
+
+
+
+
+
+
+ {moment(isDataCalender?.dateStart).format('LL')}
+
+
+
+
+
+
+
+ {isDataCalender?.timeStart} | {isDataCalender?.timeEnd}
+
+
+
+
+
+
+
+
+ {isDataCalender?.repeatEventTyper.toString() === '1' ? 'Acara 1 Kali' :
+ isDataCalender?.repeatEventTyper.toString() === '2' ? 'Hari Kerja (senin - jumat)' :
+ isDataCalender?.repeatEventTyper.toString() === '3' ? 'Minggu' :
+ isDataCalender?.repeatEventTyper.toString() === '4' ? 'Bulanan' :
+ isDataCalender?.repeatEventTyper.toString() === '5' ? 'Tahunan' :
+ ''}
+
+
+
+
+
+
+
+
+ {isDataCalender?.linkMeet ? (
+
+
+ {isDataCalender?.linkMeet}
+
+
+ {({ copied, copy }) => (
+
+
+ {copied ? (
+
+ ) : (
+
+ )}
+
+
+ )}
+
+
+ ) : (
+ -
+ )
+ }
+
+
+
+
+
+
+
+ {isDataCalender?.desc ? (
+
+ {isDataCalender?.desc}
+
+ ) : (
+ -
+ )
+ }
+
+
}
@@ -157,7 +224,7 @@ export default function DetailEventDivision() {
px={20}
pt={20}
>
- {isLengthMember == 0? (
+ {isLengthMember == 0 ? (
Tidak ada anggota
@@ -165,24 +232,32 @@ export default function DetailEventDivision() {
{isDataAnggota.map((v, i) => {
return (
-
-
-
-
-
- {v.name}
-
-
- {v.email}
-
-
-
-
+
+
+
+
+
+
+
+
+ {v.name}
+
+ {v.email}
+
+
+
+
+
+
+
+
+
);
})}
diff --git a/src/module/calender/ui/history_division_calender.tsx b/src/module/calender/ui/history_division_calender.tsx
index 13c1c5b..05c2eff 100644
--- a/src/module/calender/ui/history_division_calender.tsx
+++ b/src/module/calender/ui/history_division_calender.tsx
@@ -91,20 +91,20 @@ export default function HistoryDivisionCalender() {
:
isData.map((v, i) => {
return (
-
-
+
+
{moment(v.dateStart).format('D MMM')}
{moment(v.dateStart).format('dddd')}
-
+
{v.data.map((d, x) => {
return (
- router.push(`/division/${param.id}/calender/${d.id}`)}
>
- {d.title}
+ {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 b493f26..1f9d1e2 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, rem, Select, SimpleGrid, Stack, Text, Textarea, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Divider, Flex, Grid, 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';
@@ -85,7 +85,7 @@ export default function NavbarCreateDivisionCalender() {
-
+
{
return (
-
-
-
-
-
- {v.name}
+
+
+
+
+
+
+
+ {v.name}
+
+
+
+
+
+
+ Anggota
-
-
-
- Anggota
-
-
+
+
+
+
+
+
);
})}
diff --git a/src/module/calender/ui/update_division_calender.tsx b/src/module/calender/ui/update_division_calender.tsx
index 1410f88..e6cc93e 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, rem, Select, SimpleGrid, Skeleton, Stack, Text, Textarea, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Divider, Flex, Grid, Group, Input, rem, Select, SimpleGrid, Skeleton, Stack, Text, Textarea, TextInput } from '@mantine/core';
import { DateInput, TimeInput } from '@mantine/dates';
import React, { useState } from 'react';
import { IoIosArrowDropright } from 'react-icons/io';
@@ -305,7 +305,7 @@ export default function UpdateDivisionCalender() {
borderRadius: 10,
}}
>
- Tambah Anggota *
+ Tambah Anggota
@@ -332,24 +332,22 @@ export default function UpdateDivisionCalender() {
memberUser.get().map((v: any, i: any) => {
return (
-
-
-
-
-
+
+
+
+
+
+
+
{v.name}
-
-
-
- Anggota
-
-
+
+
+
+
+
+
);
})}
diff --git a/src/module/calender/ui/update_list_users.tsx b/src/module/calender/ui/update_list_users.tsx
index ec09107..06df22f 100644
--- a/src/module/calender/ui/update_list_users.tsx
+++ b/src/module/calender/ui/update_list_users.tsx
@@ -2,7 +2,7 @@
import { LayoutNavbarNew, SkeletonSingle, WARNA } from '@/module/_global';
import { funGetDivisionById, IDataMemberDivision } from '@/module/division_new';
import { useHookstate } from '@hookstate/core';
-import { Avatar, Box, Button, Center, Divider, Flex, Group, rem, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core';
+import { Avatar, Box, Button, Center, Divider, Flex, Grid, Group, rem, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core';
import { useParams, useRouter } from 'next/navigation';
import React, { useState } from 'react';
import { HiMagnifyingGlass } from 'react-icons/hi2';
@@ -11,38 +11,6 @@ import toast from 'react-hot-toast';
import { useShallowEffect } from '@mantine/hooks';
import { FaCheck } from 'react-icons/fa6';
-const dataUser = [
- {
- id: 1,
- img: "https://i.pravatar.cc/500?img=3",
- name: "Doni Setiawan",
- },
- {
- id: 2,
- img: "https://i.pravatar.cc/500?img=10",
- name: "Ilham Udin",
- },
- {
- id: 3,
- img: "https://i.pravatar.cc/500?img=11",
- name: "Didin Anang",
- },
- {
- id: 4,
- img: "https://i.pravatar.cc/500?img=1",
- name: "Angga Saputra",
- },
- {
- id: 5,
- img: "https://i.pravatar.cc/500?img=2",
- name: "Marcel Widianto",
- },
- {
- id: 6,
- img: "https://i.pravatar.cc/500?img=7",
- name: "Bagas Nusantara",
- },
-];
export default function UpdateListUsers({ onClose }: { onClose: (val: any) => void }) {
const router = useRouter()
@@ -83,7 +51,7 @@ export default function UpdateListUsers({ onClose }: { onClose: (val: any) => vo
if (selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
setSelectedFiles(selectedFiles.filter((i: any) => i.idUser != isData[index].idUser))
} else {
- setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name }])
+ setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img }])
}
};
@@ -95,7 +63,7 @@ export default function UpdateListUsers({ onClose }: { onClose: (val: any) => vo
for (let index = 0; index < isData.length; index++) {
if (!selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
const newArr = {
- idUser: isData[index].idUser, name: isData[index].name
+ idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img
}
setSelectedFiles((selectedFiles: any) => [...selectedFiles, newArr])
}
@@ -138,34 +106,30 @@ export default function UpdateListUsers({ onClose }: { onClose: (val: any) => vo
))
:
-
+
{isData.map((v, i) => {
const isSelected = selectedFiles.some((i: any) => i?.idUser == v.idUser);
return (
handleFileClick(i)}>
-
-
+
+
-
- {v.name}
-
-
-
- {isSelected ? : ""}
-
-
-
+
+
+
+
+ {v.name}
+
+ {isSelected ? : null}
+
+
+
+
+
+
);
})}
diff --git a/src/module/discussion/ui/detail_discussion.tsx b/src/module/discussion/ui/detail_discussion.tsx
index cd44402..1004a42 100644
--- a/src/module/discussion/ui/detail_discussion.tsx
+++ b/src/module/discussion/ui/detail_discussion.tsx
@@ -71,21 +71,21 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
Array(1)
.fill(null)
.map((_, i) => (
-
+
-
+
-
+
@@ -95,7 +95,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
)) :
<>
{isData?.totalComments == 0 ?
-
+
:
-
- {isData?.username ?
-
-
-
-
- {isData?.username}
-
- {isData?.status === 1 ? "BUKA" : "TUTUP"}
-
- : ""
- }
- {isData?.createdAt}
-
+
+
+
+
+
+
+
+ {isData?.username}
+
+ {isData?.status === 1 ? "BUKA" : "TUTUP"}
+
+
+
+ {isData?.createdAt}
+
+
}
-
+
{isLoad ?
Array(2)
.fill(0)
@@ -211,20 +215,21 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
isData?.DivisionDisscussionComment.map((v, i) => {
return (
-
-
-
+
+
+
+
+
-
- {v.username}
+
+ {v.username}
-
- {moment(v.createdAt).format("LL")}
-
+
+
+ {moment(v.createdAt).format("ll")}
+
+
- {isLoad ?
-
- :
-
-
-
- {300 - isComent.length} karakter tersisa
-
-
-
-
- setIsComent(e.target.value)}
- value={isComent}
- maxLength={300}
- />
+ {isLoad ?
+
+ :
+
+
+
+ {300 - isComent.length} karakter tersisa
+
+
+
+
+ setIsComent(e.target.value)}
+ value={isComent}
+ maxLength={300}
+ />
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
- }
+
+ }
)
}
diff --git a/src/module/discussion/ui/form_create_discussion.tsx b/src/module/discussion/ui/form_create_discussion.tsx
index 0ba359e..dc95c28 100644
--- a/src/module/discussion/ui/form_create_discussion.tsx
+++ b/src/module/discussion/ui/form_create_discussion.tsx
@@ -4,13 +4,18 @@ import LayoutModal from "@/module/_global/layout/layout_modal";
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";
+import { funCreateDiscussion, funGetDiscussionById } from "../lib/api_discussion";
import { useParams, useRouter } from "next/navigation";
+import { useShallowEffect } from "@mantine/hooks";
+import { funGetProfileByCookies } from "@/module/user/profile/lib/api_profile";
export default function FormCreateDiscussion({ id }: { id: string }) {
const [isValModal, setValModal] = useState(false)
const router = useRouter()
- const param = useParams<{ id: string }>()
+ const [isImg, setImg] = useState("")
+ const param = useParams<{ id: string, detail: string }>()
+ const [loading, setLoading] = useState(true)
+ const [img, setIMG] = useState()
const [touched, setTouched] = useState({
desc: false,
});
@@ -18,6 +23,22 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
desc: "",
idDivision: id
})
+ async function getData() {
+ try {
+ setLoading(true)
+ const res = await funGetProfileByCookies()
+ setIMG(`/api/file/img?jenis=image&cat=user&file=${res.data.img}`)
+ setLoading(false)
+ } catch (error) {
+ console.error(error);
+ } finally {
+ setLoading(false)
+ }
+ }
+
+ useShallowEffect(() => {
+ getData()
+ }, [])
async function createDiscussion(val: boolean) {
try {
@@ -45,13 +66,12 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
}
-
return (
-
-
+
+
@@ -61,7 +81,7 @@ export default function FormCreateDiscussion({ id }: { id: string }) {
input: {
border: 'none',
backgroundColor: 'transparent',
- height: "60vh"
+ height: "70vh"
}
}}
value={isData.desc}
diff --git a/src/module/discussion/ui/form_edit_discussion.tsx b/src/module/discussion/ui/form_edit_discussion.tsx
index d112a69..20fbe9a 100644
--- a/src/module/discussion/ui/form_edit_discussion.tsx
+++ b/src/module/discussion/ui/form_edit_discussion.tsx
@@ -7,6 +7,7 @@ import { useState } from "react"
import toast from "react-hot-toast"
import { funEditDiscussion, funGetDiscussionById } from "../lib/api_discussion"
import { useShallowEffect } from "@mantine/hooks"
+import { funGetProfileByCookies } from "@/module/user/profile/lib/api_profile"
export default function FormEditDiscussion() {
const [isValModal, setValModal] = useState(false)
@@ -14,6 +15,7 @@ export default function FormEditDiscussion() {
const param = useParams<{ id: string, detail: string }>()
const [isDataOne, setDataOne] = useState("")
const [loading, setLoading] = useState(true)
+ const [img, setIMG] = useState()
const [touched, setTouched] = useState({
desc: false,
});
@@ -55,19 +57,35 @@ export default function FormEditDiscussion() {
}
}
+ async function getData() {
+ try {
+ setLoading(true)
+ const res = await funGetProfileByCookies()
+ setIMG(`/api/file/img?jenis=image&cat=user&file=${res.data.img}`)
+ setLoading(false)
+ } catch (error) {
+ console.error(error);
+ } finally {
+ setLoading(false)
+ }
+ }
+
useShallowEffect(() => {
fetchGetOneDiscussion()
+ getData()
}, [])
+
+
return (
-
+
{loading ?
:
-
+
}
@@ -87,7 +105,7 @@ export default function FormEditDiscussion() {
input: {
border: 'none',
backgroundColor: 'transparent',
- height: "60vh"
+ height: "70vh"
}
}}
value={isDataOne}
diff --git a/src/module/discussion/ui/list_discussion.tsx b/src/module/discussion/ui/list_discussion.tsx
index ad15a63..0424119 100644
--- a/src/module/discussion/ui/list_discussion.tsx
+++ b/src/module/discussion/ui/list_discussion.tsx
@@ -1,6 +1,6 @@
'use client'
import { WARNA } from "@/module/_global";
-import { Avatar, Badge, Box, Divider, Flex, Group, Skeleton, Spoiler, Text, TextInput } from "@mantine/core";
+import { Avatar, Badge, Box, Divider, Flex, Grid, Group, Skeleton, Spoiler, Text, TextInput } from "@mantine/core";
import { useParams, useRouter, useSearchParams } from "next/navigation";
import { useState } from "react";
import { GrChatOption } from "react-icons/gr";
@@ -63,7 +63,7 @@ export default function ListDiscussion({ id }: { id: string }) {
.fill(null)
.map((_, i) => (
-
+
{
return (
-
- {
- router.push(`/division/${param.id}/discussion/${v.id}`)
- }}
- >
-
+
+ {
+ router.push(`/division/${param.id}/discussion/${v.id}`)
+ }}>
+
-
-
+
+
+
+
{v.user_name}
{v.status === 1 ? "BUKA" : "TUTUP"}
-
- {v.createdAt}
-
+
+
+ {v.createdAt}
+
+