@webiny/app-admin 5.26.0 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/FileManager/File.d.ts +2 -2
- package/components/FileManager/File.js +4 -2
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileManagerView.d.ts +2 -2
- package/components/FileManager/FileManagerView.js +49 -33
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager.js +5 -13
- package/components/FileManager.js.map +1 -1
- package/components/RichTextEditor/styles.scss +15 -4
- package/package.json +14 -14
|
@@ -13,5 +13,5 @@ export interface FileProps {
|
|
|
13
13
|
children: React.ReactNode;
|
|
14
14
|
showFileDetails: (event?: React.MouseEvent) => void;
|
|
15
15
|
}
|
|
16
|
-
declare const
|
|
17
|
-
export default
|
|
16
|
+
declare const MemoizedFile: React.NamedExoticComponent<FileProps>;
|
|
17
|
+
export default MemoizedFile;
|
|
@@ -124,7 +124,7 @@ var File = function File(props) {
|
|
|
124
124
|
}, file.name));
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
var MemoizedFile = /*#__PURE__*/React.memo(File, function (prev, next) {
|
|
128
128
|
if (prev.selected !== next.selected) {
|
|
129
129
|
return false;
|
|
130
130
|
} else if (prev.file.name !== next.file.name) {
|
|
@@ -132,4 +132,6 @@ export default /*#__PURE__*/React.memo(File, function (prev, next) {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
return true;
|
|
135
|
-
});
|
|
135
|
+
});
|
|
136
|
+
MemoizedFile.displayName = "MemoizedFile";
|
|
137
|
+
export default MemoizedFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["File.tsx"],"names":["React","LazyLoad","classNames","css","keyframes","Ripple","IconButton","ReactComponent","Checked","SettingsIcon","COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","styles","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","name","memo","prev","next"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["File.tsx"],"names":["React","LazyLoad","classNames","css","keyframes","Ripple","IconButton","ReactComponent","Checked","SettingsIcon","COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","styles","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","name","MemoizedFile","memo","prev","next","displayName"],"mappings":"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","sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as Checked } from \"./icons/round-check_box-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/round-settings-24px.svg\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \"--icon-color\": \"var(--mdc-theme-on-background)\",\n \".checkedIcon\": {\n color: \"var(--mdc-theme-secondary)\",\n position: \"absolute\",\n top: 4,\n left: 4,\n zIndex: 11\n },\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(styles, { \"disable-select\": !onSelect })}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"checkedIcon\"} onClick={onSelect}>\n {selected ? <Checked /> : null}\n </div>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nconst MemoizedFile = React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n\nMemoizedFile.displayName = \"MemoizedFile\";\nexport default MemoizedFile;\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FilesRules } from "react-butterfiles";
|
|
3
3
|
export interface FileManagerViewProps {
|
|
4
|
-
onChange
|
|
5
|
-
onClose
|
|
4
|
+
onChange?: Function;
|
|
5
|
+
onClose?: Function;
|
|
6
6
|
files?: FilesRules;
|
|
7
7
|
multiple: boolean;
|
|
8
8
|
accept: Array<string>;
|
|
@@ -466,7 +466,7 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
466
466
|
|
|
467
467
|
return _context3.abrupt("return", setTimeout(function () {
|
|
468
468
|
onUploadCompletion(uploadedFiles);
|
|
469
|
-
onClose(); // TODO @ts-refactor
|
|
469
|
+
onClose && onClose(); // TODO @ts-refactor
|
|
470
470
|
}, 750));
|
|
471
471
|
|
|
472
472
|
case 13:
|
|
@@ -551,13 +551,18 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
551
551
|
while (1) {
|
|
552
552
|
switch (_context4.prev = _context4.next) {
|
|
553
553
|
case 0:
|
|
554
|
-
|
|
555
|
-
|
|
554
|
+
if (!(typeof onChange === "function")) {
|
|
555
|
+
_context4.next = 4;
|
|
556
|
+
break;
|
|
557
|
+
}
|
|
556
558
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
+
_context4.next = 3;
|
|
560
|
+
return onChange(multiple ? selected : selected[0]);
|
|
559
561
|
|
|
560
562
|
case 3:
|
|
563
|
+
onClose && onClose();
|
|
564
|
+
|
|
565
|
+
case 4:
|
|
561
566
|
case "end":
|
|
562
567
|
return _context4.stop();
|
|
563
568
|
}
|
|
@@ -617,35 +622,46 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
617
622
|
selected: selected.find(function (current) {
|
|
618
623
|
return current.src === file.src;
|
|
619
624
|
}),
|
|
620
|
-
onSelect:
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
625
|
+
onSelect: function () {
|
|
626
|
+
var _onSelect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
627
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
628
|
+
while (1) {
|
|
629
|
+
switch (_context5.prev = _context5.next) {
|
|
630
|
+
case 0:
|
|
631
|
+
if (!(typeof onChange === "function")) {
|
|
632
|
+
_context5.next = 7;
|
|
633
|
+
break;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
if (!multiple) {
|
|
637
|
+
_context5.next = 4;
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
toggleSelected(file);
|
|
642
|
+
return _context5.abrupt("return");
|
|
643
|
+
|
|
644
|
+
case 4:
|
|
645
|
+
_context5.next = 6;
|
|
646
|
+
return onChange(file);
|
|
647
|
+
|
|
648
|
+
case 6:
|
|
649
|
+
onClose && onClose();
|
|
650
|
+
|
|
651
|
+
case 7:
|
|
652
|
+
case "end":
|
|
653
|
+
return _context5.stop();
|
|
654
|
+
}
|
|
645
655
|
}
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
|
|
656
|
+
}, _callee5);
|
|
657
|
+
}));
|
|
658
|
+
|
|
659
|
+
function onSelect() {
|
|
660
|
+
return _onSelect.apply(this, arguments);
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
return onSelect;
|
|
664
|
+
}()
|
|
649
665
|
});
|
|
650
666
|
}) : renderEmpty({
|
|
651
667
|
hasPreviouslyUploadedFiles: hasPreviouslyUploadedFiles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileManagerView.tsx"],"names":["React","useRef","useCallback","useMemo","css","styled","Files","ButtonPrimary","ButtonIcon","Icon","File","useQuery","useMutation","useApolloClient","LIST_FILES","CREATE_FILE","GET_FILE_SETTINGS","getFileTypePlugin","get","debounce","getFileUploader","outputFileSelectionError","DropFilesHere","NoResults","FileDetails","LeftSidebar","BottomInfoBar","OverlayLayout","useSnackbar","Scrollbar","CircularProgress","i18n","useSecurity","useHotkeys","useFileManager","ReactComponent","SearchIcon","UploadIcon","NoPermissionView","t","ns","style","draggingFeedback","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","showSnackbar","identity","getPermission","canCreate","own","rwd","includes","canEdit","item","creatorId","identityId","login","searchOnChange","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","keys","esc","searchInput","apolloClient","gqlQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","settings","uploadMaxFileSize","filter","Boolean","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport outputFileSelectionError from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange: Function;\n onClose: Function;\n files?: FilesRules;\n multiple: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize: number | string;\n multipleMaxCount: number;\n multipleMaxSize: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n await onChange(multiple ? selected : selected[0]);\n\n onClose();\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect:\n typeof onChange === \"undefined\"\n ? () => {\n return void 0;\n }\n : async () => {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose();\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"]}
|
|
1
|
+
{"version":3,"sources":["FileManagerView.tsx"],"names":["React","useRef","useCallback","useMemo","css","styled","Files","ButtonPrimary","ButtonIcon","Icon","File","useQuery","useMutation","useApolloClient","LIST_FILES","CREATE_FILE","GET_FILE_SETTINGS","getFileTypePlugin","get","debounce","getFileUploader","outputFileSelectionError","DropFilesHere","NoResults","FileDetails","LeftSidebar","BottomInfoBar","OverlayLayout","useSnackbar","Scrollbar","CircularProgress","i18n","useSecurity","useHotkeys","useFileManager","ReactComponent","SearchIcon","UploadIcon","NoPermissionView","t","ns","style","draggingFeedback","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","showSnackbar","identity","getPermission","canCreate","own","rwd","includes","canEdit","item","creatorId","identityId","login","searchOnChange","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","keys","esc","searchInput","apolloClient","gqlQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","settings","uploadMaxFileSize","filter","Boolean","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport outputFileSelectionError from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize: number | string;\n multipleMaxCount: number;\n multipleMaxSize: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"]}
|
|
@@ -50,14 +50,8 @@ var FileManagerPortal = /*#__PURE__*/function (_React$Component) {
|
|
|
50
50
|
key: "render",
|
|
51
51
|
value: function render() {
|
|
52
52
|
var _this$props = this.props,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return void 0;
|
|
56
|
-
} : _this$props$onChange,
|
|
57
|
-
_this$props$onClose = _this$props.onClose,
|
|
58
|
-
onClose = _this$props$onClose === void 0 ? function () {
|
|
59
|
-
return void 0;
|
|
60
|
-
} : _this$props$onClose,
|
|
53
|
+
onChange = _this$props.onChange,
|
|
54
|
+
onClose = _this$props.onClose,
|
|
61
55
|
accept = _this$props.accept,
|
|
62
56
|
onChangePick = _this$props.onChangePick,
|
|
63
57
|
multiple = _this$props.multiple,
|
|
@@ -82,18 +76,16 @@ var FileManagerPortal = /*#__PURE__*/function (_React$Component) {
|
|
|
82
76
|
var items = files.map(function (file) {
|
|
83
77
|
return pick(file, fields);
|
|
84
78
|
});
|
|
85
|
-
onChange(items);
|
|
79
|
+
onChange && onChange(items);
|
|
86
80
|
return;
|
|
87
81
|
}
|
|
88
82
|
|
|
89
83
|
var file = pick(files, fields);
|
|
90
|
-
onChange(file);
|
|
84
|
+
onChange && onChange(file);
|
|
91
85
|
};
|
|
92
86
|
|
|
93
87
|
var props = {
|
|
94
|
-
onChange: typeof onChange === "function" ? handleFileOnChange :
|
|
95
|
-
return void 0;
|
|
96
|
-
},
|
|
88
|
+
onChange: typeof onChange === "function" ? handleFileOnChange : undefined,
|
|
97
89
|
onClose: onClose,
|
|
98
90
|
accept: accept,
|
|
99
91
|
multiple: multiple,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileManager.tsx"],"names":["React","useCallback","useEffect","useRef","useState","ReactDOM","FileManagerView","pick","FileManagerProvider","FileManagerPortal","props","window","container","document","getElementById","createElement","setAttribute","body","appendChild","onChange","onClose","accept","onChangePick","multiple","images","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","tags","scope","own","handleFileOnChange","files","length","fields","Array","isArray","items","map","file","createPortal","Component","FileManager","children","rest","show","setShow","onChangeRef","current","showFileManager"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,MAAxC,EAAgDC,QAAhD,QAAgE,OAAhE;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAOC,eAAP;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,SAASC,mBAAT;;IA6BMC,iB;;;;;AAEF,6BAAYC,KAAZ,EAA2C;AAAA;;AAAA;;AACvC,8BAAMA,KAAN;;AADuC,gEADJ,IACI;;AAGvC,QAAI,CAACC,MAAL,EAAa;AACT;AACH;;AAED,UAAKC,SAAL,GAAiBD,MAAM,CAACE,QAAP,CAAgBC,cAAhB,CAA+B,wBAA/B,CAAjB;;AAEA,QAAI,CAAC,MAAKF,SAAV,EAAqB;AACjB,YAAKA,SAAL,GAAiBC,QAAQ,CAACE,aAAT,CAAuB,KAAvB,CAAjB;;AACA,YAAKH,SAAL,CAAeI,YAAf,CAA4B,IAA5B,EAAkC,wBAAlC;;AACA,UAAMJ,SAAS,GAAG,MAAKA,SAAvB;AACAC,MAAAA,QAAQ,CAACI,IAAT,IAAiBJ,QAAQ,CAACI,IAAT,CAAcC,WAAd,CAA0BN,SAA1B,CAAjB;AACH;;AAdsC;AAe1C;;;;WAED,kBAAyB;AACrB,
|
|
1
|
+
{"version":3,"sources":["FileManager.tsx"],"names":["React","useCallback","useEffect","useRef","useState","ReactDOM","FileManagerView","pick","FileManagerProvider","FileManagerPortal","props","window","container","document","getElementById","createElement","setAttribute","body","appendChild","onChange","onClose","accept","onChangePick","multiple","images","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","tags","scope","own","handleFileOnChange","files","length","fields","Array","isArray","items","map","file","undefined","createPortal","Component","FileManager","children","rest","show","setShow","onChangeRef","current","showFileManager"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport FileManagerView, { FileManagerViewProps } from \"./FileManager/FileManagerView\";\nimport pick from \"lodash/pick\";\nimport { FileManagerProvider } from \"./FileManager/FileManagerContext\";\nimport { FileItem } from \"./FileManager/types\";\n\nexport interface ShowFileManagerCallable {\n (onChange?: (file?: FileItem | FileItem[]) => void): void;\n}\nexport interface FileManagerPropsChildren {\n showFileManager: ShowFileManagerCallable;\n}\n\nexport interface FileManagerProps {\n onChange?: (files: FileItem[] | FileItem) => void;\n onChangePick?: string[];\n images?: boolean;\n multiple?: boolean;\n accept?: Array<string>;\n tags?: Array<string>;\n scope?: string;\n own?: boolean;\n children: (params: FileManagerPropsChildren) => React.ReactNode;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onClose?: Function;\n onUploadCompletion?: (files: FileItem[]) => void;\n}\n\nexport type FileManagerPortalProps = Omit<FileManagerProps, \"children\">;\n\nclass FileManagerPortal extends React.Component<FileManagerPortalProps> {\n public container: HTMLElement | null = null;\n constructor(props: FileManagerPortalProps) {\n super(props);\n\n if (!window) {\n return;\n }\n\n this.container = window.document.getElementById(\"file-manager-container\");\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"file-manager-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const {\n onChange,\n onClose,\n accept,\n onChangePick,\n multiple,\n images,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion,\n tags,\n scope,\n own\n } = this.props;\n\n const container = this.container as HTMLElement;\n\n const handleFileOnChange = (files?: FileItem[] | FileItem) => {\n if (!files || files.length === 0) {\n return;\n }\n const fields = Array.isArray(onChangePick)\n ? onChangePick\n : [\"id\", \"name\", \"key\", \"src\", \"size\", \"type\"];\n\n if (Array.isArray(files) === true) {\n const items = (files as FileItem[]).map(file => pick(file, fields));\n onChange && onChange(items as FileItem[]);\n return;\n }\n const file = pick(files as FileItem, fields);\n\n onChange && onChange(file as FileItem);\n };\n\n const props: FileManagerViewProps = {\n onChange: typeof onChange === \"function\" ? handleFileOnChange : undefined,\n onClose,\n accept: accept as string[],\n multiple: multiple as boolean,\n maxSize: maxSize as string,\n multipleMaxCount: multipleMaxCount as number,\n multipleMaxSize: multipleMaxSize as number,\n onUploadCompletion,\n tags: tags,\n scope: scope,\n own: own\n };\n\n if (images) {\n props.accept = [\n \"image/jpg\",\n \"image/jpeg\",\n \"image/tiff\",\n \"image/gif\",\n \"image/png\",\n \"image/webp\",\n \"image/bmp\",\n \"image/svg+xml\"\n ];\n }\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <FileManagerProvider {...props}>\n <FileManagerView {...props} />\n </FileManagerProvider>,\n container\n );\n }\n}\n\nexport const FileManager: React.FC<FileManagerProps> = ({ children, ...rest }) => {\n const [show, setShow] = useState(false);\n const onChangeRef = useRef(rest.onChange);\n\n useEffect(() => {\n onChangeRef.current = rest.onChange;\n }, [rest.onChange]);\n\n const showFileManager = useCallback(onChange => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show && (\n <FileManagerPortal\n onClose={() => setShow(false)}\n {...rest}\n onChange={onChangeRef.current}\n />\n )}\n {children({ showFileManager })}\n </>\n );\n};\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
.codex-editor {
|
|
2
2
|
.ce-toolbox {
|
|
3
|
-
right: 0;
|
|
4
3
|
position: absolute;
|
|
5
4
|
background-color: #fff;
|
|
6
5
|
border: 1px solid #e8e8eb;
|
|
@@ -62,10 +61,22 @@
|
|
|
62
61
|
content: none !important;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
.ce-toolbar__actions {
|
|
65
|
+
right: unset;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ce-toolbar__actions--opened {
|
|
69
|
+
opacity: 1;
|
|
70
|
+
background-color: white;
|
|
71
|
+
border-radius: 5px;
|
|
72
|
+
border: 1px solid #e8e8eb;
|
|
73
|
+
padding: 3px;
|
|
74
|
+
top: -3px;
|
|
75
|
+
}
|
|
76
|
+
|
|
66
77
|
.ce-toolbar__content {
|
|
67
|
-
|
|
68
|
-
|
|
78
|
+
max-width: 650px;
|
|
79
|
+
margin: 0 auto;
|
|
69
80
|
position: absolute;
|
|
70
81
|
}
|
|
71
82
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-admin",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.27.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "A collection of plugins that together form a complete admin interface, customizable and extensible with Webiny apps and plugins.",
|
|
6
6
|
"repository": {
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"@svgr/webpack": "6.2.1",
|
|
21
21
|
"@types/mime": "2.0.3",
|
|
22
22
|
"@types/react": "16.14.2",
|
|
23
|
-
"@webiny/app": "5.
|
|
24
|
-
"@webiny/app-admin-core": "5.
|
|
25
|
-
"@webiny/app-security": "5.
|
|
26
|
-
"@webiny/form": "5.
|
|
27
|
-
"@webiny/plugins": "5.
|
|
28
|
-
"@webiny/react-router": "5.
|
|
29
|
-
"@webiny/telemetry": "5.
|
|
30
|
-
"@webiny/ui": "5.
|
|
31
|
-
"@webiny/ui-composer": "5.
|
|
32
|
-
"@webiny/validation": "5.
|
|
23
|
+
"@webiny/app": "5.27.0",
|
|
24
|
+
"@webiny/app-admin-core": "5.27.0",
|
|
25
|
+
"@webiny/app-security": "5.27.0",
|
|
26
|
+
"@webiny/form": "5.27.0",
|
|
27
|
+
"@webiny/plugins": "5.27.0",
|
|
28
|
+
"@webiny/react-router": "5.27.0",
|
|
29
|
+
"@webiny/telemetry": "5.27.0",
|
|
30
|
+
"@webiny/ui": "5.27.0",
|
|
31
|
+
"@webiny/ui-composer": "5.27.0",
|
|
32
|
+
"@webiny/validation": "5.27.0",
|
|
33
33
|
"apollo-cache": "1.3.5",
|
|
34
34
|
"apollo-client": "2.6.10",
|
|
35
35
|
"apollo-link": "1.2.14",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"@types/bytes": "^3.1.1",
|
|
70
70
|
"@types/graphlib": "^2.1.8",
|
|
71
71
|
"@types/store": "^2.0.2",
|
|
72
|
-
"@webiny/cli": "^5.
|
|
73
|
-
"@webiny/project-utils": "^5.
|
|
72
|
+
"@webiny/cli": "^5.27.0",
|
|
73
|
+
"@webiny/project-utils": "^5.27.0",
|
|
74
74
|
"babel-plugin-emotion": "^9.2.8",
|
|
75
75
|
"babel-plugin-lodash": "^3.3.4",
|
|
76
76
|
"rimraf": "^3.0.2",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
]
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "0f2b0b65639d2e1a79cf9189c8fe5cea2c32d302"
|
|
101
101
|
}
|