mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-08-31 06:52:50 +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 {
|
||||
/**
|
||||
* Resets the store state to its initial values.
|
||||
* Used when needing to clear all store data.
|
||||
*/
|
||||
RESET: 'ppcp/todos/RESET',
|
||||
|
||||
// Transient data
|
||||
SET_TRANSIENT: 'ppcp/todos/SET_TRANSIENT',
|
||||
SET_COMPLETED_TODOS: 'ppcp/todos/SET_COMPLETED_TODOS',
|
||||
|
|
|
@ -17,11 +17,47 @@ import {
|
|||
REST_RESET_DISMISSED_TODOS_PATH,
|
||||
} from './constants';
|
||||
|
||||
export const setIsReady = ( isReady ) => ( {
|
||||
type: ACTION_TYPES.SET_TRANSIENT,
|
||||
payload: { isReady },
|
||||
/**
|
||||
* Special. Resets all values in the store to initial defaults.
|
||||
*
|
||||
* @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 ) => ( {
|
||||
type: ACTION_TYPES.SET_TODOS,
|
||||
payload: todos,
|
||||
|
|
|
@ -52,6 +52,21 @@ const reducer = createReducer( defaultTransient, defaultPersistent, {
|
|||
[ ACTION_TYPES.SET_TRANSIENT ]: ( 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
|
||||
*
|
||||
|
@ -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
|
||||
*
|
||||
* @param {Object} state Current state
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue