UNPKG

@brizy/media-gallery

Version:
48 lines (47 loc) 1.84 kB
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); }; };