@brizy/media-gallery
Version:
44 lines (43 loc) • 1.41 kB
JavaScript
import { createElement, useCallback } from "react";
import * as MediaLibraryState from "../mediaLibrary/types/State";
import * as StockPhotosState from "../stockPhotos/types/State";
import * as Actions from "../types/Actions";
import { Tabs, tabs } from "../types/Tabs";
import { useDispatch } from "react-redux";
import { always, pipe } from "ramda";
import * as Close from "../../global/actions";
import { match } from "fp-utilities";
import { useTranslation } from "../../locale/useTranslation";
import { Header as CHeader } from "../../components/layouts/Header";
var active = match([
MediaLibraryState.isState,
always(Tabs.MediaLibrary)
], [
StockPhotosState.isState,
always(Tabs.StockPhotos)
]);
export var Header = function(state) {
var dispatch = useDispatch();
var t = useTranslation().t;
var onClose = useCallback(function() {
return pipe(Close.close, dispatch)();
}, [
dispatch
]);
var onPageChange = useCallback(function(page) {
switch(page){
case Tabs.MediaLibrary:
return dispatch(Actions.goToMediaLibrary());
case Tabs.StockPhotos:
return dispatch(Actions.goToStockPhotos());
}
}, [
dispatch
]);
return createElement(CHeader, {
tabs: tabs(t),
value: active(state),
onChange: onPageChange,
onClose: onClose
});
};