UNPKG

@woocommerce/data

Version:
63 lines (62 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.geolocate = exports.getCountries = exports.getCountry = exports.getLocales = exports.getLocale = void 0; /** * External dependencies */ const data_controls_1 = require("@wordpress/data-controls"); const data_1 = require("@wordpress/data"); const actions_1 = require("./actions"); const constants_1 = require("../constants"); const constants_2 = require("./constants"); const resolveSelect = data_1.controls && data_1.controls.resolveSelect ? data_1.controls.resolveSelect : data_controls_1.select; function* getLocale() { yield resolveSelect(constants_2.STORE_NAME, 'getLocales'); } exports.getLocale = getLocale; function* getLocales() { try { const url = constants_1.NAMESPACE + '/data/countries/locales'; const results = yield (0, data_controls_1.apiFetch)({ path: url, method: 'GET', }); return (0, actions_1.getLocalesSuccess)(results); } catch (error) { return (0, actions_1.getLocalesError)(error); } } exports.getLocales = getLocales; function* getCountry() { yield resolveSelect(constants_2.STORE_NAME, 'getCountries'); } exports.getCountry = getCountry; function* getCountries() { try { const url = constants_1.NAMESPACE + '/data/countries'; const results = yield (0, data_controls_1.apiFetch)({ path: url, method: 'GET', }); return (0, actions_1.getCountriesSuccess)(results); } catch (error) { return (0, actions_1.getCountriesError)(error); } } exports.getCountries = getCountries; const geolocate = () => async ({ dispatch }) => { try { const url = `https://public-api.wordpress.com/geo/?v=${new Date().getTime()}`; const response = await fetch(url, { method: 'GET', }); const result = await response.json(); dispatch.geolocationSuccess(result); } catch (error) { dispatch.geolocationError(error); } }; exports.geolocate = geolocate;