UNPKG

ip-info-react

Version:

This package lets you get information about your user's ip address.

2 lines (1 loc) 1.11 kB
import l,{createContext as _,useEffect as o,useMemo as p,useState as c}from"react";var f={ip:void 0,network:void 0,version:void 0,city:void 0,region:void 0,region_code:void 0,country:void 0,country_name:void 0,country_code:void 0,country_code_iso3:void 0,country_capital:void 0,country_tld:void 0,continent_code:void 0,in_eu:void 0,postal:void 0,latitude:void 0,longitude:void 0,timezone:void 0,utc_offset:void 0,country_calling_code:void 0,currency:void 0,currency_name:void 0,languages:void 0,country_area:void 0,country_population:void 0,asn:void 0,org:void 0},y=_(f),s="storefeuinverau_country_code",m=({children:a})=>{let[e,r]=c(f),[t,i]=c("");o(()=>{fetch("https://api.ipify.org?format=json").then(n=>n.json()).then(n=>{let u=localStorage.getItem(s);if(u){let d=JSON.parse(u);d.ip!==n.ip?i(n.ip):r(d)}else i(n.ip)})},[]),o(()=>{t&&t!==""&&fetch(`https://ipapi.co/${t}/json`).then(n=>n.json()).then(n=>r(n))},[t]),o(()=>{if(e&&e.ip){let n=JSON.stringify(e);localStorage.setItem(s,n)}},[e]);let g=p(()=>e,[e]);return l.createElement(y.Provider,{value:g},a)},v=m;export{y as IPInfoContext,v as default};