+
+const startWorking = (id: string, state: ProgressIndicatorState) => {
+ return getProgressIndicator(id)(state)
+ ? state.map(indicator => indicator.id === id
+ ? { ...indicator, working: true }
+ : indicator)
+ : state.concat({ id, working: true });
+};
+
+export function isSystemWorking(state: ProgressIndicatorState): boolean {
+ return state.length > 0 && state.reduce((working, p) => working ? true : p.working, false);
+}
+
+export const getProgressIndicator = (id: string) =>
+ (state: ProgressIndicatorState) =>
+ state.find(state => state.id === id);