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() { export default function CreateDiscussionGeneral() {
const { token, decryptToken } = useAuthSession() 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 [chooseGroup, setChooseGroup] = useState({ val: "", label: "" });
const [valChoose, setValChoose] = useState("") const [valChoose, setValChoose] = useState("")
const [valSelect, setValSelect] = useState<"group" | "member">("group"); const [valSelect, setValSelect] = useState<"group" | "member">("group");
@@ -132,6 +134,9 @@ export default function CreateDiscussionGeneral() {
/> />
<ScrollView> <ScrollView>
<View style={[Styles.p15, Styles.mb100]}> <View style={[Styles.p15, Styles.mb100]}>
{
(entityUser.role == "supadmin" ||
entityUser.role == "developer") && (
<SelectForm <SelectForm
label="Lembaga Desa" label="Lembaga Desa"
placeholder="Pilih Lembaga Desa" placeholder="Pilih Lembaga Desa"
@@ -142,7 +147,11 @@ export default function CreateDiscussionGeneral() {
setValSelect("group"); setValSelect("group");
setSelect(true); setSelect(true);
}} }}
error={error.group}
errorText="Lembaga Desa tidak boleh kosong"
/> />
)
}
<InputForm <InputForm
label="Judul" label="Judul"
type="default" type="default"
@@ -164,6 +173,7 @@ export default function CreateDiscussionGeneral() {
<ButtonSelect <ButtonSelect
value="Pilih Anggota" value="Pilih Anggota"
onPress={() => { onPress={() => {
if (entityUser.role == "supadmin" || entityUser.role == "developer") {
if (chooseGroup.val != "") { if (chooseGroup.val != "") {
setSelect(true); setSelect(true);
setValSelect("member"); setValSelect("member");
@@ -173,6 +183,13 @@ export default function CreateDiscussionGeneral() {
ToastAndroid.SHORT ToastAndroid.SHORT
); );
} }
}else{
validationForm('group', userLogin.idGroup, userLogin.group);
setValChoose(userLogin.idGroup)
setSelect(true);
setValSelect("member");
}
}} }}
/> />
{ {

View File

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