diff --git a/app/(application)/discussion/[id].tsx b/app/(application)/discussion/[id].tsx
index 2d846d7..101e2e7 100644
--- a/app/(application)/discussion/[id].tsx
+++ b/app/(application)/discussion/[id].tsx
@@ -153,14 +153,14 @@ export default function DetailDiscussionGeneral() {
}
- title={data?.title}
+ title={data?.title + " " + data?.createdAt}
subtitle={
!data?.isActive ?
:
}
- rightTopInfo={data?.createdAt}
+ // rightTopInfo={data?.createdAt}
desc={data?.desc}
leftBottomInfo={
@@ -168,6 +168,11 @@ export default function DetailDiscussionGeneral() {
{dataKomentar.length} Komentar
}
+ rightBottomInfo={
+
+ {data?.createdAt}
+
+ }
/>
}
@@ -210,7 +215,7 @@ export default function DetailDiscussionGeneral() {
disable={(data?.status === 2 || !data?.isActive || (!memberDiscussion && (entityUser.role == "user" || entityUser.role == "coadmin")))}
type="default"
round
- placeholder="Kirim Komentar2"
+ placeholder="Kirim Komentar"
bg="white"
onChange={setKomentar}
value={komentar}
diff --git a/app/(application)/discussion/index.tsx b/app/(application)/discussion/index.tsx
index 9fc4f8c..4fb07fa 100644
--- a/app/(application)/discussion/index.tsx
+++ b/app/(application)/discussion/index.tsx
@@ -98,22 +98,26 @@ export default function Discussion() {
return (
-
- { setStatus("true") }}
- label="Aktif"
- icon={}
- n={2} />
- { setStatus("false") }}
- label="Arsip"
- icon={}
- n={2} />
-
+ {
+ entityUser.role != "user" && entityUser.role != "coadmin" &&
+
+ { setStatus("true") }}
+ label="Aktif"
+ icon={}
+ n={2} />
+ { setStatus("false") }}
+ label="Arsip"
+ icon={}
+ n={2} />
+
+ }
+
{
(entityUser.role == "supadmin" || entityUser.role == "developer") &&
diff --git a/app/(application)/discussion/member/[id].tsx b/app/(application)/discussion/member/[id].tsx
index 0f527e2..0f16c49 100644
--- a/app/(application)/discussion/member/[id].tsx
+++ b/app/(application)/discussion/member/[id].tsx
@@ -135,22 +135,25 @@ export default function MemberDiscussionDetail() {
router.push(`/member/${chooseUser.idUser}`)
}}
/>
+ {
+ entityUser.role != "user" && entityUser.role != "coadmin" &&
+ }
+ title="Keluarkan"
+ onPress={() => {
+ setModal(false)
+ AlertKonfirmasi({
+ title: 'Konfirmasi',
+ desc: 'Apakah Anda yakin ingin mengeluarkan anggota?',
+ onPress: () => {
+ handleDeleteUser()
+ }
+ })
- }
- title="Keluarkan"
- onPress={() => {
- setModal(false)
- AlertKonfirmasi({
- title: 'Konfirmasi',
- desc: 'Apakah Anda yakin ingin mengeluarkan anggota?',
- onPress: () => {
- handleDeleteUser()
- }
- })
+ }}
+ />
+ }
- }}
- />
diff --git a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx
index c6d494a..35c32c8 100644
--- a/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx
+++ b/app/(application)/division/[id]/(fitur-division)/discussion/index.tsx
@@ -7,7 +7,7 @@ import SkeletonContent from "@/components/skeletonContent";
import Text from "@/components/Text";
import { ConstEnv } from "@/constants/ConstEnv";
import Styles from "@/constants/Styles";
-import { apiGetDiscussion } from "@/lib/api";
+import { apiGetDiscussion, apiGetDivisionOneFeature } from "@/lib/api";
import { useAuthSession } from "@/providers/AuthProvider";
import { AntDesign, Feather, Ionicons } from "@expo/vector-icons";
import { router, useLocalSearchParams } from "expo-router";
@@ -41,6 +41,30 @@ export default function DiscussionDivision() {
const [waiting, setWaiting] = useState(false)
const [status, setStatus] = useState<'true' | 'false'>('true')
const [refreshing, setRefreshing] = useState(false)
+ const [isMemberDivision, setIsMemberDivision] = useState(false)
+ const [isAdminDivision, setIsAdminDivision] = useState(false)
+ const entityUser = useSelector((state: any) => state.user)
+
+ async function handleCheckMember() {
+ try {
+ const hasil = await decryptToken(String(token?.current));
+ const response = await apiGetDivisionOneFeature({
+ id,
+ user: hasil,
+ cat: "check-member",
+ });
+
+ const response2 = await apiGetDivisionOneFeature({
+ id,
+ user: hasil,
+ cat: "check-admin",
+ });
+ setIsMemberDivision(response.data);
+ setIsAdminDivision(response2.data);
+ } catch (error) {
+ console.error(error);
+ }
+ }
async function handleLoad(loading: boolean, thisPage: number) {
try {
@@ -80,6 +104,10 @@ export default function DiscussionDivision() {
}, 1000);
}
+ useEffect(() => {
+ handleCheckMember()
+ }, [])
+
const handleRefresh = async () => {
setRefreshing(true)
handleLoad(false, 1)
@@ -101,25 +129,29 @@ export default function DiscussionDivision() {
return (
-
-
- { setStatus("true") }}
- label="Aktif"
- icon={}
- n={2} />
- { setStatus("false") }}
- label="Arsip"
- icon={}
- n={2} />
+ {
+ ((entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) &&
+
+
+ { setStatus("true") }}
+ label="Aktif"
+ icon={}
+ n={2} />
+ { setStatus("false") }}
+ label="Arsip"
+ icon={}
+ n={2} />
+
+
-
-
+ }
+
{
diff --git a/app/(application)/division/[id]/info.tsx b/app/(application)/division/[id]/info.tsx
index 055ced6..c87979c 100644
--- a/app/(application)/division/[id]/info.tsx
+++ b/app/(application)/division/[id]/info.tsx
@@ -11,7 +11,7 @@ import Text from "@/components/Text"
import { ColorsStatus } from "@/constants/ColorsStatus"
import { ConstEnv } from "@/constants/ConstEnv"
import Styles from "@/constants/Styles"
-import { apiDeleteMemberDivision, apiGetDivisionOneDetail, apiUpdateStatusAdminDivision } from "@/lib/api"
+import { apiDeleteMemberDivision, apiGetDivisionOneDetail, apiGetDivisionOneFeature, apiUpdateStatusAdminDivision } from "@/lib/api"
import { useAuthSession } from "@/providers/AuthProvider"
import { Feather, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons"
import { router, Stack, useLocalSearchParams } from "expo-router"
@@ -39,6 +39,7 @@ type PropsMember = {
}
export default function InformationDivision() {
+ const entityUser = useSelector((state: any) => state.user)
const { id } = useLocalSearchParams<{ id: string }>()
const [isModal, setModal] = useState(false)
const { token, decryptToken } = useAuthSession()
@@ -48,6 +49,8 @@ export default function InformationDivision() {
const update = useSelector((state: any) => state.divisionUpdate)
const arrSkeleton = Array.from({ length: 5 }, (_, index) => index)
const [loading, setLoading] = useState(true)
+ const [isMemberDivision, setIsMemberDivision] = useState(false)
+ const [isAdminDivision, setIsAdminDivision] = useState(false)
const [dataMemberChoose, setDataMemberChoose] = useState({
id: '',
name: '',
@@ -113,12 +116,34 @@ export default function InformationDivision() {
}
}
+ async function handleCheckMember() {
+ try {
+ const hasil = await decryptToken(String(token?.current));
+ const response = await apiGetDivisionOneFeature({
+ id,
+ user: hasil,
+ cat: "check-member",
+ });
+
+ const response2 = await apiGetDivisionOneFeature({
+ id,
+ user: hasil,
+ cat: "check-admin",
+ });
+ setIsMemberDivision(response.data);
+ setIsAdminDivision(response2.data);
+ } catch (error) {
+ console.error(error);
+ }
+ }
+
useEffect(() => {
handleLoad(false)
}, [refresh, update])
useEffect(() => {
handleLoad(true)
+ handleCheckMember()
}, [])
function handleChooseMember(item: PropsMember) {
@@ -133,7 +158,7 @@ export default function InformationDivision() {
headerLeft: () => { router.back() }} />,
headerTitle: 'Informasi Divisi',
headerTitleAlign: 'center',
- headerRight: () => ,
+ headerRight: () => ((entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) && ,
}}
/>
@@ -161,6 +186,7 @@ export default function InformationDivision() {
{dataMember.length} Anggota
{
+ ((entityUser.role != "user" && entityUser.role != "coadmin") || isAdminDivision) &&
dataDetail?.isActive && (
{ router.push(`/division/${id}/add-member`) }}
@@ -188,7 +214,7 @@ export default function InformationDivision() {
{ dataDetail?.isActive && handleChooseMember(item) }}
+ onPress={() => { dataDetail?.isActive && (isAdminDivision || (entityUser.role != "user" && entityUser.role != "coadmin")) && handleChooseMember(item) }}
icon={
}
diff --git a/app/(application)/position/index.tsx b/app/(application)/position/index.tsx
index d3d38c1..3bde226 100644
--- a/app/(application)/position/index.tsx
+++ b/app/(application)/position/index.tsx
@@ -189,7 +189,10 @@ export default function Index() {
return (
{ handleChooseData(item.id, item.name, item.isActive, item.idGroup) }}
+ onPress={() => {
+ entityUser.role != "user" &&
+ handleChooseData(item.id, item.name, item.isActive, item.idGroup)
+ }}
borderType="all"
icon={
diff --git a/components/discussion_general/headerDiscussionGeneral.tsx b/components/discussion_general/headerDiscussionGeneral.tsx
index 8b7e6b9..8b8a88d 100644
--- a/components/discussion_general/headerDiscussionGeneral.tsx
+++ b/components/discussion_general/headerDiscussionGeneral.tsx
@@ -16,7 +16,10 @@ export default function HeaderDiscussionGeneral() {
return (
<>
- { setVisible(true) }} />
+ {
+ entityUser.role != "user" && entityUser.role != "coadmin" &&
+ { setVisible(true) }} />
+ }
- { setVisible(true) }} />
+ {
+ entityUser.role != "user" &&
+ { setVisible(true) }} />
+ }
setVisible(false)} title="Menu">