@brizy/media-gallery
Version:
66 lines (65 loc) • 2.84 kB
JavaScript
import React, { useCallback, useMemo } from "react";
import * as State from "../types/State";
import { Sidebar as Component } from "../../../components/pages/StockPhotos/Sidebar";
import { Content } from "../../../components/pages/StockPhotos/Sidebar/Content";
import { useDispatch } from "react-redux";
import { NothingSelected } from "../../../components/layouts/empties/NothingSelected";
import { match } from "fp-utilities";
import { createElement } from "../../../utils/react/createElement";
import { always } from "ramda";
import { isNothingSelected, isReadyOrBulkOrInsert, isMultipleBulkSelect } from "../utils";
import { MultipleSelected } from "../../../components/layouts/empties/MultipleSelected";
import { copy } from "../notifications";
import { useTranslation } from "../../../locale/useTranslation";
import { ApiFileTypes } from "../../mediaLibrary/types/types";
import { isSidebarState } from "../utils";
import { capitalize } from "../../../utils/string";
var CSidebar = function(state) {
return React.createElement(Component, null, sidebarContent(state));
};
var ReadyContent = function(s) {
var _s_selectedItem = s.selectedItem, fileSource = _s_selectedItem.fileSource, fileName = _s_selectedItem.fileName, altTitle = _s_selectedItem.altTitle, dimensions = _s_selectedItem.dimensions, url = _s_selectedItem.url, extension = _s_selectedItem.extension;
var fileType = useMemo(function() {
return "".concat(extension.toUpperCase(), " ").concat(capitalize(ApiFileTypes.IMAGE));
}, [
extension
]);
var t = useTranslation().t;
var dispatch = useDispatch();
var onCopy = useCallback(function(el) {
var _el_ownerDocument_defaultView, _window_navigator_clipboard;
var _window = el === null || el === void 0 ? void 0 : (_el_ownerDocument_defaultView = el.ownerDocument.defaultView) === null || _el_ownerDocument_defaultView === void 0 ? void 0 : _el_ownerDocument_defaultView.window;
_window === null || _window === void 0 ? void 0 : (_window_navigator_clipboard = _window.navigator.clipboard) === null || _window_navigator_clipboard === void 0 ? void 0 : _window_navigator_clipboard.writeText(url);
dispatch(copy(t));
}, [
url,
dispatch,
t
]);
return React.createElement(Content, {
dimensions: dimensions,
fileName: fileName,
altTitle: altTitle,
url: url,
fileType: fileType,
fileSource: fileSource,
onCopy: onCopy
});
};
var sidebarContent = match([
isNothingSelected,
createElement(NothingSelected)
], [
isMultipleBulkSelect,
createElement(MultipleSelected)
], [
isReadyOrBulkOrInsert,
createElement(ReadyContent)
]);
export var Sidebar = match([
isSidebarState,
CSidebar
], [
State.isLoadError,
always(null)
]);