/* eslint-disable @typescript-eslint/no-unused-vars */ import { ActionIcon, ButtonCenteredOnly, CenterCustom, InformationBox, OS_Wrapper, PhoneInputCustom, SelectCustom, Spacing, StackCustom, TextAreaCustom, TextCustom, TextInputCustom, } from "@/components"; import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_XLARGE } from "@/constants/constans-value"; import DUMMY_IMAGE from "@/constants/dummy-image-value"; import { DEFAULT_COUNTRY, type CountryData } from "@/constants/countries"; import Portofolio_ButtonCreate from "@/screens/Portofolio/ButtonCreatePortofolio"; import { apiMasterBidangBisnis, apiMasterSubBidangBisnis, } from "@/service/api-client/api-master"; import { IMasterBidangBisnis, IMasterSubBidangBisnis, } from "@/types/Type-Master"; import pickImage from "@/utils/pickImage"; import { Ionicons } from "@expo/vector-icons"; import { useFocusEffect, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useCallback, useState } from "react"; import { Text, View } from "react-native"; import { Avatar } from "react-native-paper"; export function ScreenPortofolioCreate() { const { id } = useLocalSearchParams(); const [selectedCountry, setSelectedCountry] = useState(DEFAULT_COUNTRY); const [phoneNumber, setPhoneNumber] = useState(""); const [data, setData] = useState({ namaBisnis: "", masterBidangBisnisId: "", alamatKantor: "", tlpn: "", deskripsi: "", }); const [imageUri, setImageUri] = useState(null); const [bidangBisnis, setBidangBisnis] = useState([]); const [subBidangBisnis, setSubBidangBisnis] = useState< IMasterSubBidangBisnis[] >([]); const [selectedSubBidang, setSelectedSubBidang] = useState([]); const [listSubBidangSelected, setListSubBidangSelected] = useState([ { id: "", }, ]); const [dataMedsos, setDataMedsos] = useState({ facebook: "", twitter: "", instagram: "", youtube: "", tiktok: "", }); const [isLoadingCreate, setIsLoadingCreate] = useState(false); useFocusEffect( useCallback(() => { onLoadMaster(); onLoadMasterSubBidangBisnis(); }, []), ); const onLoadMaster = async () => { try { const response = await apiMasterBidangBisnis(); setBidangBisnis(response.data); } catch (error) { setBidangBisnis([]); console.log("Error onLoadMasterBidangBisnis", error); } }; const onLoadMasterSubBidangBisnis = async () => { try { const response = await apiMasterSubBidangBisnis({}); setSubBidangBisnis(response.data); } catch (error) { setSubBidangBisnis([]); console.log("Error onLoadMasterSubBidangBisnis", error); } }; const handlerSelectedSubBidang = ({ id }: { id: string }) => { const selectedList = subBidangBisnis?.filter( (item) => (item?.masterBidangBisnisId as any) === id, ); setSelectedSubBidang(selectedList as any[]); }; const handlePhoneChange = (phone: string) => { setPhoneNumber(phone); // Format phone number for API const callingCode = selectedCountry.callingCode; let fixNumber = phone.replace(/\s+/g, "").replace(/^0+/, ""); // Remove country code if already present if (fixNumber.startsWith(callingCode)) { fixNumber = fixNumber.substring(callingCode.length); } // Remove leading zero fixNumber = fixNumber.replace(/^0+/, ""); const realNumber = callingCode + fixNumber; setData({ ...data, tlpn: realNumber }); }; const handleCountryChange = (country: CountryData) => { setSelectedCountry(country); // Re-format with new country code const callingCode = country.callingCode; let fixNumber = phoneNumber.replace(/\s+/g, "").replace(/^0+/, ""); // Remove country code if already present if (fixNumber.startsWith(callingCode)) { fixNumber = fixNumber.substring(callingCode.length); } // Remove leading zero fixNumber = fixNumber.replace(/^0+/, ""); const realNumber = callingCode + fixNumber; setData({ ...data, tlpn: realNumber }); }; return ( } > setData({ ...data, namaBisnis: value })} /> ({ label: item.name, value: item.id, }))} value={data.masterBidangBisnisId} onChange={(value) => { const isSameBidang = data.masterBidangBisnisId === value; if (!isSameBidang) { setListSubBidangSelected([{ id: "" }]); } setData({ ...(data as any), masterBidangBisnisId: value }); handlerSelectedSubBidang({ id: value as string }); }} /> {listSubBidangSelected.map((item, index) => ( { const selectedValues = listSubBidangSelected.map((s) => s.id); return ( option.id === item.id || !selectedValues.includes(option.id) ); }) .map((e: any) => ({ value: e.id, label: e.name, }))} value={item.id || null} onChange={(value) => { const list = _.clone(listSubBidangSelected); list[index].id = value as any; setListSubBidangSelected(list); }} /> ))} { setListSubBidangSelected([ ...listSubBidangSelected, { id: "" }, ]); }} icon={ } size="xl" /> { const list = _.clone(listSubBidangSelected); list.pop(); setListSubBidangSelected(list); }} icon={ } size="xl" /> Nomor Telepon * setData({ ...data, alamatKantor: value }) } /> setData({ ...data, deskripsi: value })} autosize minRows={2} maxRows={5} required showCount maxLength={1000} /> { pickImage({ setImageUri, }); }} > Upload setDataMedsos({ ...dataMedsos, tiktok: value }) } /> setDataMedsos({ ...dataMedsos, facebook: value }) } /> setDataMedsos({ ...dataMedsos, instagram: value }) } /> setDataMedsos({ ...dataMedsos, twitter: value }) } /> setDataMedsos({ ...dataMedsos, youtube: value }) } /> ); }