@brizy/media-gallery
Version:
74 lines (73 loc) • 2.42 kB
JavaScript
import { useCallback } from "react";
export * from "./Header";
import * as State from "../types/State";
import * as MediaLibraryPage from "../mediaLibrary/containers";
import * as MediaLibraryPageState from "../mediaLibrary/types/State";
import * as MediaLibraryPageActions from "../mediaLibrary/types/Actions";
import * as StockPhotosPage from "../stockPhotos/containers";
import * as StockPhotosPageState from "../stockPhotos/types/State";
import { match } from "fp-utilities";
import { createElement } from "../../utils/react/createElement";
import { useDispatch, useSelector } from "react-redux";
import React from "react";
import { selectState } from "../selectors";
import { MainLayout } from "../../containers/layouts/Main";
import { pipe } from "ramda";
import { Header } from "./Header";
var CContent = match([
MediaLibraryPageState.isState,
createElement(MediaLibraryPage.Content)
], [
StockPhotosPageState.isState,
createElement(StockPhotosPage.Content)
]);
var CFooter = match([
MediaLibraryPageState.isState,
createElement(MediaLibraryPage.Footer)
], [
StockPhotosPageState.isState,
createElement(StockPhotosPage.Footer)
]);
var CSidebar = match([
MediaLibraryPageState.isState,
createElement(MediaLibraryPage.Sidebar)
], [
StockPhotosPageState.isState,
createElement(StockPhotosPage.Sidebar)
]);
var Content = match([
State.isInnerState,
createElement(CContent)
]);
var Footer = match([
State.isInnerState,
createElement(CFooter)
]);
var Sidebar = match([
State.isInnerState,
createElement(CSidebar)
]);
export var Container = function(state) {
var dispatch = useDispatch();
var header = React.createElement(Header, state);
var content = React.createElement(Content, state);
var footer = React.createElement(Footer, state);
var sidebar = React.createElement(Sidebar, state);
var onUpload = useCallback(function(v) {
return pipe(MediaLibraryPageActions.upload, dispatch)(v);
}, [
dispatch
]);
return React.createElement(MainLayout, {
Sidebar: sidebar,
Header: header,
Content: content,
Footer: footer,
onUpload: MediaLibraryPageState.isState(state) ? onUpload : undefined,
height: state.height
});
};
export var Pages = function() {
var state = useSelector(selectState);
return React.createElement(Container, state);
};