import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'; import { ScrollView, View, Text, Image, TouchableOpacity, BackHandler, Dimensions, Keyboard, ImageBackground } from 'react-native'; import { FontAwesome, Ionicons } from '@expo/vector-icons'; import config from '../../components/data/config.json' import { styles } from '@/components/style/style'; import { FAB } from 'react-native-elements'; import { useNavigation, NavigationProp, useFocusEffect } from '@react-navigation/native'; import { GestureHandlerRootView, TextInput } from 'react-native-gesture-handler'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { addStorage, cfg, getStorage } from '@/components/lib/cfg'; import { DB } from '@/components/lib/db'; import { LineChart } from 'react-native-chart-kit'; const ProfileSreen = forwardRef((props, ref) => { const [bgHead, setBgHead] = useState(null) const [nama, setNama] = useState('John Doe'); const [Id, setId] = useState('John Doe'); const [formTitle, setFormTitle] = useState('Perusahaan'); const [formArea, setFormArea] = useState('none'); const [email, setEmail] = useState('example@mail.com'); const [inputVal, setInputVal] = useState(''); const [formName, setFormName] = useState(''); const [datatext, setDataText] = useState('example@mail.com'); const inputRef = useRef(null); // Create a ref for the TextInput let heightWIndow = Dimensions.get('window').height + 80; const [contact, setContact] = useState<{ name: string , row: string , icon: string , value: string , type: string | null }[]>([]); const [produk, setProduk] = useState<{ name: string , value: string }[]>([]); const navigation = useNavigation>(); const Contact = (props: any) => { return ( <> {(props?.data || []).map((data: any, key: number) => {data.type == 'ionic' ? : } {data.value ? data.value : data.name} )} ) } useFocusEffect( React.useCallback(() => { callData(); const onBackPress = () => { navigation.navigate("home"); return true; // Prevent default behavior (exit app) }; BackHandler.addEventListener('hardwareBackPress', onBackPress); navigation.setOptions({ headerLeft: () => null }); // Remove back button return () => { BackHandler.removeEventListener('hardwareBackPress', onBackPress); }; }, [navigation, callData]) ); const callData = async () => { let data: any = await AsyncStorage.getItem('login'); data = JSON.parse(data); data = data.length>0?data[0]:{}; let [nameCompany]: any = await DB(`SELECT name FROM res_company WHERE id = ${data?.company_id}`); console.log(data) setId(data?.id) setNama(data?.name) setEmail("Salesman") let country = 'Indonesia'; if (data?.country_id) { const negara: any = await getStorage('negara') const [{ name }] = negara.filter((s: any) => s?.id == data?.country_id); country = name; } setContact([ { name: "Nama", row: "name", icon: "mail-outline", value: data?.work_email, type: "ionic" } , { name: "Email", row: "email", icon: "logo-whatsapp", value: data?.work_phone, type: "ionic" } , { name: "Nama Perusahaan", row: "company_id", icon: "location-outline", value: nameCompany?.name, type: "ionic" } , { name: "Alamat", row: "company_id", icon: "location-outline", value: data?.private_street, type: "ionic" } ]); }; useImperativeHandle(ref, () => ({ loadData() { console.log('Data di ContactScreen sedang di-load...'); // Lakukan operasi loading data di sini }, })); useEffect(() => { (function () { callData() })(); }, []) const customerBack = function () { navigation.navigate('home') } const fabAction = function () { // console.log("action") } const onScroll = (event: any) => { const yOffset = event.nativeEvent.contentOffset.y; if (yOffset > 190) { setBgHead(config.color.primary) } else { setBgHead(null) } }; return ( <> {nama.toLocaleUpperCase()} {email} `rgba(255, 255, 255, ${opacity})`, labelColor: (opacity = 1) => `rgba(255, 255, 255, ${opacity})`, style: { borderRadius: 16 }, propsForDots: { r: "6", strokeWidth: "2", stroke: "#ffa726" }, }} bezier style={{ marginVertical: 8, borderRadius: 16, }} /> SALES TODAY 200 OVERAL SALES 200 RANKING 1 st Detail Information ); }); export default ProfileSreen;