upd: fitur homee
Deskripsi: - tampilan fitur berdasarkan role user login No Issues;
This commit is contained in:
@@ -1,11 +1,27 @@
|
|||||||
import ButtonBackHeader from "@/components/buttonBackHeader";
|
import ButtonBackHeader from "@/components/buttonBackHeader";
|
||||||
import { ButtonFiturMenu } from "@/components/buttonFiturMenu";
|
import { ButtonFiturMenu } from "@/components/buttonFiturMenu";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
|
import { apiGetProfile } from "@/lib/api";
|
||||||
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import { AntDesign, Entypo, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons";
|
import { AntDesign, Entypo, Ionicons, MaterialCommunityIcons, MaterialIcons } from "@expo/vector-icons";
|
||||||
import { router, Stack } from "expo-router";
|
import { router, Stack } from "expo-router";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
import { SafeAreaView, View } from "react-native";
|
import { SafeAreaView, View } from "react-native";
|
||||||
|
|
||||||
export default function Feature() {
|
export default function Feature() {
|
||||||
|
const { token, decryptToken } = useAuthSession()
|
||||||
|
const [roleUser, setRoleUser] = useState('user')
|
||||||
|
|
||||||
|
async function handleUserLogin() {
|
||||||
|
const hasil = await decryptToken(String(token?.current))
|
||||||
|
const respons = await apiGetProfile({ id: hasil })
|
||||||
|
setRoleUser(respons.data.idUserRole)
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
handleUserLogin()
|
||||||
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SafeAreaView>
|
<SafeAreaView>
|
||||||
<Stack.Screen
|
<Stack.Screen
|
||||||
@@ -22,15 +38,26 @@ export default function Feature() {
|
|||||||
<ButtonFiturMenu icon={<MaterialIcons name="campaign" size={35} color="black" />} text="Pengumuman" onPress={() => { router.push('/announcement') }} />
|
<ButtonFiturMenu icon={<MaterialIcons name="campaign" size={35} color="black" />} text="Pengumuman" onPress={() => { router.push('/announcement') }} />
|
||||||
<ButtonFiturMenu icon={<Ionicons name="chatbubbles-sharp" size={35} color="black" />} text="Diskusi" onPress={() => { router.push('/discussion?active=true') }} />
|
<ButtonFiturMenu icon={<Ionicons name="chatbubbles-sharp" size={35} color="black" />} text="Diskusi" onPress={() => { router.push('/discussion?active=true') }} />
|
||||||
</View>
|
</View>
|
||||||
<View style={[Styles.rowSpaceBetween, Styles.mb15]}>
|
<View style={[Styles.rowSpaceBetween, Styles.mb15, (roleUser != 'supadmin' && roleUser != 'developer' && roleUser != 'cosupadmin' && Styles.w40)]}>
|
||||||
<ButtonFiturMenu icon={<MaterialIcons name="groups" size={35} color="black" />} text="Anggota" onPress={() => { router.push('/member?active=true') }} />
|
<ButtonFiturMenu icon={<MaterialIcons name="groups" size={35} color="black" />} text="Anggota" onPress={() => { router.push('/member?active=true') }} />
|
||||||
<ButtonFiturMenu icon={<MaterialCommunityIcons name="account-tie" size={35} color="black" />} text="Jabatan" onPress={() => { router.push('/position?active=true') }} />
|
<ButtonFiturMenu icon={<MaterialCommunityIcons name="account-tie" size={35} color="black" />} text="Jabatan" onPress={() => { router.push('/position?active=true') }} />
|
||||||
<ButtonFiturMenu icon={<AntDesign name="tags" size={35} color="black" />} text="Lembaga Desa" onPress={() => { router.push('/group?active=true') }} />
|
{
|
||||||
<ButtonFiturMenu icon={<Ionicons name="color-palette-sharp" size={35} color="black" />} text="Tema" onPress={() => { }} />
|
roleUser == "cosupadmin" && <ButtonFiturMenu icon={<Entypo name="image-inverted" size={35} color="black" />} text="Banner" onPress={() => { router.push('/banner') }} />
|
||||||
</View>
|
}
|
||||||
<View style={[Styles.rowSpaceBetween, Styles.mb15]}>
|
{
|
||||||
<ButtonFiturMenu icon={<Entypo name="image-inverted" size={35} color="black" />} text="Banner" onPress={() => { router.push('/banner') }} />
|
(roleUser == "supadmin" || roleUser == "developer") &&
|
||||||
|
<>
|
||||||
|
<ButtonFiturMenu icon={<AntDesign name="tags" size={35} color="black" />} text="Lembaga Desa" onPress={() => { router.push('/group?active=true') }} />
|
||||||
|
<ButtonFiturMenu icon={<Ionicons name="color-palette-sharp" size={35} color="black" />} text="Tema" onPress={() => { }} />
|
||||||
|
</>
|
||||||
|
}
|
||||||
</View>
|
</View>
|
||||||
|
{
|
||||||
|
(roleUser == "supadmin" || roleUser == "developer") &&
|
||||||
|
<View style={[Styles.rowSpaceBetween, Styles.mb15]}>
|
||||||
|
<ButtonFiturMenu icon={<Entypo name="image-inverted" size={35} color="black" />} text="Banner" onPress={() => { router.push('/banner') }} />
|
||||||
|
</View>
|
||||||
|
}
|
||||||
</View>
|
</View>
|
||||||
</SafeAreaView>
|
</SafeAreaView>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -173,6 +173,12 @@ const Styles = StyleSheet.create({
|
|||||||
w50: {
|
w50: {
|
||||||
width: '50%'
|
width: '50%'
|
||||||
},
|
},
|
||||||
|
w40: {
|
||||||
|
width: '40%'
|
||||||
|
},
|
||||||
|
w30: {
|
||||||
|
width: '30%'
|
||||||
|
},
|
||||||
round30: {
|
round30: {
|
||||||
borderRadius: 30
|
borderRadius: 30
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user