upd: diskusi
Deskripsi: - role user - log user NO Issues
This commit is contained in:
@@ -68,10 +68,11 @@ export async function GET(request: Request, context: { params: { id: string } })
|
|||||||
const username = data?.User.name
|
const username = data?.User.name
|
||||||
const user_img = data?.User.img
|
const user_img = data?.User.img
|
||||||
const createdAt = moment(data?.createdAt).format("ll")
|
const createdAt = moment(data?.createdAt).format("ll")
|
||||||
|
const isCreator = data?.createdBy == user.id
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const result = { ...userMember, username, createdAt, user_img }
|
const result = { ...userMember, username, createdAt, user_img, isCreator }
|
||||||
|
|
||||||
|
|
||||||
const omitData = _.omit(result, ["User"])
|
const omitData = _.omit(result, ["User"])
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { ActionIcon, Avatar, Badge, Box, Center, Divider, Flex, Grid, Group, Inp
|
|||||||
import { globalRole, LayoutDrawer, LayoutNavbarNew, SkeletonDetailDiscussionComment, SkeletonDetailDiscussionMember, SkeletonSingle, WARNA } from "@/module/_global";
|
import { globalRole, LayoutDrawer, LayoutNavbarNew, SkeletonDetailDiscussionComment, SkeletonDetailDiscussionMember, SkeletonSingle, WARNA } from "@/module/_global";
|
||||||
import { GrChatOption } from "react-icons/gr";
|
import { GrChatOption } from "react-icons/gr";
|
||||||
import { LuSendHorizonal } from "react-icons/lu";
|
import { LuSendHorizonal } from "react-icons/lu";
|
||||||
import NavbarDetailDiscussion from "@/module/discussion/ui/navbar_detail_discussion";
|
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { funCreateComent, funGetAllDiscussion, funGetDiscussionById } from "../lib/api_discussion";
|
import { funCreateComent, funGetAllDiscussion, funGetDiscussionById } from "../lib/api_discussion";
|
||||||
import { useShallowEffect } from "@mantine/hooks";
|
import { useShallowEffect } from "@mantine/hooks";
|
||||||
@@ -16,8 +15,7 @@ import { useHookstate } from "@hookstate/core";
|
|||||||
import { globalRefreshDiscussion } from "../lib/val_discussion";
|
import { globalRefreshDiscussion } from "../lib/val_discussion";
|
||||||
import { HiMenu } from "react-icons/hi";
|
import { HiMenu } from "react-icons/hi";
|
||||||
import DrawerDetailDiscussion from "./drawer_detail_discussion";
|
import DrawerDetailDiscussion from "./drawer_detail_discussion";
|
||||||
import { funGetUserByCookies } from "@/module/auth";
|
import {globalIsAdminDivision } from "@/module/division_new";
|
||||||
import { funGetDivisionById } from "@/module/division_new";
|
|
||||||
|
|
||||||
export default function DetailDiscussion({ id, idDivision }: { id: string, idDivision: string }) {
|
export default function DetailDiscussion({ id, idDivision }: { id: string, idDivision: string }) {
|
||||||
const [isData, setData] = useState<IDetailDiscussion>()
|
const [isData, setData] = useState<IDetailDiscussion>()
|
||||||
@@ -27,20 +25,16 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const refresh = useHookstate(globalRefreshDiscussion)
|
const refresh = useHookstate(globalRefreshDiscussion)
|
||||||
const roleLogin = useHookstate(globalRole)
|
const roleLogin = useHookstate(globalRole)
|
||||||
const [isAdmin, setAdmin] = useState(false)
|
|
||||||
const [isCreator, setCreator] = useState(false)
|
const [isCreator, setCreator] = useState(false)
|
||||||
|
const adminLogin = useHookstate(globalIsAdminDivision)
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
try {
|
try {
|
||||||
setIsLoad(true)
|
setIsLoad(true)
|
||||||
const response = await funGetDiscussionById(id)
|
const response = await funGetDiscussionById(id)
|
||||||
const res = await funGetDivisionById(param.id);
|
|
||||||
const login = await funGetUserByCookies()
|
|
||||||
const cek = res.data.member.some((i: any) => i.idUser == login.id && i.isAdmin == true)
|
|
||||||
setAdmin(cek)
|
|
||||||
setData(response.data)
|
setData(response.data)
|
||||||
setIsLoad(false)
|
setIsLoad(false)
|
||||||
setCreator(response.data.createdBy == login.id)
|
setCreator(response.data.isCreator)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
} finally {
|
} finally {
|
||||||
@@ -88,7 +82,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
|
|||||||
{/* <NavbarDetailDiscussion id={id} status={Number(isData?.status)} idDivision={idDivision} /> */}
|
{/* <NavbarDetailDiscussion id={id} status={Number(isData?.status)} idDivision={idDivision} /> */}
|
||||||
<LayoutNavbarNew back={`/division/${param.id}/discussion/`} title="Diskusi "
|
<LayoutNavbarNew back={`/division/${param.id}/discussion/`} title="Diskusi "
|
||||||
menu={
|
menu={
|
||||||
((roleLogin.get() != 'user' && roleLogin.get() != 'coadmin') || isAdmin || isCreator) ?
|
((roleLogin.get() != 'user' && roleLogin.get() != 'coadmin') || adminLogin.get() || isCreator) ?
|
||||||
<ActionIcon variant="light" onClick={() => setOpenDrawer(true)} bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings">
|
<ActionIcon variant="light" onClick={() => setOpenDrawer(true)} bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings">
|
||||||
<HiMenu size={20} color='white' />
|
<HiMenu size={20} color='white' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
|
|||||||
Reference in New Issue
Block a user