New Settings UI: Implement logic for features and refresh button.

This commit is contained in:
Himad M 2024-12-16 13:12:38 +01:00
parent 33afa940dd
commit 75f3b0b7e4
No known key found for this signature in database
GPG key ID: 5FC769E9888A7B98
11 changed files with 328 additions and 47 deletions

View file

@ -23,4 +23,5 @@ export default {
DO_SANDBOX_LOGIN: 'COMMON:DO_SANDBOX_LOGIN',
DO_PRODUCTION_LOGIN: 'COMMON:DO_PRODUCTION_LOGIN',
DO_REFRESH_MERCHANT: 'COMMON:DO_REFRESH_MERCHANT',
DO_REFRESH_FEATURES: 'DO_REFRESH_FEATURES',
};

View file

@ -189,3 +189,14 @@ export const connectViaIdAndSecret = function* () {
export const refreshMerchantData = function* () {
return yield { type: ACTION_TYPES.DO_REFRESH_MERCHANT };
};
/**
* Side effect.
* Purges all features status data via a REST request.
* Refreshes the merchant data via a REST request.
*
* @return {Action} The action.
*/
export const refreshFeatureStatuses = function* () {
return yield { type: ACTION_TYPES.DO_REFRESH_FEATURES };
};

View file

@ -53,3 +53,14 @@ export const REST_MANUAL_CONNECTION_PATH = '/wc/v3/wc_paypal/connect_manual';
* @type {string}
*/
export const REST_CONNECTION_URL_PATH = '/wc/v3/wc_paypal/login_link';
/**
* REST path to refresh the feature status.
*
* Used by: Controls
* See: RefreshFeatureStatusEndpoint.php
*
* @type {string}
*/
export const REST_REFRESH_FEATURES_PATH =
'/wc/v3/wc_paypal/refresh-feature-status';

View file

@ -16,6 +16,7 @@ import {
REST_MANUAL_CONNECTION_PATH,
REST_CONNECTION_URL_PATH,
REST_HYDRATE_MERCHANT_PATH,
REST_REFRESH_FEATURES_PATH,
} from './constants';
import ACTION_TYPES from './action-types';
@ -121,4 +122,27 @@ export const controls = {
return result;
},
async [ ACTION_TYPES.DO_REFRESH_FEATURES ]() {
let result = null;
try {
result = await apiFetch( {
path: REST_REFRESH_FEATURES_PATH,
method: 'POST',
} );
if ( result.success ) {
result = await dispatch( STORE_NAME ).refreshMerchantData();
}
} catch ( e ) {
result = {
success: false,
error: e,
message: e.message,
};
}
return result;
},
};