/* eslint-disable @typescript-eslint/no-unused-vars */ import { ActionIcon, AvatarComp, BaseBox, ButtonCenteredOnly, CenterCustom, Grid, InformationBox, SelectCustom, Spacing, StackCustom, TextAreaCustom, TextCustom, TextInputCustom, ViewWrapper, } from "@/components"; import { IconPlus } from "@/components/_Icon"; import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_XLARGE } from "@/constants/constans-value"; import DUMMY_IMAGE from "@/constants/dummy-image-value"; 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 { Image } from "expo-image"; import { useFocusEffect, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useCallback, useEffect, useState } from "react"; import { Text, TouchableOpacity, View } from "react-native"; import PhoneInput, { ICountry } from "react-native-international-phone-number"; import { Avatar } from "react-native-paper"; export default function PortofolioCreate() { const { id } = useLocalSearchParams(); const [selectedCountry, setSelectedCountry] = useState(null); const [inputValue, setInputValue] = 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); function handleInputValue(phoneNumber: string) { setInputValue(phoneNumber); const callingCode = selectedCountry?.callingCode.replace(/^\+/, "") || ""; let fixNumber = inputValue.replace(/\s+/g, "").replace(/^0+/, ""); const realNumber = callingCode + fixNumber; setData({ ...data, tlpn: realNumber }); } function handleSelectedCountry(country: ICountry) { setSelectedCountry(country); } 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 onLoadMasterBidangBisnis", error); } }; const handlerSelectedSubBidang = ({ id }: { id: string }) => { const selectedList = subBidangBisnis?.filter( (item) => (item?.masterBidangBisnisId as any) === id ); setSelectedSubBidang(selectedList as any[]); }; return ( } > {/* Portofolio Create {id} */} 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 || // biarkan tetap muncul kalau ini valuenya sendiri !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" /> {/* ({ label: item.name, value: item.id, }))} value={null} onChange={(value) => { setData({ ...(data as any), masterBidangBisnisId: value }); handlerSelectedSubBidang({ id: value as string }); }} /> */} {/* { setListSubBidangSelected([...listSubBidangSelected, { id: "" }]); }} > Tambah Pilihan */} {/* {JSON.stringify(bidangBisnis, null, 2)} */} Nomor Telepon * setData({ ...data, alamatKantor: value }) } /> setData({ ...data, deskripsi: value })} autosize minRows={2} maxRows={5} required showCount maxLength={1000} /> {/* Logo */} { pickImage({ setImageUri, }); }} > Upload {/* Social Media */} setDataMedsos({ ...dataMedsos, tiktok: value }) } /> setDataMedsos({ ...dataMedsos, facebook: value }) } /> setDataMedsos({ ...dataMedsos, instagram: value }) } /> setDataMedsos({ ...dataMedsos, twitter: value }) } /> setDataMedsos({ ...dataMedsos, youtube: value }) } /> ); }