An easy-to-use platform for EEG experimentation in the classroom
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fixed Redux

+14 -9
+1 -2
app/epics/deviceEpics.ts
··· 3 3 import { map, pluck, mergeMap, tap, filter, catchError } from 'rxjs/operators'; 4 4 import { isNil } from 'lodash'; 5 5 import { toast } from 'react-toastify'; 6 - import { isActionOf } from 'typesafe-actions'; 6 + import { isActionOf } from '../utils/redux'; 7 7 import { DeviceActions, DeviceActionType, ExperimentActions } from '../actions'; 8 8 import { 9 9 getEmotiv, ··· 26 26 SEARCH_TIMER, 27 27 } from '../constants/constants'; 28 28 import { Device, DeviceInfo } from '../constants/interfaces'; 29 - import { DeviceStateType } from '../reducers/deviceReducer'; 30 29 import { RootState } from '../reducers'; 31 30 32 31 // -------------------------------------------------------------------------
+1 -1
app/epics/experimentEpics.ts
··· 1 - import { isActionOf } from 'typesafe-actions'; 2 1 import { combineEpics, Epic } from 'redux-observable'; 3 2 import { from, of, ObservableInput } from 'rxjs'; 4 3 import { ··· 12 11 ignoreElements, 13 12 tap, 14 13 } from 'rxjs/operators'; 14 + import { isActionOf } from '../utils/redux'; 15 15 import { ExperimentActions, ExperimentActionType } from '../actions'; 16 16 import { 17 17 DEVICES,
+1 -1
app/epics/index.ts
··· 4 4 import experiment from './experimentEpics'; 5 5 6 6 // TODO: Fix issue: https://github.com/piotrwitek/typesafe-actions/issues/174 7 - export default combineEpics(); 7 + export default combineEpics(device, experiment, jupyter);
+1 -1
app/epics/jupyterEpics.ts
··· 11 11 } from 'rxjs/operators'; 12 12 import { find } from 'kernelspecs'; 13 13 import { launchSpec } from 'spawnteract'; 14 - import { isActionOf } from 'typesafe-actions'; 15 14 import { createMainChannel } from 'enchannel-zmq-backend'; 16 15 import { isNil } from 'lodash'; 17 16 import { kernelInfoRequest, executeRequest } from '@nteract/messaging'; 18 17 import { toast } from 'react-toastify'; 18 + import { isActionOf } from '../utils/redux'; 19 19 import { JupyterActions, JupyterActionType } from '../actions'; 20 20 import { execute, awaitOkMessage } from '../utils/jupyter/pipes'; 21 21 import { RootState } from '../reducers';
+4 -4
app/utils/eeg/pipes.ts
··· 7 7 8 8 export const parseMuseSignalQuality = () => 9 9 pipe( 10 - map((epoch) => ({ 10 + map((epoch: Record<string, any>) => ({ 11 11 ...epoch, 12 - signalQuality: object.assign( 12 + signalQuality: Object.assign( 13 13 {}, 14 14 ...Object.entries(epoch.signalQuality).map( 15 15 ([channelName, signalQuality]) => { ··· 31 31 32 32 export const parseEmotivSignalQuality = () => 33 33 pipe( 34 - map((epoch) => ({ 34 + map((epoch: Record<string, any>) => ({ 35 35 ...epoch, 36 - signalQuality: object.assign( 36 + signalQuality: Object.assign( 37 37 {}, 38 38 ...Object.entries(epoch.signalQuality).map( 39 39 ([channelName, signalQuality]) => {
+6
app/utils/redux/index.ts
··· 1 + import { ActionCreatorWithPayload } from '@reduxjs/toolkit'; 2 + import { ActionType } from 'typesafe-actions'; 3 + 4 + export function isActionOf(actionCreator: ActionCreatorWithPayload<any, any>) { 5 + return (action: ActionType<any>) => action.type === actionCreator.type; 6 + }