@yext/search-headless
Version:
A library for powering UI components for Yext Search integrations
30 lines (26 loc) • 771 B
text/typescript
import { createSlice, PayloadAction, Slice } from '@reduxjs/toolkit';
import { SessionTrackingState } from '../models/slices/sessiontracking';
const initialState: SessionTrackingState = {
enabled: true
};
const reducers = {
setEnabled: (state, action: PayloadAction<boolean>) => {
state.enabled = action.payload;
},
setSessionId: (state, action: PayloadAction<string>) => {
state.sessionId = action.payload;
},
};
/**
* Registers with Redux the slice of {@link State} pertaining to session tracking of
* a Search experience.
*/
export default function createSessionTrackingSlice(
prefix: string
): Slice<SessionTrackingState, typeof reducers> {
return createSlice({
name: prefix + 'sessionTracking',
initialState,
reducers
});
}