wp_back/wp-content/plugins/wp-smushit/_src/react/bulk/media-library-scanner.js
2024-05-20 15:37:46 +03:00

52 lines
1.5 KiB
JavaScript

import React, {useState} from "react";
import domReady from '@wordpress/dom-ready';
import ReactDOM from "react-dom";
import Button from "../common/button";
import FloatingNoticePlaceholder from "../common/floating-notice-placeholder";
import {showSuccessNotice} from "../utils/notices";
import AjaxMediaLibraryScannerModal from "./ajax-media-library-scanner-modal";
import BackgroundMediaLibraryScannerModal from "./background-media-library-scanner-modal";
const {__} = wp.i18n;
function MediaLibraryScanner({}) {
const [modalOpen, setModalOpen] = useState(false);
return <>
<FloatingNoticePlaceholder id="wp-smush-media-library-scanner-notice"/>
{modalOpen &&
<BackgroundMediaLibraryScannerModal
focusAfterClose="wp-smush-open-media-library-scanner"
nonce={mediaLibraryScan.nonce}
onScanCompleted={() => {
showSuccessNotice(
'wp-smush-media-library-scanner-notice',
__('Scan completed successfully!', 'wp-smushit'),
true
);
setModalOpen(false);
window.location.reload();
}}
onClose={() => setModalOpen(false)}
/>
}
<Button id="wp-smush-open-media-library-scanner" text={__('Re-Check Images', 'wp-smushit')}
className="wp-smush-scan"
icon="sui-icon-update"
disabled={modalOpen}
onClick={() => setModalOpen(true)}
/>
</>;
}
domReady(function () {
const scannerContainer = document.getElementById('wp-smush-media-library-scanner');
if (scannerContainer) {
ReactDOM.render(
<MediaLibraryScanner/>,
scannerContainer
);
}
});