pleroma/app/soapbox/components/ui/phone-input/country-code-dropdown.tsx

35 lines
861 B
TypeScript
Raw Normal View History

import React from 'react';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
import { COUNTRY_CODES, CountryCode } from 'soapbox/utils/phone';
import type { Menu } from 'soapbox/components/dropdown_menu';
interface ICountryCodeDropdown {
countryCode: CountryCode,
onChange(countryCode: CountryCode): void,
}
/** Dropdown menu to select a country code. */
const CountryCodeDropdown: React.FC<ICountryCodeDropdown> = ({ countryCode, onChange }) => {
const handleMenuItem = (code: CountryCode) => {
return () => {
onChange(code);
};
};
const menu: Menu = COUNTRY_CODES.map(code => ({
2022-07-13 10:26:07 -07:00
text: <>+{code}</>,
action: handleMenuItem(code),
}));
return (
<DropdownMenu items={menu}>
2022-07-13 10:26:07 -07:00
<button className='px-4'>+{countryCode}</button>
</DropdownMenu>
);
};
export default CountryCodeDropdown;