···22import { isNil } from 'lodash';
33import { Segment } from 'semantic-ui-react';
44import * as d3 from 'd3';
55-import { Observable } from 'rxjs';
55+import { Observable, Subscription } from 'rxjs';
66import SignalQualityIndicatorSVG from './svgs/SignalQualityIndicatorSVG';
77+import { PipesEpoch } from '../constants/interfaces';
7889interface Props {
99- signalQualityObservable: Observable | null | undefined;
1010- plottingInterval: number | null | undefined;
1010+ signalQualityObservable: Observable<PipesEpoch>;
1111+ plottingInterval: number;
1112}
12131314class SignalQualityIndicatorComponent extends Component<Props> {
1414- // signalQualitySubscription: Subscription;
1515+ signalQualitySubscription: Subscription | null;
15161617 constructor(props: Props) {
1718 super(props);
+1
app/epics/deviceEpics.ts
···159159 map(() => DeviceActions.SetConnectionStatus(CONNECTION_STATUS.CONNECTING))
160160 );
161161162162+// TODO: confirm the shape of data that actually flows through these observables and formalize with interfaces
162163const setRawObservableEpic: Epic<
163164 DeviceActionType,
164165 DeviceActionType,
+1
app/utils/labjs/functions.ts
···77import { buildCustomTimeline } from './protocols/custom';
8899// loads a protocol of the experiment
1010+// TODOL refactor this experiment description system to be much more predictable
1011export const loadProtocol = (paradigm: EXPERIMENTS) => {
1112 let protocol;
1213 switch (paradigm) {