# disco/1.4.21/backend/views/components/Main/features/campaigns/campaignSlice.js

Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO, version 1.4.21. 42 lines.

- Page: https://pluginprobe.com/plugins/disco/1.4.21/code/backend/views/components/Main/features/campaigns/campaignSlice.js
- Raw: https://pluginprobe.com/plugins/disco/1.4.21/raw/backend/views/components/Main/features/campaigns/campaignSlice.js
- Modified: 2024-08-07T09:28:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/disco/1.4.21/code/backend/views/components/Main/features/campaigns/campaignSlice.js#L10-L20`.

```javascript
import { createSlice } from '@reduxjs/toolkit';

const initialState = {
	campaign_ids: [],
	campaigns: [],
	searchTerm: '',
};

export const campaignSlice = createSlice({
	name: 'campaign',
	initialState,
	reducers: {
		resetSelectedIDs: (state) => {
			state.campaign_ids = [];
		},
		toggleCampaignSelect: (state, action) => {
			if (state.campaign_ids.includes(action.payload)) {
				state.campaign_ids = state.campaign_ids.filter(
					(id) => id !== action.payload
				);
			} else {
				state.campaign_ids.push(action.payload);
			}
		},
		setCampaignsInState: (state, action) => {
			state.campaigns = action.payload;
		},
		setSearchTerm: (state, action) => {
			state.searchTerm = action.payload;
		},
	},
});

export const {
	resetSelectedIDs,
	toggleCampaignSelect,
	setCampaignsInState,
	setSearchTerm,
} = campaignSlice.actions;

export default campaignSlice.reducer;

```
