import * as R from "ramda";
import { connectToStore } from "@applicaster/zapp-react-native-redux";

import { withRiver } from "../../Decorators/RiverResolver";
import { withNavigator } from "../../Decorators/Navigator";
import { ContainerContext } from "../../Contexts";
import { RiverComponent } from "./River";
import { withDimensionsProvider } from "@applicaster/zapp-react-native-utils/dimensionsProvider";
import { WithRiverFeedLoader } from "../../Decorators/RiverFeedLoader";
import { withScreenContext } from "../../Contexts/ScreenContext";

const reduxConnector = connectToStore(R.pick(["rivers", "appData"]));

export const River = R.compose(
  reduxConnector,
  withRiver,
  WithRiverFeedLoader,
  withNavigator,
  withDimensionsProvider,
  ContainerContext.withConsumer,
  withScreenContext
)(RiverComponent);
