upd : banner
Deskripsi: - home > ketika tidak ada data banner - banner list > ketika tidak ada data banner No Issues
This commit is contained in:
@@ -5,6 +5,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"
|
|||||||
import DrawerBottom from "@/components/drawerBottom"
|
import DrawerBottom from "@/components/drawerBottom"
|
||||||
import MenuItemRow from "@/components/menuItemRow"
|
import MenuItemRow from "@/components/menuItemRow"
|
||||||
import ModalLoading from "@/components/modalLoading"
|
import ModalLoading from "@/components/modalLoading"
|
||||||
|
import Text from "@/components/Text"
|
||||||
import { ConstEnv } from "@/constants/ConstEnv"
|
import { ConstEnv } from "@/constants/ConstEnv"
|
||||||
import Styles from "@/constants/Styles"
|
import Styles from "@/constants/Styles"
|
||||||
import { apiDeleteBanner, apiGetBanner } from "@/lib/api"
|
import { apiDeleteBanner, apiGetBanner } from "@/lib/api"
|
||||||
@@ -121,26 +122,36 @@ export default function BannerList() {
|
|||||||
}
|
}
|
||||||
style={[Styles.h100]}
|
style={[Styles.h100]}
|
||||||
>
|
>
|
||||||
<View style={[Styles.p15, Styles.mb100]}>
|
{
|
||||||
{entities.map((index: any, key: number) => (
|
entities.length > 0
|
||||||
<BorderBottomItem
|
?
|
||||||
key={key}
|
<View style={[Styles.p15, Styles.mb100]}>
|
||||||
onPress={() => {
|
{entities.map((index: any, key: number) => (
|
||||||
setDataId(index.id)
|
<BorderBottomItem
|
||||||
setSelectFile(index)
|
key={key}
|
||||||
setModal(true)
|
onPress={() => {
|
||||||
}}
|
setDataId(index.id)
|
||||||
borderType="all"
|
setSelectFile(index)
|
||||||
icon={
|
setModal(true)
|
||||||
<Image
|
}}
|
||||||
source={{ uri: `${ConstEnv.url_storage}/files/${index.image}` }}
|
borderType="all"
|
||||||
style={[Styles.imgListBanner]}
|
icon={
|
||||||
|
<Image
|
||||||
|
source={{ uri: `${ConstEnv.url_storage}/files/${index.image}` }}
|
||||||
|
style={[Styles.imgListBanner]}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
title={index.title}
|
||||||
/>
|
/>
|
||||||
}
|
))}
|
||||||
title={index.title}
|
</View>
|
||||||
/>
|
:
|
||||||
))}
|
<View style={[Styles.p15, Styles.mb100]}>
|
||||||
</View>
|
<Text style={[Styles.textDefault, Styles.cGray, { textAlign: 'center' }]}>Tidak ada data</Text>
|
||||||
|
</View>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<DrawerBottom animation="slide" isVisible={isModal} setVisible={() => setModal(false)} title="Menu">
|
<DrawerBottom animation="slide" isVisible={isModal} setVisible={() => setModal(false)} title="Menu">
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { Dimensions, Image, View } from "react-native";
|
|||||||
import { useSharedValue } from "react-native-reanimated";
|
import { useSharedValue } from "react-native-reanimated";
|
||||||
import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
|
import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
|
import Text from "../Text";
|
||||||
|
|
||||||
export default function CaraouselHome() {
|
export default function CaraouselHome() {
|
||||||
const { decryptToken, token } = useAuthSession()
|
const { decryptToken, token } = useAuthSession()
|
||||||
@@ -21,7 +22,13 @@ export default function CaraouselHome() {
|
|||||||
|
|
||||||
async function handleBannerView() {
|
async function handleBannerView() {
|
||||||
const hasil = await decryptToken(String(token?.current))
|
const hasil = await decryptToken(String(token?.current))
|
||||||
apiGetBanner({ user: hasil }).then((data) => dispatch(setEntities(data.data)))
|
apiGetBanner({ user: hasil }).then((data) => {
|
||||||
|
if (data.data.length > 0) {
|
||||||
|
dispatch(setEntities(data.data))
|
||||||
|
} else {
|
||||||
|
dispatch(setEntities([]))
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleUser() {
|
async function handleUser() {
|
||||||
@@ -40,22 +47,30 @@ export default function CaraouselHome() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={[Styles.mv15]}>
|
<View style={[Styles.mv15]}>
|
||||||
<Carousel
|
{
|
||||||
ref={ref}
|
entities.length > 0 ?
|
||||||
width={width}
|
<Carousel
|
||||||
height={width / 2.5}
|
ref={ref}
|
||||||
data={entities}
|
width={width}
|
||||||
loop={true}
|
height={width / 2.5}
|
||||||
autoPlay={true}
|
data={entities}
|
||||||
autoPlayInterval={5000}
|
loop={true}
|
||||||
onProgressChange={progress}
|
autoPlay={true}
|
||||||
renderItem={({ index }) => (
|
autoPlayInterval={5000}
|
||||||
<Image
|
onProgressChange={progress}
|
||||||
source={{ uri: `${ConstEnv.url_storage}/files/${entities[index].image}` }}
|
renderItem={({ index }) => (
|
||||||
style={[Styles.caraoselContent]}
|
<Image
|
||||||
|
source={{ uri: `${ConstEnv.url_storage}/files/${entities[index].image}` }}
|
||||||
|
style={[Styles.caraoselContent]}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
/>
|
/>
|
||||||
)}
|
:
|
||||||
/>
|
<View style={[Styles.caraoselContent, { height: width / 2.5 }]}>
|
||||||
|
<Text style={[Styles.textDefault, Styles.cWhite, { textAlign: 'center' }]}>BANNER</Text>
|
||||||
|
</View>
|
||||||
|
}
|
||||||
|
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user