@blaze-cms/plugin-media-ui 0.146.0-core-styles.41 → 0.146.0-node18.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/CHANGELOG.md +13 -75
- package/lib/components/CardMedia/CardMedia.js +5 -5
- package/lib/components/CardMedia/CardMedia.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFile.js +1 -1
- package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFilePage.js +2 -2
- package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib/components/FileList/useGetFiles/getFiles.js +2 -1
- package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib/components/FileList/useGetFiles/useGetFiles.js +2 -1
- package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/getCounters.js +1 -1
- package/lib/components/FileList/useGetFilesList/getCounters.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js +1 -0
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib/components/FilePreview/Actions/index.js +1 -1
- package/lib/components/FilePreview/Actions/index.js.map +1 -1
- package/lib/components/FilePreview/index.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FilePreviewList.js +1 -0
- package/lib/components/FilePreviewReadOnly/FilePreviewList.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js +3 -3
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileList.js +1 -1
- package/lib/components/FileUploadAdapter/FileList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FilePreviewList.js +1 -0
- package/lib/components/FileUploadAdapter/FilePreviewList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileReorderList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js +13 -13
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib/components/FileUploadAdapter/useLimit.js.map +1 -1
- package/lib/components/FileUploadModal/FileUploadModal.js +3 -3
- package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib/components/FilterPanel/FilterPanel.js +1 -1
- package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib/components/ListingContainer/Listing/Listing.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js.map +1 -1
- package/lib/components/ListingContainer/ListingContainer.js +1 -1
- package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib/components/MediaListing.js +1 -1
- package/lib/components/MediaListing.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib-es/components/CardMedia/CardMedia.js +2 -2
- package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib-es/components/FilePreview/Actions/index.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/FileList.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +2 -2
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/useLimit.js.map +1 -1
- package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib-es/index.js +3 -3
- package/lib-es/index.js.map +1 -1
- package/package.json +17 -15
- package/src/components/CardMedia/CardMedia.js +1 -6
- package/src/components/EditMediaFile/EditMediaFile.js +5 -8
- package/src/components/EditMediaFile/EditMediaFilePage.js +1 -6
- package/src/components/FileList/useGetFilesList/useGetFilesList.js +15 -14
- package/src/components/FileUploadAdapter/FileUploadAdapter.js +43 -52
- package/src/components/FileUploadAdapter/useLimit.js +5 -8
- package/src/components/FilterPanel/FilterPanel.js +18 -23
- package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +19 -33
- package/src/index.js +10 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadModal.js","names":["React","useState","ModalAdapter","Modal","getMutation","getQuery","FileUpload","PropTypes","useToasts","useApolloClient","useQuery","useFileList","FileUploadModal","onClose","getSelectedFiles","closeModalAndSetValue","simpleLayout","files","setFiles","addToast","client","addNewFile","fileStoresType","data","getFileStores","storeType","variables","visibleInAdmin","handleFiles","filesToUpload","uploadFiles","response","Promise","all","map","file","name","fileData","storeKey","mutate","mutation","input","filename","catch","error","message","appearance","autoDismiss","parsedResponse","result","fileNames","toastMessage","join","filesToSelect","id","handleOnSave","length","storeOptions","type","key","createElement","Fragment","title","actions","textButton","callback","modifiers","upload","onChange","selectOptions","propTypes","func","isRequired","bool","defaultProps"],"sources":["../../../src/components/FileUploadModal/FileUploadModal.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';\nimport FileUpload from '@blaze-react/file-upload';\nimport PropTypes from 'prop-types';\nimport { useToasts } from '@blaze-react/toaster';\nimport { useApolloClient, useQuery } from '@apollo/client';\nimport useFileList from '../FileList/useFileList';\n\nconst FileUploadModal = ({ onClose, getSelectedFiles, closeModalAndSetValue, simpleLayout }) => {\n const [files, setFiles] = useState([]);\n const { addToast } = useToasts();\n const client = useApolloClient();\n const { addNewFile } = useFileList();\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n const handleFiles = filesToUpload => {\n setFiles(filesToUpload);\n };\n\n const uploadFiles = async () => {\n const response = await Promise.all(\n files.map(({ file, name, data: fileData, storeKey }) =>\n client.mutate({\n mutation: getMutation('UPLOAD_FILE'),\n variables: {\n input: {\n file,\n name: name || file.filename,\n storeKey,\n data: fileData\n }\n }\n })\n )\n ).catch(error => {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n });\n\n const parsedResponse = response.map(({ data: { file } }) => file.result);\n\n const fileNames = files.map(({ file }) => file.name);\n addNewFile(parsedResponse);\n const toastMessage = `Uploaded: ${fileNames.join(', ')}`;\n\n if (simpleLayout) {\n const filesToSelect = parsedResponse.map(file => file.id);\n getSelectedFiles(null, filesToSelect);\n closeModalAndSetValue(simpleLayout, filesToSelect, toastMessage);\n return;\n }\n\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n };\n\n const handleOnSave = async () => {\n if (files.length) await uploadFiles();\n onClose();\n };\n\n const storeOptions = storeType.map(type => [type.key, type.name]);\n\n return (\n <>\n <Modal\n onClose={onClose}\n title=\"Add media\"\n actions={[\n {\n textButton: 'Cancel',\n callback: onClose,\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: handleOnSave,\n modifiers: []\n }\n ]}\n upload>\n <FileUpload onChange={handleFiles} selectOptions={storeOptions} />\n </Modal>\n </>\n );\n};\n\nFileUploadModal.propTypes = {\n getSelectedFiles: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n simpleLayout: PropTypes.bool,\n closeModalAndSetValue: PropTypes.func\n};\n\nFileUploadModal.defaultProps = {\n onClose: () => {},\n closeModalAndSetValue: () => {},\n simpleLayout: false\n};\n\nexport default FileUploadModal;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,YAAY,IAAIC,KAAK,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,2BAA2B;AACxF,OAAOC,UAAU,MAAM,0BAA0B;AACjD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,eAAe,EAAEC,QAAQ,QAAQ,gBAAgB;AAC1D,OAAOC,WAAW,MAAM,yBAAyB;AAEjD,MAAMC,eAAe,GAAGA,CAAC;EAAEC,OAAO;EAAEC,gBAAgB;EAAEC,qBAAqB;EAAEC;AAAa,CAAC,KAAK;EAC9F,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGjB,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM;IAAEkB;EAAS,CAAC,GAAGX,SAAS,CAAC,CAAC;EAChC,MAAMY,MAAM,GAAGX,eAAe,CAAC,CAAC;EAChC,MAAM;IAAEY;EAAW,CAAC,GAAGV,WAAW,CAAC,CAAC;EAEpC,MAAMW,cAAc,GAAGjB,QAAQ,CAAC,iBAAiB,CAAC;EAElD,MAAM;IAAEkB,IAAI,EAAE;MAAEC,aAAa,EAAEC,SAAS,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGf,QAAQ,CAACY,cAAc,EAAE;IAChFI,SAAS,EAAE;MAAEC,cAAc,EAAE;IAAK;EACpC,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGC,aAAa,IAAI;IACnCX,QAAQ,CAACW,aAAa,CAAC;EACzB,CAAC;EAED,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,MAAMC,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAG,CAChChB,KAAK,CAACiB,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEC,IAAI;MAAEb,IAAI,EAAEc,QAAQ;MAAEC;IAAS,CAAC,KACjDlB,MAAM,CAACmB,MAAM,CAAC;MACZC,QAAQ,EAAEpC,WAAW,CAAC,aAAa,CAAC;MACpCsB,SAAS,EAAE;QACTe,KAAK,EAAE;UACLN,IAAI;UACJC,IAAI,EAAEA,IAAI,IAAID,IAAI,CAACO,QAAQ;UAC3BJ,QAAQ;UACRf,IAAI,EAAEc;QACR;MACF;IACF,CAAC,CACH,CACF,CAAC,CAACM,KAAK,CAACC,KAAK,IAAI;MACfzB,QAAQ,CAACyB,KAAK,CAACC,OAAO,EAAE;QACtBC,UAAU,EAAE,OAAO;QACnBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAGjB,QAAQ,CAACG,GAAG,CAAC,CAAC;MAAEX,IAAI,EAAE;QAAEY;MAAK;IAAE,CAAC,KAAKA,IAAI,CAACc,MAAM,CAAC;IAExE,MAAMC,SAAS,GAAGjC,KAAK,CAACiB,GAAG,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,CAACC,IAAI,CAAC;IACpDf,UAAU,CAAC2B,cAAc,CAAC;IAC1B,MAAMG,YAAY,
|
|
1
|
+
{"version":3,"file":"FileUploadModal.js","names":["React","useState","ModalAdapter","Modal","getMutation","getQuery","FileUpload","PropTypes","useToasts","useApolloClient","useQuery","useFileList","FileUploadModal","onClose","getSelectedFiles","closeModalAndSetValue","simpleLayout","files","setFiles","addToast","client","addNewFile","fileStoresType","data","getFileStores","storeType","variables","visibleInAdmin","handleFiles","filesToUpload","uploadFiles","response","Promise","all","map","file","name","fileData","storeKey","mutate","mutation","input","filename","catch","error","message","appearance","autoDismiss","parsedResponse","result","fileNames","toastMessage","join","filesToSelect","id","handleOnSave","length","storeOptions","type","key","createElement","Fragment","title","actions","textButton","callback","modifiers","upload","onChange","selectOptions","propTypes","func","isRequired","bool","defaultProps"],"sources":["../../../src/components/FileUploadModal/FileUploadModal.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';\nimport FileUpload from '@blaze-react/file-upload';\nimport PropTypes from 'prop-types';\nimport { useToasts } from '@blaze-react/toaster';\nimport { useApolloClient, useQuery } from '@apollo/client';\nimport useFileList from '../FileList/useFileList';\n\nconst FileUploadModal = ({ onClose, getSelectedFiles, closeModalAndSetValue, simpleLayout }) => {\n const [files, setFiles] = useState([]);\n const { addToast } = useToasts();\n const client = useApolloClient();\n const { addNewFile } = useFileList();\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n const handleFiles = filesToUpload => {\n setFiles(filesToUpload);\n };\n\n const uploadFiles = async () => {\n const response = await Promise.all(\n files.map(({ file, name, data: fileData, storeKey }) =>\n client.mutate({\n mutation: getMutation('UPLOAD_FILE'),\n variables: {\n input: {\n file,\n name: name || file.filename,\n storeKey,\n data: fileData\n }\n }\n })\n )\n ).catch(error => {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n });\n\n const parsedResponse = response.map(({ data: { file } }) => file.result);\n\n const fileNames = files.map(({ file }) => file.name);\n addNewFile(parsedResponse);\n const toastMessage = `Uploaded: ${fileNames.join(', ')}`;\n\n if (simpleLayout) {\n const filesToSelect = parsedResponse.map(file => file.id);\n getSelectedFiles(null, filesToSelect);\n closeModalAndSetValue(simpleLayout, filesToSelect, toastMessage);\n return;\n }\n\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n };\n\n const handleOnSave = async () => {\n if (files.length) await uploadFiles();\n onClose();\n };\n\n const storeOptions = storeType.map(type => [type.key, type.name]);\n\n return (\n <>\n <Modal\n onClose={onClose}\n title=\"Add media\"\n actions={[\n {\n textButton: 'Cancel',\n callback: onClose,\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: handleOnSave,\n modifiers: []\n }\n ]}\n upload>\n <FileUpload onChange={handleFiles} selectOptions={storeOptions} />\n </Modal>\n </>\n );\n};\n\nFileUploadModal.propTypes = {\n getSelectedFiles: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n simpleLayout: PropTypes.bool,\n closeModalAndSetValue: PropTypes.func\n};\n\nFileUploadModal.defaultProps = {\n onClose: () => {},\n closeModalAndSetValue: () => {},\n simpleLayout: false\n};\n\nexport default FileUploadModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPanel.js","names":["React","useState","useEffect","SearchBar","classnames","Select","useMediaContext","MediaContext","useFileList","FilterPanel","searchTerm","setSearchTerm","filters","selectedFilter","changeSelectedFilter","fileStores","queryParams","data","active","setActive","id","handleSearchTerm","target","value","storeKey","onChangeFilter","filter","isSearch","handleKeyDown","key","trim","onSelectFilter","activeSegements","reduce","acc","index","activeBarSegment","storeOptions","map","type","name","createElement","className","label","onClick","defaultTextValue","options","onChange","selected","search","placeholder","close"],"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState, useEffect } from 'react';\nimport { SearchBar } from '@blaze-cms/plugin-search-ui';\nimport classnames from 'classnames';\nimport Select from '@blaze-react/select';\nimport { useMediaContext, MediaContext } from '../../utils/media-context';\nimport useFileList from '../FileList/useFileList';\n\nconst FilterPanel = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const { filters, selectedFilter, changeSelectedFilter, fileStores }
|
|
1
|
+
{"version":3,"file":"FilterPanel.js","names":["React","useState","useEffect","SearchBar","classnames","Select","useMediaContext","MediaContext","useFileList","FilterPanel","searchTerm","setSearchTerm","filters","selectedFilter","changeSelectedFilter","fileStores","queryParams","data","active","setActive","id","handleSearchTerm","target","value","storeKey","onChangeFilter","filter","isSearch","handleKeyDown","key","trim","onSelectFilter","activeSegements","reduce","acc","index","activeBarSegment","storeOptions","map","type","name","createElement","className","label","onClick","defaultTextValue","options","onChange","selected","search","placeholder","close"],"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState, useEffect } from 'react';\nimport { SearchBar } from '@blaze-cms/plugin-search-ui';\nimport classnames from 'classnames';\nimport Select from '@blaze-react/select';\nimport { useMediaContext, MediaContext } from '../../utils/media-context';\nimport useFileList from '../FileList/useFileList';\n\nconst FilterPanel = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const { filters, selectedFilter, changeSelectedFilter, fileStores } =\n useMediaContext(MediaContext);\n const { queryParams, data } = useFileList();\n const [active, setActive] = useState(filters[0].id);\n\n useEffect(() => {\n if (queryParams.searchTerm === null) {\n setSearchTerm('');\n }\n }, [queryParams.searchTerm]);\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n\n const storeKey = selectedFilter.storeKey || '';\n\n const onChangeFilter = id => {\n setActive(id);\n searchTerm\n ? changeSelectedFilter({\n filter: id,\n isSearch: true,\n searchTerm,\n storeKey\n })\n : changeSelectedFilter({\n filter: id,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n }\n };\n\n const onSelectFilter = ({ value }) => {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey: value\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey: value\n });\n };\n\n const activeSegements = filters.reduce((acc, { id }, index) => {\n acc[`active-${index}`] = active === id;\n return acc;\n }, {});\n const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);\n const storeOptions = (fileStores || []).map(type => [type.key, type.name]);\n\n return (\n <div className=\"filter-panel\">\n <div className=\"filter-panel__wrapper\">\n <ul className=\"filter-panel__list\">\n {filters.map(({ label, id }) =>\n selectedFilter.filter !== id ? (\n <li key={label} className=\"filter-panel__list-item\">\n <a onClick={() => onChangeFilter(id)}>\n {label} ({data[id]})\n </a>\n </li>\n ) : (\n <li key={label} className=\"filter-panel__list-item active\">\n {label} ({data[id]})\n </li>\n )\n )}\n </ul>\n <div className=\"filter-panel__barWrapper\">\n <div className={activeBarSegment} />\n </div>\n </div>\n <div className=\"filter-panel__searchBarWrapper\">\n <div className=\"select__wrapper\">\n <Select\n name=\"filter\"\n defaultTextValue=\"Any\"\n options={storeOptions}\n onChange={onSelectFilter}\n selected={selectedFilter.storeKey}\n />\n </div>\n <SearchBar\n search={() =>\n changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm,\n storeKey: selectedFilter.storeKey\n })\n }\n handleKeyDown={handleKeyDown}\n searchTerm={searchTerm}\n handleSearchTerm={handleSearchTerm}\n placeholder=\"Search term here...\"\n close={false}\n />\n </div>\n </div>\n );\n};\n\nexport default FilterPanel;\n"],"mappings":"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","ignoreList":[]}
|
package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaFileList.js","names":["React","useState","useEffect","PropTypes","CardPrompt","Button","VirtualList","useMediaContext","MediaContext","CardMedia","existPrevious","useFileList","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","AVAILABLE_FILTER_TYPES","MediaFileList","displayCardPrompt","setDisplayCardPrompt","displayLayout","wrapperRef","modalTargetRef","currentListIndex","setCurrentListIndex","verifiedRanges","setVerifiedRanges","listHeight","setListHeight","queryParams","data","loading","setQueryParams","clearList","removeFile","updateFile","onClickPrompt","getSelectedFiles","selectedFiles","selectedFilter","hasFiles","files","length","where","_objectSpread","filter","storeKey","isSearch","searchTerm","handleRenderedItems","startIndex","rowsLength","loadIndex","Math","floor","includes","offset","handleListHeight","current","clientHeight","window","addEventListener","removeEventListener","searchedTerm","createElement","Fragment","className","width","height","itemCount","itemSize","overscanCount","scrollToIndex","onItemsRendered","renderItem","index","style","name","url","mimetype","id","isSelected","key","latestQueryToRefetchParams","onSelected","selected","onClick","propTypes","func","isRequired","bool","string","object","defaultProps"],"sources":["../../../../../../src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardPrompt } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { useMediaContext, MediaContext } from '../../../../../utils/media-context';\nimport CardMedia from '../../../../CardMedia';\nimport { existPrevious } from '../../../mappers';\nimport useFileList from '../../../../FileList/useFileList';\nimport {\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n AVAILABLE_FILTER_TYPES\n} from '../../../../../constants';\n\nconst MediaFileList = ({\n displayCardPrompt,\n setDisplayCardPrompt,\n displayLayout,\n wrapperRef,\n modalTargetRef\n}) => {\n const [currentListIndex, setCurrentListIndex] = useState(1);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [listHeight, setListHeight] = useState(null);\n const {\n queryParams,\n data,\n loading,\n setQueryParams,\n clearList,\n removeFile,\n updateFile\n } = useFileList();\n\n const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } = useMediaContext(\n MediaContext\n );\n\n const hasFiles = !!data.files && !!data.files.length;\n\n useEffect(\n () => {\n if (!loading && !hasFiles) setDisplayCardPrompt(true);\n },\n [loading, hasFiles, setDisplayCardPrompt]\n );\n\n useEffect(\n () => {\n setVerifiedRanges([]);\n setCurrentListIndex(0);\n setQueryParams({\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n selectedFilter.filter,\n selectedFilter.storeKey,\n selectedFilter.isSearch,\n selectedFilter.searchTerm\n ]\n );\n\n const handleRenderedItems = ({ startIndex }) => {\n const rowsLength = data.files.length;\n const loadIndex = Math.floor(rowsLength / 3) - MEDIA_OVER_SCAN_COUNT;\n\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({\n offset: data.files.length,\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentListIndex(startIndex + MEDIA_OVER_SCAN_COUNT);\n }\n };\n\n useEffect(\n () => {\n const handleListHeight = () => {\n setListHeight(wrapperRef.current.clientHeight - 40);\n };\n\n if (wrapperRef.current) {\n handleListHeight();\n window.addEventListener('resize', handleListHeight);\n }\n return () => {\n window.removeEventListener('resize', handleListHeight);\n };\n },\n [listHeight, wrapperRef]\n );\n\n const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;\n\n return (\n <>\n {hasFiles && (\n <>\n <p className=\"media__fileList-counter\">\n {searchedTerm} {data[selectedFilter.filter]} items\n </p>\n <VirtualList\n width=\"100%\"\n height={listHeight}\n itemCount={data.files.length}\n itemSize={MEDIA_LIST_ITEM_SIZE}\n overscanCount={MEDIA_OVER_SCAN_COUNT}\n scrollToIndex={currentListIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const { name, url, mimetype, id } = data.files[index];\n const isSelected = existPrevious(selectedFiles, id);\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <CardMedia\n updateFile={updateFile}\n clearList={clearList}\n latestQueryToRefetchParams={queryParams}\n modalTargetRef={modalTargetRef}\n onSelected={getSelectedFiles}\n key={id}\n displayLayout={displayLayout}\n selected={!!isSelected}\n name={name}\n url={url}\n mimetype={mimetype}\n id={id}\n index={index}\n removeFile={removeFile}\n />\n </div>\n );\n }}\n />\n </>\n )}\n {displayCardPrompt && (\n <CardPrompt>\n <Button onClick={onClickPrompt} className=\"button button--rounded button--cta\">\n Add\n </Button>\n </CardPrompt>\n )}\n </>\n );\n};\n\nMediaFileList.propTypes = {\n setDisplayCardPrompt: PropTypes.func.isRequired,\n displayCardPrompt: PropTypes.bool,\n displayLayout: PropTypes.string.isRequired,\n wrapperRef: PropTypes.object.isRequired,\n modalTargetRef: PropTypes.object.isRequired\n};\n\nMediaFileList.defaultProps = {\n displayCardPrompt: true\n};\n\nexport default MediaFileList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MediaFileList.js","names":["React","useState","useEffect","PropTypes","CardPrompt","Button","VirtualList","useMediaContext","MediaContext","CardMedia","existPrevious","useFileList","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","AVAILABLE_FILTER_TYPES","MediaFileList","displayCardPrompt","setDisplayCardPrompt","displayLayout","wrapperRef","modalTargetRef","currentListIndex","setCurrentListIndex","verifiedRanges","setVerifiedRanges","listHeight","setListHeight","queryParams","data","loading","setQueryParams","clearList","removeFile","updateFile","onClickPrompt","getSelectedFiles","selectedFiles","selectedFilter","hasFiles","files","length","where","_objectSpread","filter","storeKey","isSearch","searchTerm","handleRenderedItems","startIndex","rowsLength","loadIndex","Math","floor","includes","offset","handleListHeight","current","clientHeight","window","addEventListener","removeEventListener","searchedTerm","createElement","Fragment","className","width","height","itemCount","itemSize","overscanCount","scrollToIndex","onItemsRendered","renderItem","index","style","name","url","mimetype","id","isSelected","key","latestQueryToRefetchParams","onSelected","selected","onClick","propTypes","func","isRequired","bool","string","object","defaultProps"],"sources":["../../../../../../src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardPrompt } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { useMediaContext, MediaContext } from '../../../../../utils/media-context';\nimport CardMedia from '../../../../CardMedia';\nimport { existPrevious } from '../../../mappers';\nimport useFileList from '../../../../FileList/useFileList';\nimport {\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n AVAILABLE_FILTER_TYPES\n} from '../../../../../constants';\n\nconst MediaFileList = ({\n displayCardPrompt,\n setDisplayCardPrompt,\n displayLayout,\n wrapperRef,\n modalTargetRef\n}) => {\n const [currentListIndex, setCurrentListIndex] = useState(1);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [listHeight, setListHeight] = useState(null);\n const { queryParams, data, loading, setQueryParams, clearList, removeFile, updateFile } =\n useFileList();\n\n const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } =\n useMediaContext(MediaContext);\n\n const hasFiles = !!data.files && !!data.files.length;\n\n useEffect(() => {\n if (!loading && !hasFiles) setDisplayCardPrompt(true);\n }, [loading, hasFiles, setDisplayCardPrompt]);\n\n useEffect(\n () => {\n setVerifiedRanges([]);\n setCurrentListIndex(0);\n setQueryParams({\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n selectedFilter.filter,\n selectedFilter.storeKey,\n selectedFilter.isSearch,\n selectedFilter.searchTerm\n ]\n );\n\n const handleRenderedItems = ({ startIndex }) => {\n const rowsLength = data.files.length;\n const loadIndex = Math.floor(rowsLength / 3) - MEDIA_OVER_SCAN_COUNT;\n\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({\n offset: data.files.length,\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentListIndex(startIndex + MEDIA_OVER_SCAN_COUNT);\n }\n };\n\n useEffect(() => {\n const handleListHeight = () => {\n setListHeight(wrapperRef.current.clientHeight - 40);\n };\n\n if (wrapperRef.current) {\n handleListHeight();\n window.addEventListener('resize', handleListHeight);\n }\n return () => {\n window.removeEventListener('resize', handleListHeight);\n };\n }, [listHeight, wrapperRef]);\n\n const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;\n\n return (\n <>\n {hasFiles && (\n <>\n <p className=\"media__fileList-counter\">\n {searchedTerm} {data[selectedFilter.filter]} items\n </p>\n <VirtualList\n width=\"100%\"\n height={listHeight}\n itemCount={data.files.length}\n itemSize={MEDIA_LIST_ITEM_SIZE}\n overscanCount={MEDIA_OVER_SCAN_COUNT}\n scrollToIndex={currentListIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const { name, url, mimetype, id } = data.files[index];\n const isSelected = existPrevious(selectedFiles, id);\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <CardMedia\n updateFile={updateFile}\n clearList={clearList}\n latestQueryToRefetchParams={queryParams}\n modalTargetRef={modalTargetRef}\n onSelected={getSelectedFiles}\n key={id}\n displayLayout={displayLayout}\n selected={!!isSelected}\n name={name}\n url={url}\n mimetype={mimetype}\n id={id}\n index={index}\n removeFile={removeFile}\n />\n </div>\n );\n }}\n />\n </>\n )}\n {displayCardPrompt && (\n <CardPrompt>\n <Button onClick={onClickPrompt} className=\"button button--rounded button--cta\">\n Add\n </Button>\n </CardPrompt>\n )}\n </>\n );\n};\n\nMediaFileList.propTypes = {\n setDisplayCardPrompt: PropTypes.func.isRequired,\n displayCardPrompt: PropTypes.bool,\n displayLayout: PropTypes.string.isRequired,\n wrapperRef: PropTypes.object.isRequired,\n modalTargetRef: PropTypes.object.isRequired\n};\n\nMediaFileList.defaultProps = {\n displayCardPrompt: true\n};\n\nexport default MediaFileList;\n"],"mappings":"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","ignoreList":[]}
|
package/lib-es/index.js
CHANGED
|
@@ -4,9 +4,9 @@ import EditorAdapter from './components/EditorAdapter';
|
|
|
4
4
|
import { MediaLibraryIcon } from './icons';
|
|
5
5
|
import pkg from '../package.json';
|
|
6
6
|
import { PLUGIN_NAME } from './constants';
|
|
7
|
-
export const FilePreviewReadOnly = React.lazy(() => import(
|
|
8
|
-
const MediaListing = React.lazy(() => import(
|
|
9
|
-
const EditMediaFilePage = React.lazy(() => import(
|
|
7
|
+
export const FilePreviewReadOnly = React.lazy(() => import(/* webpackChunkName: 'MediaFilePreviewReadOnly' */'./components/FilePreviewReadOnly'));
|
|
8
|
+
const MediaListing = React.lazy(() => import(/* webpackChunkName: 'MediaListingContainer' */'./components/MediaListing'));
|
|
9
|
+
const EditMediaFilePage = React.lazy(() => import(/* webpackChunkName: 'EditMediaFilePage' */'./components/EditMediaFile/EditMediaFilePage'));
|
|
10
10
|
export default async function load(app) {
|
|
11
11
|
app.events.once('admin:menu:config:load', ({
|
|
12
12
|
addConfig
|
package/lib-es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","FileUploadAdapter","EditorAdapter","MediaLibraryIcon","pkg","PLUGIN_NAME","FilePreviewReadOnly","lazy","MediaListing","EditMediaFilePage","load","app","events","once","addConfig","main","items","media","label","uri","icon","order","addFieldType","type","component","mediaRoute","path","key","exact","editMediaFileRoute","addRoute","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport FileUploadAdapter from './components/FileUploadAdapter';\nimport EditorAdapter from './components/EditorAdapter';\nimport { MediaLibraryIcon } from './icons';\nimport pkg from '../package.json';\nimport { PLUGIN_NAME } from './constants';\n\nexport const FilePreviewReadOnly = React.lazy(() =>\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","FileUploadAdapter","EditorAdapter","MediaLibraryIcon","pkg","PLUGIN_NAME","FilePreviewReadOnly","lazy","MediaListing","EditMediaFilePage","load","app","events","once","addConfig","main","items","media","label","uri","icon","order","addFieldType","type","component","mediaRoute","path","key","exact","editMediaFileRoute","addRoute","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport FileUploadAdapter from './components/FileUploadAdapter';\nimport EditorAdapter from './components/EditorAdapter';\nimport { MediaLibraryIcon } from './icons';\nimport pkg from '../package.json';\nimport { PLUGIN_NAME } from './constants';\n\nexport const FilePreviewReadOnly = React.lazy(\n () =>\n import(/* webpackChunkName: 'MediaFilePreviewReadOnly' */ './components/FilePreviewReadOnly')\n);\n\nconst MediaListing = React.lazy(\n () => import(/* webpackChunkName: 'MediaListingContainer' */ './components/MediaListing')\n);\n\nconst EditMediaFilePage = React.lazy(\n () =>\n import(\n /* webpackChunkName: 'EditMediaFilePage' */ './components/EditMediaFile/EditMediaFilePage'\n )\n);\nexport default async function load(app) {\n app.events.once('admin:menu:config:load', ({ addConfig }) => {\n addConfig({\n main: {\n items: {\n media: {\n label: 'Media',\n uri: '/media',\n icon: MediaLibraryIcon,\n order: 30\n }\n }\n }\n });\n });\n\n app.events.once('load:custom:field:type', addFieldType => {\n addFieldType({ type: 'fileUpload', component: FileUploadAdapter });\n addFieldType({ type: 'filePreview', component: FilePreviewReadOnly });\n addFieldType({ type: 'editor', component: EditorAdapter });\n });\n\n const mediaRoute = {\n path: '/media',\n key: 'media',\n component: MediaListing,\n exact: true\n };\n\n const editMediaFileRoute = {\n path: '/media/edit/:fileId',\n key: 'editMedia',\n component: EditMediaFilePage,\n exact: true\n };\n\n app.addRoute(mediaRoute);\n app.addRoute(editMediaFileRoute);\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,iBAAiB,MAAM,gCAAgC;AAC9D,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,gBAAgB,QAAQ,SAAS;AAC1C,OAAOC,GAAG,MAAM,iBAAiB;AACjC,SAASC,WAAW,QAAQ,aAAa;AAEzC,OAAO,MAAMC,mBAAmB,GAAGN,KAAK,CAACO,IAAI,CAC3C,MACE,MAAM,CAAC,kDAAmD,kCAAkC,CAChG,CAAC;AAED,MAAMC,YAAY,GAAGR,KAAK,CAACO,IAAI,CAC7B,MAAM,MAAM,CAAC,+CAAgD,2BAA2B,CAC1F,CAAC;AAED,MAAME,iBAAiB,GAAGT,KAAK,CAACO,IAAI,CAClC,MACE,MAAM,CACJ,2CAA4C,8CAC9C,CACJ,CAAC;AACD,eAAe,eAAeG,IAAIA,CAACC,GAAG,EAAE;EACtCA,GAAG,CAACC,MAAM,CAACC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAAEC;EAAU,CAAC,KAAK;IAC3DA,SAAS,CAAC;MACRC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE;YACLC,KAAK,EAAE,OAAO;YACdC,GAAG,EAAE,QAAQ;YACbC,IAAI,EAAEjB,gBAAgB;YACtBkB,KAAK,EAAE;UACT;QACF;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFV,GAAG,CAACC,MAAM,CAACC,IAAI,CAAC,wBAAwB,EAAES,YAAY,IAAI;IACxDA,YAAY,CAAC;MAAEC,IAAI,EAAE,YAAY;MAAEC,SAAS,EAAEvB;IAAkB,CAAC,CAAC;IAClEqB,YAAY,CAAC;MAAEC,IAAI,EAAE,aAAa;MAAEC,SAAS,EAAElB;IAAoB,CAAC,CAAC;IACrEgB,YAAY,CAAC;MAAEC,IAAI,EAAE,QAAQ;MAAEC,SAAS,EAAEtB;IAAc,CAAC,CAAC;EAC5D,CAAC,CAAC;EAEF,MAAMuB,UAAU,GAAG;IACjBC,IAAI,EAAE,QAAQ;IACdC,GAAG,EAAE,OAAO;IACZH,SAAS,EAAEhB,YAAY;IACvBoB,KAAK,EAAE;EACT,CAAC;EAED,MAAMC,kBAAkB,GAAG;IACzBH,IAAI,EAAE,qBAAqB;IAC3BC,GAAG,EAAE,WAAW;IAChBH,SAAS,EAAEf,iBAAiB;IAC5BmB,KAAK,EAAE;EACT,CAAC;EAEDjB,GAAG,CAACmB,QAAQ,CAACL,UAAU,CAAC;EACxBd,GAAG,CAACmB,QAAQ,CAACD,kBAAkB,CAAC;EAEhC,OAAO;IACLE,IAAI,EAAE1B,WAAW;IACjB2B,OAAO,EAAE5B,GAAG,CAAC4B;EACf,CAAC;AACH;AAEAtB,IAAI,CAACuB,UAAU,GAAG5B,WAAW","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-media-ui",
|
|
3
|
-
"version": "0.146.0-
|
|
3
|
+
"version": "0.146.0-node18.0",
|
|
4
4
|
"description": "Blaze plugin media ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"test": "jest",
|
|
13
|
-
"lint": "
|
|
13
|
+
"lint": "npm run lint:js",
|
|
14
14
|
"lint:js": "eslint .",
|
|
15
15
|
"clean": "rm -Rf ./lib/ && rm -Rf ./lib-es/",
|
|
16
16
|
"build:cjs": "BABEL_ENV=cjs ../../node_modules/.bin/babel ./src --out-dir ./lib --source-maps --root-mode upward",
|
|
17
17
|
"build:esm": "BABEL_ENV=esm ../../node_modules/.bin/babel ./src --out-dir ./lib-es --source-maps --root-mode upward",
|
|
18
|
-
"build": "
|
|
19
|
-
"build:clean": "
|
|
20
|
-
"prepublishOnly": "
|
|
21
|
-
"postpublish": "
|
|
18
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
19
|
+
"build:clean": "npm run clean && npm run build",
|
|
20
|
+
"prepublishOnly": "npm run build:clean",
|
|
21
|
+
"postpublish": "npm run clean"
|
|
22
22
|
},
|
|
23
23
|
"author": {
|
|
24
24
|
"email": "hello@thebyte9.com",
|
|
@@ -27,16 +27,18 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/admin-ui-utils": "0.146.0-
|
|
31
|
-
"@blaze-cms/core-errors": "0.146.0-
|
|
32
|
-
"@blaze-cms/plugin-search-ui": "0.146.0-
|
|
33
|
-
"@blaze-cms/react-form-builder": "0.146.0-
|
|
34
|
-
"@blaze-cms/setup-ui": "0.
|
|
30
|
+
"@blaze-cms/admin-ui-utils": "0.146.0-node18.0",
|
|
31
|
+
"@blaze-cms/core-errors": "0.146.0-node18.0",
|
|
32
|
+
"@blaze-cms/plugin-search-ui": "0.146.0-node18.0",
|
|
33
|
+
"@blaze-cms/react-form-builder": "0.146.0-node18.0",
|
|
34
|
+
"@blaze-cms/setup-ui": "0.146.0-node18.0",
|
|
35
35
|
"@blaze-react/button": "0.8.0-alpha.82",
|
|
36
|
+
"@blaze-react/dnd": "^0.7.0",
|
|
36
37
|
"@blaze-react/drafteditor": "0.7.0",
|
|
37
38
|
"@blaze-react/file-upload": "0.8.0-alpha.78",
|
|
38
39
|
"@blaze-react/modal": "0.5.19",
|
|
39
40
|
"@blaze-react/more": "0.5.19",
|
|
41
|
+
"@blaze-react/select": "^0.7.0",
|
|
40
42
|
"@blaze-react/toaster": "0.5.17",
|
|
41
43
|
"classnames": "^2.2.6",
|
|
42
44
|
"lodash.differencewith": "^4.5.0",
|
|
@@ -44,18 +46,18 @@
|
|
|
44
46
|
"react-tiny-virtual-list": "2.2.0"
|
|
45
47
|
},
|
|
46
48
|
"devDependencies": {
|
|
47
|
-
"@blaze-cms/core-ui": "0.146.0-
|
|
49
|
+
"@blaze-cms/core-ui": "0.146.0-node18.0"
|
|
48
50
|
},
|
|
49
51
|
"peerDependencies": {
|
|
50
52
|
"@apollo/client": "3.x",
|
|
51
|
-
"@blaze-cms/admin": "^0.
|
|
53
|
+
"@blaze-cms/admin": "^0.138.0",
|
|
52
54
|
"prop-types": "^15.7.2",
|
|
53
|
-
"react": "^
|
|
55
|
+
"react": "^18.2.0",
|
|
54
56
|
"react-router-dom": "^5.0.1"
|
|
55
57
|
},
|
|
56
58
|
"eslintIgnore": [
|
|
57
59
|
"lib/*",
|
|
58
60
|
"lib-es/*"
|
|
59
61
|
],
|
|
60
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "c60370714e89e0c96f2169d61e4c56bc542f7686"
|
|
61
63
|
}
|
|
@@ -99,12 +99,7 @@ const CardMedia = ({
|
|
|
99
99
|
} = await client.mutate({
|
|
100
100
|
mutation: getMutation('UPDATE_FILE'),
|
|
101
101
|
variables: { input: fileData },
|
|
102
|
-
update(
|
|
103
|
-
cache,
|
|
104
|
-
{
|
|
105
|
-
data: { updateFile: fileUpdated }
|
|
106
|
-
}
|
|
107
|
-
) {
|
|
102
|
+
update(cache, { data: { updateFile: fileUpdated } }) {
|
|
108
103
|
cache.writeQuery({
|
|
109
104
|
query: getQuery('GET_FILE_BY_ID'),
|
|
110
105
|
variables: { id },
|
|
@@ -17,14 +17,11 @@ const EditMediaFile = ({ onChange, handleSaveButtonStatus, enableSaveButton, fil
|
|
|
17
17
|
variables: { visibleInAdmin: true }
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
useEffect(
|
|
21
|
-
()
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
[file, formValues, storeType]
|
|
27
|
-
);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!formValues && file) {
|
|
22
|
+
setFormValues(file);
|
|
23
|
+
}
|
|
24
|
+
}, [file, formValues, storeType]);
|
|
28
25
|
|
|
29
26
|
const handleFormChange = ({ isValid, isNewValueSet, valuesChecked }) => {
|
|
30
27
|
const valuesCheckedWithoutName = valuesChecked.filter(({ id }) => {
|
|
@@ -24,12 +24,7 @@ const EditMediaFilePage = ({ match, history }) => {
|
|
|
24
24
|
await client.mutate({
|
|
25
25
|
mutation: getMutation('UPDATE_FILE'),
|
|
26
26
|
variables: { input: file },
|
|
27
|
-
update(
|
|
28
|
-
cache,
|
|
29
|
-
{
|
|
30
|
-
data: { updateFile: fileUpdated }
|
|
31
|
-
}
|
|
32
|
-
) {
|
|
27
|
+
update(cache, { data: { updateFile: fileUpdated } }) {
|
|
33
28
|
cache.writeQuery({
|
|
34
29
|
query: getQuery('GET_FILE_BY_ID'),
|
|
35
30
|
variables: { id: match.params.fileId },
|
|
@@ -20,19 +20,16 @@ function useGetFilesList() {
|
|
|
20
20
|
const [allFilesCounter, setAllFilesCounter] = useState({ all: 0, text: 0, image: 0, video: 0 });
|
|
21
21
|
const [counters, setCounters] = useState(null);
|
|
22
22
|
|
|
23
|
-
useEffect(
|
|
24
|
-
()
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
[all, image, video, text]
|
|
35
|
-
);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (all && image && video && text) {
|
|
25
|
+
setCounters({
|
|
26
|
+
all: all.total,
|
|
27
|
+
image: image.total,
|
|
28
|
+
video: video.total,
|
|
29
|
+
text: text.total
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}, [all, image, video, text]);
|
|
36
33
|
|
|
37
34
|
useEffect(
|
|
38
35
|
() => {
|
|
@@ -102,7 +99,11 @@ function useGetFilesList() {
|
|
|
102
99
|
};
|
|
103
100
|
|
|
104
101
|
const addNewFile = newFiles => {
|
|
105
|
-
const {
|
|
102
|
+
const {
|
|
103
|
+
image: _image,
|
|
104
|
+
video: _video,
|
|
105
|
+
text: _text
|
|
106
|
+
} = newFiles.reduce(
|
|
106
107
|
(acc, { type }) => {
|
|
107
108
|
acc[type] += 1;
|
|
108
109
|
return acc;
|
|
@@ -232,12 +232,7 @@ const FileUploadAdapter = ({
|
|
|
232
232
|
id: editedFileId
|
|
233
233
|
}
|
|
234
234
|
},
|
|
235
|
-
update(
|
|
236
|
-
cache,
|
|
237
|
-
{
|
|
238
|
-
data: { updateFile: fileUpdated }
|
|
239
|
-
}
|
|
240
|
-
) {
|
|
235
|
+
update(cache, { data: { updateFile: fileUpdated } }) {
|
|
241
236
|
cache.writeQuery({
|
|
242
237
|
query: getQuery('GET_FILE_BY_ID'),
|
|
243
238
|
variables: { id },
|
|
@@ -276,28 +271,26 @@ const FileUploadAdapter = ({
|
|
|
276
271
|
<div className="form-field form-field--button">
|
|
277
272
|
<label>{label}</label>
|
|
278
273
|
{selectedFiles && (
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
{
|
|
282
|
-
<InjectPreview selector={FileUploadAdapter.previewerId}>
|
|
283
|
-
<FileList
|
|
284
|
-
selectedFiles={selectedFiles}
|
|
285
|
-
allFiles={currentValue}
|
|
286
|
-
handleReorderFiles={handleReorderFiles}
|
|
287
|
-
canDragAndDrop={canDragAndDrop}
|
|
288
|
-
fetchMore={fetchMore}>
|
|
289
|
-
{fileListSpan}
|
|
290
|
-
</FileList>
|
|
291
|
-
</InjectPreview>
|
|
292
|
-
) : (
|
|
274
|
+
<MediaContextProvider value={{ handleEditModal, onUnselectFile: handleSelectedFiles }}>
|
|
275
|
+
{shouldRenderInPreview ? (
|
|
276
|
+
<InjectPreview selector={FileUploadAdapter.previewerId}>
|
|
293
277
|
<FileList
|
|
294
278
|
selectedFiles={selectedFiles}
|
|
279
|
+
allFiles={currentValue}
|
|
295
280
|
handleReorderFiles={handleReorderFiles}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
281
|
+
canDragAndDrop={canDragAndDrop}
|
|
282
|
+
fetchMore={fetchMore}>
|
|
283
|
+
{fileListSpan}
|
|
284
|
+
</FileList>
|
|
285
|
+
</InjectPreview>
|
|
286
|
+
) : (
|
|
287
|
+
<FileList
|
|
288
|
+
selectedFiles={selectedFiles}
|
|
289
|
+
handleReorderFiles={handleReorderFiles}
|
|
290
|
+
fetchMore={fetchMore}
|
|
291
|
+
/>
|
|
292
|
+
)}
|
|
293
|
+
</MediaContextProvider>
|
|
301
294
|
)}
|
|
302
295
|
<FileUpload
|
|
303
296
|
actionText={fileUploadButtonText}
|
|
@@ -323,40 +316,38 @@ const FileUploadAdapter = ({
|
|
|
323
316
|
</Modal>
|
|
324
317
|
)}
|
|
325
318
|
|
|
326
|
-
{displayFileUploadModal &&
|
|
327
|
-
|
|
328
|
-
<
|
|
319
|
+
{displayFileUploadModal && simpleLayout && (
|
|
320
|
+
<div className="file-upload-modal-wrapper">
|
|
321
|
+
<ListingContainer
|
|
322
|
+
displayFileUploadModal={displayFileUploadModal}
|
|
323
|
+
closeModalAndSetValue={closeModalAndSetValue}
|
|
324
|
+
setDisplayFileUploadModal={setDisplayFileUploadModal}
|
|
325
|
+
handleSelectedFiles={handleSelectedFiles}
|
|
326
|
+
maxItems={currentLimit}
|
|
327
|
+
simpleLayout={simpleLayout}
|
|
328
|
+
filesSelected={currentValue.length > 1 ? currentValue : []}
|
|
329
|
+
/>
|
|
330
|
+
</div>
|
|
331
|
+
)}
|
|
332
|
+
|
|
333
|
+
{displayModal && !simpleLayout && (
|
|
334
|
+
<div className="file-upload-modal-wrapper">
|
|
335
|
+
<Modal
|
|
336
|
+
actions={modalActions}
|
|
337
|
+
className="file-upload-modal"
|
|
338
|
+
title="Media library"
|
|
339
|
+
onClose={() => closeModalAndSetValue()}>
|
|
329
340
|
<ListingContainer
|
|
330
|
-
displayFileUploadModal={displayFileUploadModal}
|
|
331
341
|
closeModalAndSetValue={closeModalAndSetValue}
|
|
342
|
+
displayFileUploadModal={displayFileUploadModal}
|
|
332
343
|
setDisplayFileUploadModal={setDisplayFileUploadModal}
|
|
333
344
|
handleSelectedFiles={handleSelectedFiles}
|
|
334
345
|
maxItems={currentLimit}
|
|
335
|
-
simpleLayout={simpleLayout}
|
|
336
346
|
filesSelected={currentValue.length > 1 ? currentValue : []}
|
|
337
347
|
/>
|
|
338
|
-
</
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
{displayModal &&
|
|
342
|
-
!simpleLayout && (
|
|
343
|
-
<div className="file-upload-modal-wrapper">
|
|
344
|
-
<Modal
|
|
345
|
-
actions={modalActions}
|
|
346
|
-
className="file-upload-modal"
|
|
347
|
-
title="Media library"
|
|
348
|
-
onClose={() => closeModalAndSetValue()}>
|
|
349
|
-
<ListingContainer
|
|
350
|
-
closeModalAndSetValue={closeModalAndSetValue}
|
|
351
|
-
displayFileUploadModal={displayFileUploadModal}
|
|
352
|
-
setDisplayFileUploadModal={setDisplayFileUploadModal}
|
|
353
|
-
handleSelectedFiles={handleSelectedFiles}
|
|
354
|
-
maxItems={currentLimit}
|
|
355
|
-
filesSelected={currentValue.length > 1 ? currentValue : []}
|
|
356
|
-
/>
|
|
357
|
-
</Modal>
|
|
358
|
-
</div>
|
|
359
|
-
)}
|
|
348
|
+
</Modal>
|
|
349
|
+
</div>
|
|
350
|
+
)}
|
|
360
351
|
</>
|
|
361
352
|
);
|
|
362
353
|
};
|
|
@@ -3,14 +3,11 @@ import { ONE_FILE_AS_LIMIT } from '../../constants';
|
|
|
3
3
|
|
|
4
4
|
function useLimit(initialLimit) {
|
|
5
5
|
const [currentLimit, setCurrentLimit] = useState(initialLimit);
|
|
6
|
-
useEffect(
|
|
7
|
-
()
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
},
|
|
12
|
-
[currentLimit, initialLimit]
|
|
13
|
-
);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (initialLimit && currentLimit !== ONE_FILE_AS_LIMIT) {
|
|
8
|
+
setCurrentLimit(ONE_FILE_AS_LIMIT);
|
|
9
|
+
}
|
|
10
|
+
}, [currentLimit, initialLimit]);
|
|
14
11
|
|
|
15
12
|
return [currentLimit, setCurrentLimit];
|
|
16
13
|
}
|
|
@@ -9,20 +9,16 @@ import useFileList from '../FileList/useFileList';
|
|
|
9
9
|
|
|
10
10
|
const FilterPanel = () => {
|
|
11
11
|
const [searchTerm, setSearchTerm] = useState('');
|
|
12
|
-
const { filters, selectedFilter, changeSelectedFilter, fileStores } =
|
|
13
|
-
MediaContext
|
|
14
|
-
);
|
|
12
|
+
const { filters, selectedFilter, changeSelectedFilter, fileStores } =
|
|
13
|
+
useMediaContext(MediaContext);
|
|
15
14
|
const { queryParams, data } = useFileList();
|
|
16
15
|
const [active, setActive] = useState(filters[0].id);
|
|
17
16
|
|
|
18
|
-
useEffect(
|
|
19
|
-
()
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
[queryParams.searchTerm]
|
|
25
|
-
);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (queryParams.searchTerm === null) {
|
|
19
|
+
setSearchTerm('');
|
|
20
|
+
}
|
|
21
|
+
}, [queryParams.searchTerm]);
|
|
26
22
|
|
|
27
23
|
const handleSearchTerm = ({ target: { value } }) => {
|
|
28
24
|
setSearchTerm(value);
|
|
@@ -92,19 +88,18 @@ const FilterPanel = () => {
|
|
|
92
88
|
<div className="filter-panel">
|
|
93
89
|
<div className="filter-panel__wrapper">
|
|
94
90
|
<ul className="filter-panel__list">
|
|
95
|
-
{filters.map(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
<
|
|
99
|
-
<a onClick={() => onChangeFilter(id)}>
|
|
100
|
-
{label} ({data[id]})
|
|
101
|
-
</a>
|
|
102
|
-
</li>
|
|
103
|
-
) : (
|
|
104
|
-
<li key={label} className="filter-panel__list-item active">
|
|
91
|
+
{filters.map(({ label, id }) =>
|
|
92
|
+
selectedFilter.filter !== id ? (
|
|
93
|
+
<li key={label} className="filter-panel__list-item">
|
|
94
|
+
<a onClick={() => onChangeFilter(id)}>
|
|
105
95
|
{label} ({data[id]})
|
|
106
|
-
</
|
|
107
|
-
|
|
96
|
+
</a>
|
|
97
|
+
</li>
|
|
98
|
+
) : (
|
|
99
|
+
<li key={label} className="filter-panel__list-item active">
|
|
100
|
+
{label} ({data[id]})
|
|
101
|
+
</li>
|
|
102
|
+
)
|
|
108
103
|
)}
|
|
109
104
|
</ul>
|
|
110
105
|
<div className="filter-panel__barWrapper">
|
|
@@ -23,28 +23,17 @@ const MediaFileList = ({
|
|
|
23
23
|
const [currentListIndex, setCurrentListIndex] = useState(1);
|
|
24
24
|
const [verifiedRanges, setVerifiedRanges] = useState([]);
|
|
25
25
|
const [listHeight, setListHeight] = useState(null);
|
|
26
|
-
const {
|
|
27
|
-
|
|
28
|
-
data,
|
|
29
|
-
loading,
|
|
30
|
-
setQueryParams,
|
|
31
|
-
clearList,
|
|
32
|
-
removeFile,
|
|
33
|
-
updateFile
|
|
34
|
-
} = useFileList();
|
|
26
|
+
const { queryParams, data, loading, setQueryParams, clearList, removeFile, updateFile } =
|
|
27
|
+
useFileList();
|
|
35
28
|
|
|
36
|
-
const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } =
|
|
37
|
-
MediaContext
|
|
38
|
-
);
|
|
29
|
+
const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } =
|
|
30
|
+
useMediaContext(MediaContext);
|
|
39
31
|
|
|
40
32
|
const hasFiles = !!data.files && !!data.files.length;
|
|
41
33
|
|
|
42
|
-
useEffect(
|
|
43
|
-
()
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
[loading, hasFiles, setDisplayCardPrompt]
|
|
47
|
-
);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!loading && !hasFiles) setDisplayCardPrompt(true);
|
|
36
|
+
}, [loading, hasFiles, setDisplayCardPrompt]);
|
|
48
37
|
|
|
49
38
|
useEffect(
|
|
50
39
|
() => {
|
|
@@ -87,22 +76,19 @@ const MediaFileList = ({
|
|
|
87
76
|
}
|
|
88
77
|
};
|
|
89
78
|
|
|
90
|
-
useEffect(
|
|
91
|
-
() => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
};
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
const handleListHeight = () => {
|
|
81
|
+
setListHeight(wrapperRef.current.clientHeight - 40);
|
|
82
|
+
};
|
|
95
83
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
[listHeight, wrapperRef]
|
|
105
|
-
);
|
|
84
|
+
if (wrapperRef.current) {
|
|
85
|
+
handleListHeight();
|
|
86
|
+
window.addEventListener('resize', handleListHeight);
|
|
87
|
+
}
|
|
88
|
+
return () => {
|
|
89
|
+
window.removeEventListener('resize', handleListHeight);
|
|
90
|
+
};
|
|
91
|
+
}, [listHeight, wrapperRef]);
|
|
106
92
|
|
|
107
93
|
const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;
|
|
108
94
|
|