fix : ios dan tampilan

Deskripsi:
- modal crash
- input keyboard over lap
- detail pengumuman text color
- Scroll view tinggi 100 persen
- image user

nb : blm selesai semua
This commit is contained in:
2025-07-30 17:43:08 +08:00
parent 4394219f2a
commit 5898655fac
28 changed files with 545 additions and 441 deletions

View File

@@ -1,8 +1,8 @@
import Styles from "@/constants/Styles";
import { MaterialIcons } from "@expo/vector-icons";
import { Pressable, View } from "react-native";
import Text from "./Text";
import { Dimensions, KeyboardAvoidingView, Platform, Pressable, View } from "react-native";
import Modal from 'react-native-modal';
import Text from "./Text";
type Props = {
isVisible: boolean
@@ -12,28 +12,15 @@ type Props = {
animation?: 'slide' | 'none' | 'fade'
height?: number
backdropPressable?: boolean
keyboard?: boolean
}
export default function DrawerBottom({ isVisible, setVisible, title, children, animation, height, backdropPressable = true }: Props) {
return (
// <Modal
// animationType={animation}
// transparent={true} visible={isVisible}>
// <View style={[Styles.modalBgTransparant]}>
// <View style={[Styles.modalContent, height != undefined && { height: `${height}%` }]}>
// <View style={Styles.titleContainer}>
// <Text style={Styles.textDefault}>{title}</Text>
// <Pressable onPress={() => setVisible(false)}>
// <MaterialIcons name="close" color="black" size={22} />
// </Pressable>
// </View>
// <View style={Styles.contentContainer}>
// {children}
// </View>
// </View>
// </View>
// </Modal>
export default function DrawerBottom({ isVisible, setVisible, title, children, animation, height, backdropPressable = true, keyboard = false }: Props) {
const tinggiScreen = Dimensions.get("window").height;
const tinggiInput = height != undefined ? height : 25
const tinggiFix = tinggiScreen * tinggiInput / 100;
return (
<Modal
animationIn={"slideInUp"}
animationOut={"slideOutDown"}
@@ -49,17 +36,37 @@ export default function DrawerBottom({ isVisible, setVisible, title, children, a
backdropTransitionOutTiming={500}
useNativeDriverForBackdrop={true}
>
<View style={[Styles.modalContentNew, height != undefined ? { height: `${height}%` } : { height: '25%' }]}>
<View style={[Styles.titleContainerNew]}>
<Text style={Styles.textDefault}>{title}</Text>
<Pressable onPress={() => setVisible(false)}>
<MaterialIcons name="close" color="black" size={22} />
</Pressable>
</View>
<View style={Styles.contentContainer}>
{children}
</View>
</View>
{
keyboard ?
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : undefined}
keyboardVerticalOffset={0}
>
<View style={[Styles.modalContentNew, { height: tinggiFix }]}>
<View style={[Styles.titleContainerNew]}>
<Text style={Styles.textDefault}>{title}</Text>
<Pressable onPress={() => setVisible(false)}>
<MaterialIcons name="close" color="black" size={22} />
</Pressable>
</View>
<View style={Styles.contentContainer}>
{children}
</View>
</View>
</KeyboardAvoidingView>
:
<View style={[Styles.modalContentNew, { height: tinggiFix }]}>
<View style={[Styles.titleContainerNew]}>
<Text style={Styles.textDefault}>{title}</Text>
<Pressable onPress={() => setVisible(false)}>
<MaterialIcons name="close" color="black" size={22} />
</Pressable>
</View>
<View style={Styles.contentContainer}>
{children}
</View>
</View>
}
</Modal>
)
}