@brizy/media-gallery
Version:
48 lines (47 loc) • 1.84 kB
JavaScript
import { isMultipleItemContext, isNoneContext, isSingleItemContext } from "../../types/Context";
import { match } from "fp-utilities";
import { identity } from "ramda";
import * as MediaLibraryUtils from "../../pages/mediaLibrary/utils";
import * as MediaLibraryState from "../../pages/mediaLibrary/types/State";
export var isReadyOrMultipleMediaLibrary = function(s) {
return MediaLibraryState.isState(s) && MediaLibraryUtils.isReadyOrMultiple(s);
};
export var isAcceptableType = function(acceptableTypes) {
return function(v) {
return v.every(function(i) {
return acceptableTypes.find(function(v) {
return v.includes(i.mimeType.replace(/.*\/\s/, ""));
}) || acceptableTypes.includes("application/json") && i.mimeType === "text/plain" && i.extension === "json";
}) ? v : undefined;
};
};
export var wrongTypeErrorMessage = function(t, acceptableTypes, isMultipleSelected) {
var variables = {
acceptableTypes: acceptableTypes.join(", ")
};
return isMultipleSelected ? t("Failed to insert files. Please select only valid {{acceptableTypes}}.", variables) : t("Failed to insert file. Please select only valid {{acceptableTypes}}.", variables);
};
export var isMultipleSelected = function(s) {
return s.items.filter(function(v) {
return v.isSelected;
}).length > 1;
};
export var goToInsertFilesByContext = function(c) {
return function(v) {
var file = v[0];
return file && match([
isMultipleItemContext,
function(c) {
return c.onInsertFiles(v);
}
], [
isSingleItemContext,
function(c) {
return c.onInsertFiles(file);
}
], [
isNoneContext,
identity
])(c);
};
};