An easy-to-use platform for EEG experimentation in the classroom
at main 45 lines 1.8 kB view raw
1import { createAction } from '@reduxjs/toolkit'; 2import { ActionType } from 'typesafe-actions'; 3import { EXPERIMENTS } from '../constants/constants'; 4import { 5 ExperimentObject, 6 ExperimentParameters, 7 WorkSpaceInfo, 8} from '../constants/interfaces'; 9import { ExperimentStateType } from '../reducers/experimentReducer'; 10 11// ------------------------------------------------------------------------- 12// Actions 13 14export const ExperimentActions = { 15 Start: createAction('START'), 16 Pause: createAction('PAUSE'), 17 Stop: createAction<{ data: string }, 'STOP'>('STOP'), 18 SetType: createAction<EXPERIMENTS, 'SET_TYPE'>('SET_TYPE'), 19 SetExperimentObject: createAction<ExperimentObject, 'SET_EXPERIMENT_OBJECT'>( 20 'SET_EXPERIMENT_OBJECT' 21 ), 22 SetSubject: createAction<string, 'SET_SUBJECT'>('SET_SUBJECT'), 23 SetGroup: createAction<string, 'SET_GROUP'>('SET_GROUP'), 24 SetSession: createAction<number, 'SET_SESSION'>('SET_SESSION'), 25 SetParams: createAction<ExperimentParameters, 'SET_PARAMS'>('SET_PARAMS'), 26 SetDateModified: createAction<number, 'SET_DATE_MODIFIED'>( 27 'SET_DATE_MODIFIED' 28 ), 29 CreateNewWorkspace: createAction<WorkSpaceInfo, 'CREATE_NEW_WORKSPACE'>( 30 'CREATE_NEW_WORKSPACE' 31 ), 32 SetIsRunning: createAction<boolean, 'SET_IS_RUNNING'>('SET_IS_RUNNING'), 33 ExperimentCleanup: createAction('EXPERIMENT_CLEANUP'), 34 SetTitle: createAction<string, 'SET_TITLE'>('SET_TITLE'), 35 SaveWorkspace: createAction('SAVE_WORKSPACE'), 36 SetState: createAction<ExperimentStateType, 'SET_EXPERIMENT_STATE'>( 37 'SET_EXPERIMENT_STATE' 38 ), 39 SetEEGEnabled: createAction<boolean, 'SET_EEG_ENABLED'>('SET_EEG_ENABLED'), 40 UpdateSession: createAction('UPDATE_SESSION'), 41} as const; 42 43export type ExperimentActionType = ActionType< 44 (typeof ExperimentActions)[keyof typeof ExperimentActions] 45>;