| Server IP : 89.108.64.180 / Your IP : 216.73.216.229 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/omapart.ru/wp-content/plugins/elementor/app/assets/js/hooks/ |
Upload File : |
import { useState, useEffect } from 'react';
export default function useAjax() {
const [ ajax, setAjax ] = useState( null ),
initialStatusKey = 'initial',
uploadInitialState = {
status: initialStatusKey,
isComplete: false,
response: null,
},
[ ajaxState, setAjaxState ] = useState( uploadInitialState ),
ajaxActions = {
reset: () => setAjaxState( initialStatusKey ),
};
useEffect( () => {
if ( ajax ) {
const formData = new FormData();
if ( ajax.data ) {
for ( const key in ajax.data ) {
formData.append( key, ajax.data[ key ] );
}
if ( ! ajax.data.nonce ) {
formData.append( '_nonce', elementorCommon.config.ajax.nonce );
}
}
const options = {
type: 'post',
url: elementorCommon.config.ajax.url,
headers: {},
cache: false,
contentType: false,
processData: false,
...ajax,
data: formData,
success: ( response ) => {
const status = response.success ? 'success' : 'error';
setAjaxState( ( prevState ) => ( { ...prevState, status, response: response?.data } ) );
},
error: () => {
setAjaxState( ( prevState ) => ( { ...prevState, status: 'error' } ) );
},
complete: () => {
setAjaxState( ( prevState ) => ( { ...prevState, isComplete: true } ) );
},
};
jQuery.ajax( options );
}
}, [ ajax ] );
return {
ajax,
setAjax,
ajaxState,
ajaxActions,
};
}