HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/linde/wp-content/plugins/better-wp-security/core/packages/data/src/reducers.js
/**
 * External dependencies
 */
import { omit } from 'lodash';

/**
 * Internal dependencies
 */
import {
	RECEIVE_ACTOR_TYPES,
	RECEIVE_ACTORS,
	RECEIVE_INDEX,
	RECEIVE_USER,
	RECEIVE_SITE_INFO,
	RECEIVE_CURRENT_USER_ID,
	LOAD_INITIAL_FEATURE_FLAGS,
	RECEIVE_BATCH_MAX_ITEMS,
} from './actions';

const DEFAULT_STATE = {
	users: {
		currentId: 0,
		byId: {},
		saving: [],
		optimisticEdits: {},
	},
	index: null,
	actors: {
		types: [],
		byType: {},
	},
	siteInfo: null,
	featureFlags: [],
	batchMaxItems: 0,
};

export default function reducer( state = DEFAULT_STATE, action ) {
	switch ( action.type ) {
		case RECEIVE_INDEX:
			return {
				...state,
				index: action.index,
			};
		case 'START_SAVING_USER':
			return {
				...state,
				users: {
					...state.users,
					saving: [
						...state.users.saving,
						action.id,
					],
					optimisticEdits: action.optimistic ? {
						...state.users.optimisticEdits,
						[ action.id ]: action.data,
					} : state.users.optimisticEdits,
				},
			};
		case 'FINISH_SAVING_USER':
		case 'FAILED_SAVING_USER':
			return {
				...state,
				users: {
					...state.users,
					saving: state.users.saving.filter( ( id ) => id !== action.id ),
					optimisticEdits: omit( state.users.optimisticEdits, action.id ),
				},
			};
		case RECEIVE_USER:
			return {
				...state,
				users: {
					...state.users,
					byId: {
						...state.users.byId,
						[ action.user.id ]: action.user,
					},
				},
			};
		case RECEIVE_CURRENT_USER_ID:
			return {
				...state,
				users: {
					...state.users,
					currentId: action.userId,
				},
			};
		case RECEIVE_ACTOR_TYPES:
			return {
				...state,
				actors: {
					...state.actors,
					types: action.types,
				},
			};
		case RECEIVE_ACTORS:
			return {
				...state,
				actors: {
					...state.actors,
					byType: {
						...state.actors.byType,
						[ action.actorType ]: action.actors,
					},
				},
			};
		case RECEIVE_SITE_INFO:
			return {
				...state,
				siteInfo: action.siteInfo,
			};
		case LOAD_INITIAL_FEATURE_FLAGS:
			return {
				...state,
				featureFlags: action.flags,
			};
		case RECEIVE_BATCH_MAX_ITEMS:
			return {
				...state,
				batchMaxItems: action.maxItems,
			};
		default:
			return state;
	}
}