| Server IP : 185.252.147.100 / Your IP : 216.73.217.33 Web Server : nginx/1.27.3 System : Linux mitrofanov.ru 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 User : mitr ( 1000) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /proc/self/cwd/wp-content/plugins/generateblocks/src/hooks/ |
Upload File : |
import { useReducer } from '@wordpress/element';
const ADD_QUERY_PARAMETER = 'add_query_parameter';
const REMOVE_QUERY_PARAMETER = 'remove_query_parameter';
const queryReducer = function( queryState, action ) {
switch ( action.type ) {
case ADD_QUERY_PARAMETER:
return Object.assign( {}, queryState, action.payload );
case REMOVE_QUERY_PARAMETER:
const { [ action.payload ]: removedKey, ...newQueryState } = queryState; // eslint-disable-line no-unused-vars
return newQueryState;
default:
throw new Error( `queryReducer does not support action type "${ action.type }".` );
}
};
export default ( initialQueryState = {} ) => {
const [ state, dispatch ] = useReducer( queryReducer, initialQueryState );
return {
queryState: state,
setParameter: ( key, value ) => ( dispatch( { type: ADD_QUERY_PARAMETER, payload: { [ key ]: value } } ) ),
insertParameters: ( payload ) => ( dispatch( { type: ADD_QUERY_PARAMETER, payload } ) ),
removeParameter: ( payload ) => ( dispatch( { type: REMOVE_QUERY_PARAMETER, payload } ) ),
};
};