Spaces:
Paused
Paused
| import * as React from "react"; | |
| import { getCountryFromIP } from "./ip_lookup"; | |
| interface CountryCellProps { | |
| ipAddress: string | null; | |
| } | |
| export const CountryCell: React.FC<CountryCellProps> = ({ ipAddress }) => { | |
| const [country, setCountry] = React.useState<string>("-"); | |
| React.useEffect(() => { | |
| if (!ipAddress) return; | |
| let mounted = true; | |
| getCountryFromIP(ipAddress) | |
| .then(result => { | |
| if (mounted) setCountry(result); | |
| }) | |
| .catch(() => { | |
| if (mounted) setCountry("-"); | |
| }); | |
| return () => { mounted = false }; | |
| }, [ipAddress]); | |
| return <span>{country}</span>; | |
| }; |