import React, { useCallback, useEffect, useMemo, useState } from "react";
import { FlatList, Text, TextInput } from "react-native";
import type { CountryItem, PhoneCountrySelectorSheetProps } from "../../types";
import { filterCountries } from "../../utils/phoneCountry";
import { CountryRow } from "./CountryRow";
import { styles } from "./CountryPickerBottomSheet.styles";
import AnimatedBottomSheet from "./AnimatedBottomSheet";
const CountryPickerBottomSheet = ({
visible,
selectedCountryCode,
onClose,
onSelectCountry,
}: PhoneCountrySelectorSheetProps) => {
const [searchText, setSearchText] = useState("");
useEffect(() => {
if (!visible) {
setSearchText("");
}
}, [visible]);
const filteredCountries = useMemo(
() => filterCountries(searchText),
[searchText],
);
const handleSelect = useCallback(
(country: CountryItem) => {
onSelectCountry(country);
setSearchText("");
},
[onSelectCountry],
);
const renderItem = useCallback(
({ item }: { item: CountryItem }) => (
),
[handleSelect, selectedCountryCode],
);
return (
Select Country
item.code}
keyboardShouldPersistTaps="handled"
initialNumToRender={20}
style={styles.list}
renderItem={renderItem}
/>
);
};
export default CountryPickerBottomSheet;