import { Button, Dialog, TextField, TextFieldRef, TouchableOpacity, View, } from "react-native-ui-lib"; import React, { useEffect, useRef, useState } from "react"; import { PanningDirectionsEnum } from "react-native-ui-lib/src/incubator/panView"; import { Dimensions, Platform, StyleSheet } from "react-native"; import DropModalIcon from "@/assets/svgs/DropModalIcon"; import KeyboardManager from "react-native-keyboard-manager"; import { useFeedbackContext } from "@/contexts/FeedbackContext"; interface IAddFeedbackProps { isVisible: boolean; setIsVisible: (value: boolean) => void; } const AddFeedback = ({ addFeedbackProps, }: { addFeedbackProps: IAddFeedbackProps; }) => { const { addFeedback } = useFeedbackContext(); const [feedback, setFeedback] = useState(""); const [feedbackTitle, setFeedbackTitle] = useState(""); const { width } = Dimensions.get("screen"); const descriptionRef = useRef(null); const titleRef = useRef(null); const isTitleValid = feedbackTitle.trim().length >= 3; useEffect(() => { setFeedback(""); setFeedbackTitle(""); }, [addFeedbackProps.isVisible]); useEffect(() => { if (addFeedbackProps.isVisible) { setTimeout(() => { titleRef?.current?.focus(); }, 500); } }, [addFeedbackProps.isVisible]); useEffect(() => { if (Platform.OS === "ios") KeyboardManager.setEnableAutoToolbar(false); setFeedbackTitle(''); setFeedback(''); }, []); return ( addFeedbackProps.setIsVisible(false)} containerStyle={styles.dialogContainer} visible={addFeedbackProps.isVisible} > ); }; const styles = StyleSheet.create({ dialogContainer: { borderTopRightRadius: 15, borderTopLeftRadius: 15, backgroundColor: "white", padding: 0, paddingTop: 3, margin: 0, }, topBtns: {}, topBtn: { backgroundColor: "white", color: "#05a8b6", }, disabledBtn: { opacity: 0.2, }, title: { fontSize: 22, fontFamily: "Manrope_500Medium", }, description: { fontFamily: "Manrope_400Regular", fontSize: 14, textAlignVertical: "top", }, }); export default AddFeedback;