mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-01 07:02:48 +08:00
✨ Add missing reset action to todo store
This commit is contained in:
parent
7185f5190f
commit
2477e4d357
3 changed files with 61 additions and 3 deletions
|
@ -5,6 +5,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
/**
|
||||||
|
* Resets the store state to its initial values.
|
||||||
|
* Used when needing to clear all store data.
|
||||||
|
*/
|
||||||
|
RESET: 'ppcp/todos/RESET',
|
||||||
|
|
||||||
// Transient data
|
// Transient data
|
||||||
SET_TRANSIENT: 'ppcp/todos/SET_TRANSIENT',
|
SET_TRANSIENT: 'ppcp/todos/SET_TRANSIENT',
|
||||||
SET_COMPLETED_TODOS: 'ppcp/todos/SET_COMPLETED_TODOS',
|
SET_COMPLETED_TODOS: 'ppcp/todos/SET_COMPLETED_TODOS',
|
||||||
|
|
|
@ -17,11 +17,47 @@ import {
|
||||||
REST_RESET_DISMISSED_TODOS_PATH,
|
REST_RESET_DISMISSED_TODOS_PATH,
|
||||||
} from './constants';
|
} from './constants';
|
||||||
|
|
||||||
export const setIsReady = ( isReady ) => ( {
|
/**
|
||||||
type: ACTION_TYPES.SET_TRANSIENT,
|
* Special. Resets all values in the store to initial defaults.
|
||||||
payload: { isReady },
|
*
|
||||||
|
* @return {Object} The action.
|
||||||
|
*/
|
||||||
|
export const reset = () => ( {
|
||||||
|
type: ACTION_TYPES.RESET,
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic transient-data updater.
|
||||||
|
*
|
||||||
|
* @param {string} prop Name of the property to update.
|
||||||
|
* @param {any} value The new value of the property.
|
||||||
|
* @return {Object} The action.
|
||||||
|
*/
|
||||||
|
export const setTransient = ( prop, value ) => ( {
|
||||||
|
type: ACTION_TYPES.SET_TRANSIENT,
|
||||||
|
payload: { [ prop ]: value },
|
||||||
|
} );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic persistent-data updater.
|
||||||
|
*
|
||||||
|
* @param {string} prop Name of the property to update.
|
||||||
|
* @param {any} value The new value of the property.
|
||||||
|
* @return {Object} The action.
|
||||||
|
*/
|
||||||
|
export const setPersistent = ( prop, value ) => ( {
|
||||||
|
type: ACTION_TYPES.SET_PERSISTENT,
|
||||||
|
payload: { [ prop ]: value },
|
||||||
|
} );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transient. Marks the store as "ready", i.e., fully initialized.
|
||||||
|
*
|
||||||
|
* @param {boolean} isReady Whether the store is ready
|
||||||
|
* @return {Object} The action.
|
||||||
|
*/
|
||||||
|
export const setIsReady = ( isReady ) => setTransient( 'isReady', isReady );
|
||||||
|
|
||||||
export const setTodos = ( todos ) => ( {
|
export const setTodos = ( todos ) => ( {
|
||||||
type: ACTION_TYPES.SET_TODOS,
|
type: ACTION_TYPES.SET_TODOS,
|
||||||
payload: todos,
|
payload: todos,
|
||||||
|
|
|
@ -52,6 +52,21 @@ const reducer = createReducer( defaultTransient, defaultPersistent, {
|
||||||
[ ACTION_TYPES.SET_TRANSIENT ]: ( state, payload ) =>
|
[ ACTION_TYPES.SET_TRANSIENT ]: ( state, payload ) =>
|
||||||
changeTransient( state, payload ),
|
changeTransient( state, payload ),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets state to defaults while maintaining initialization status
|
||||||
|
*
|
||||||
|
* @param {Object} state Current state
|
||||||
|
* @return {Object} Reset state
|
||||||
|
*/
|
||||||
|
[ ACTION_TYPES.RESET ]: ( state ) => {
|
||||||
|
const cleanState = changeTransient(
|
||||||
|
changePersistent( state, defaultPersistent ),
|
||||||
|
defaultTransient
|
||||||
|
);
|
||||||
|
cleanState.isReady = true; // Keep initialization flag
|
||||||
|
return cleanState;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates todos list
|
* Updates todos list
|
||||||
*
|
*
|
||||||
|
@ -99,6 +114,7 @@ const reducer = createReducer( defaultTransient, defaultPersistent, {
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* TODO: This is not used anywhere. Remove "SET_TODOS" and use this resolver instead.
|
||||||
* Initializes persistent state with data from the server
|
* Initializes persistent state with data from the server
|
||||||
*
|
*
|
||||||
* @param {Object} state Current state
|
* @param {Object} state Current state
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue