function CountrySelectWithIcon({
	value,
	options,
	className,
	iconComponent: Icon,
	getIconAspectRatio,
	arrowComponent: Arrow = DefaultArrowComponent,
	unicodeFlags,
	...rest
}) {
	const selectedOption = useMemo(() => {
		return getSelectedOption(options, value)
	}, [options, value])

	return (
		<div className="PhoneInputCountry">
			<CountrySelect
				{...rest}
				value={value}
				options={options}
				className={classNames('PhoneInputCountrySelect', className)}
			/>

			{/* Either a Unicode flag icon or an SVG flag icon. */}
			{selectedOption && (
				unicodeFlags && value ? (
					<div className="PhoneInputCountryIconUnicode">
						{getUnicodeFlagIcon(value)}
					</div>
				) : (
					<Icon
						aria-hidden
						country={value}
						label={selectedOption.label}
						aspectRatio={unicodeFlags ? 1 : undefined}
					/>
				)
			)}

			<Arrow/>
		</div>
	)
}
A function of `value: string`.
Updates the `value` property.