import React, { FC, CSSProperties, memo } from 'react'; import cn from 'classnames'; import { Icon, TextEllipsis } from 'UI'; import { Tooltip } from 'antd'; import { countries } from 'App/constants'; import CountryFlagIcon from 'Shared/CountryFlagIcon'; interface CountryFlagProps { userCity?: string; userState?: string; country?: string; className?: string; style?: CSSProperties; width?: number; height?: number; showLabel?: boolean; } const CountryFlag: FC = ({ userCity = '', userState = '', country = '', className = '', style = {}, width = 22, height = 15, showLabel = false }) => { const knownCountry = !!country && country !== 'UN'; const countryFlag = knownCountry ? country.toLowerCase() : ''; const countryName = knownCountry ? countries[country] : 'Unknown Country'; const displayGeoInfo = userCity || userState || countryName; // display full geo info, check each part if not null, display as string const fullGeoInfo = [userCity, userState, countryName].filter(Boolean).join(', '); const renderUnknownCountry = (
Unknown Country
); const renderGeoInfo = displayGeoInfo && ( ); return (
{knownCountry ? (
) : ( renderUnknownCountry )} {showLabel && renderGeoInfo}
); }; CountryFlag.displayName = 'CountryFlag'; export default memo(CountryFlag);