useImageFunctions.js
27 lines
| 1 | import { store as blockEditorStore } from '@wordpress/block-editor'; |
| 2 | import { pick } from 'lodash'; |
| 3 | import { useSelect, useDispatch } from '@wordpress/data'; |
| 4 | import { store as noticesStore } from '@wordpress/notices'; |
| 5 | import { isBlobURL } from '@wordpress/blob'; |
| 6 | |
| 7 | export function useImageFunctions() { |
| 8 | const { createErrorNotice } = useDispatch( noticesStore ); |
| 9 | |
| 10 | const { mediaUpload } = useSelect( ( select ) => { |
| 11 | const { getSettings } = select( blockEditorStore ); |
| 12 | return pick( getSettings(), [ 'imageDefaultSize', 'mediaUpload' ] ); |
| 13 | }, [] ); |
| 14 | |
| 15 | const onUploadError = ( message ) => { |
| 16 | createErrorNotice( message[ 2 ], { type: 'snackbar' } ); |
| 17 | }; |
| 18 | |
| 19 | const isTemporaryImage = ( url ) => isBlobURL( url ); |
| 20 | |
| 21 | return { |
| 22 | mediaUpload, |
| 23 | onUploadError, |
| 24 | isTemporaryImage, |
| 25 | }; |
| 26 | } |
| 27 |