Farmbot-Web-App/frontend/folders/map_state_to_props.ts

26 lines
920 B
TypeScript
Raw Permalink Normal View History

2020-01-03 13:13:49 -07:00
import { FolderProps } from "./interfaces";
2019-12-13 14:26:57 -07:00
import { selectAllSequences } from "../resources/selectors";
import { TaggedSequence } from "farmbot";
2019-12-19 18:30:02 -07:00
import { resourceUsageList } from "../resources/in_use";
import { Everything } from "../interfaces";
2019-12-13 14:26:57 -07:00
type SequenceDict = Record<string, TaggedSequence>;
type Reducer = (a: FolderProps["sequences"], b: TaggedSequence) => SequenceDict;
const reduce: Reducer = (a, b) => {
a[b.uuid] = b;
return a;
};
2019-12-19 18:30:02 -07:00
export function mapStateToFolderProps(props: Everything): FolderProps {
const x = props.resources.index.sequenceFolders;
2019-12-13 14:26:57 -07:00
return {
rootFolder: x.filteredFolders ? x.filteredFolders : x.folders,
2019-12-19 18:30:02 -07:00
sequences: selectAllSequences(props.resources.index).reduce(reduce, {}),
searchTerm: x.searchTerm,
dispatch: props.dispatch,
sequenceMetas: props.resources.index.sequenceMetas,
resourceUsage: resourceUsageList(props.resources.index.inUse),
2019-12-13 14:26:57 -07:00
};
}