UNPKG

ip-info-react

Version:

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

2 lines (1 loc) 1.75 kB
"use strict";var p=Object.create;var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var v=(e,n)=>{for(var o in n)d(e,o,{get:n[o],enumerable:!0})},f=(e,n,o,u)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of m(n))!h.call(e,i)&&i!==o&&d(e,i,{get:()=>n[i],enumerable:!(u=y(n,i))||u.enumerable});return e};var P=(e,n,o)=>(o=e!=null?p(I(e)):{},f(n||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),b=e=>f(d({},"__esModule",{value:!0}),e);var j={};v(j,{IPInfoContext:()=>l,default:()=>S});module.exports=b(j);var t=P(require("react")),g={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},l=(0,t.createContext)(g),a="storefeuinverau_country_code",x=({children:e})=>{let[n,o]=(0,t.useState)(g),[u,i]=(0,t.useState)("");(0,t.useEffect)(()=>{fetch("https://api.ipify.org?format=json").then(r=>r.json()).then(r=>{let c=localStorage.getItem(a);if(c){let s=JSON.parse(c);s.ip!==r.ip?i(r.ip):o(s)}else i(r.ip)})},[]),(0,t.useEffect)(()=>{u&&u!==""&&fetch(`https://ipapi.co/${u}/json`).then(r=>r.json()).then(r=>o(r))},[u]),(0,t.useEffect)(()=>{if(n&&n.ip){let r=JSON.stringify(n);localStorage.setItem(a,r)}},[n]);let _=(0,t.useMemo)(()=>n,[n]);return t.default.createElement(l.Provider,{value:_},e)},S=x;