upd: pembatasan user role pada diskusi umum

This commit is contained in:
2025-07-10 11:44:49 +08:00
parent 82e63a14bb
commit 879a4d3ac3
2 changed files with 48 additions and 25 deletions

View File

@@ -19,6 +19,8 @@ import { useDispatch, useSelector } from "react-redux";
export default function CreateDiscussionGeneral() {
const { token, decryptToken } = useAuthSession()
const entityUser = useSelector((state: any) => state.user);
const userLogin = useSelector((state: any) => state.entities)
const [chooseGroup, setChooseGroup] = useState({ val: "", label: "" });
const [valChoose, setValChoose] = useState("")
const [valSelect, setValSelect] = useState<"group" | "member">("group");
@@ -132,17 +134,24 @@ export default function CreateDiscussionGeneral() {
/>
<ScrollView>
<View style={[Styles.p15, Styles.mb100]}>
<SelectForm
label="Lembaga Desa"
placeholder="Pilih Lembaga Desa"
value={chooseGroup.label}
required
onPress={() => {
setValChoose(chooseGroup.val);
setValSelect("group");
setSelect(true);
}}
/>
{
(entityUser.role == "supadmin" ||
entityUser.role == "developer") && (
<SelectForm
label="Lembaga Desa"
placeholder="Pilih Lembaga Desa"
value={chooseGroup.label}
required
onPress={() => {
setValChoose(chooseGroup.val);
setValSelect("group");
setSelect(true);
}}
error={error.group}
errorText="Lembaga Desa tidak boleh kosong"
/>
)
}
<InputForm
label="Judul"
type="default"
@@ -164,15 +173,23 @@ export default function CreateDiscussionGeneral() {
<ButtonSelect
value="Pilih Anggota"
onPress={() => {
if (chooseGroup.val != "") {
if (entityUser.role == "supadmin" || entityUser.role == "developer") {
if (chooseGroup.val != "") {
setSelect(true);
setValSelect("member");
} else {
ToastAndroid.show(
"Pilih Lembaga Desa terlebih dahulu",
ToastAndroid.SHORT
);
}
}else{
validationForm('group', userLogin.idGroup, userLogin.group);
setValChoose(userLogin.idGroup)
setSelect(true);
setValSelect("member");
} else {
ToastAndroid.show(
"Pilih Lembaga Desa terlebih dahulu",
ToastAndroid.SHORT
);
}
}}
/>
{

View File

@@ -3,6 +3,7 @@ import { AntDesign } from "@expo/vector-icons"
import { router } from "expo-router"
import { useState } from "react"
import { View } from "react-native"
import { useSelector } from "react-redux"
import ButtonMenuHeader from "../buttonMenuHeader"
import DrawerBottom from "../drawerBottom"
import MenuItemRow from "../menuItemRow"
@@ -11,6 +12,8 @@ import ModalFilter from "../modalFilter"
export default function HeaderDiscussionGeneral() {
const [isVisible, setVisible] = useState(false)
const [isFilter, setFilter] = useState(false)
const entityUser = useSelector((state: any) => state.user)
return (
<>
<ButtonMenuHeader onPress={() => { setVisible(true) }} />
@@ -24,14 +27,17 @@ export default function HeaderDiscussionGeneral() {
router.push('/discussion/create')
}}
/>
<MenuItemRow
icon={<AntDesign name="filter" color="black" size={25} />}
title="Filter"
onPress={() => {
setVisible(false)
setFilter(true)
}}
/>
{
(entityUser.role == 'supadmin' || entityUser.role == 'developer') &&
<MenuItemRow
icon={<AntDesign name="filter" color="black" size={25} />}
title="Filter"
onPress={() => {
setVisible(false)
setFilter(true)
}}
/>
}
</View>
</DrawerBottom>
<ModalFilter close={() => { setFilter(false) }} open={isFilter} page="discussion" />