Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
malacoscolicine
/
wp-content
/
plugins
/
wp-smushit
/
_src
/
react
/
bulk
:
background-media-library-scanner-modal.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
import React, {useRef, useState} from "react"; import {post} from "../utils/request"; import MediaLibraryScannerModal from "./media-library-scanner-modal"; export default function BackgroundMediaLibraryScannerModal( { nonce = '', onScanCompleted = () => false, onClose = () => false, focusAfterClose = '' } ) { const [inProgress, setInProgress] = useState(false); const [progress, setProgress] = useState(0); const [cancelled, setCancelled] = useState(false); const progressTimeoutId = useRef(0); function start() { post('wp_smush_start_background_scan', nonce).then(() => { setInProgress(true); progressTimeoutId.current = setTimeout(updateProgress, 2000); }); } function clearProgressTimeout() { if (progressTimeoutId.current) { clearTimeout(progressTimeoutId.current); } } function updateProgress() { post('wp_smush_get_background_scan_status', nonce).then(response => { const isCompleted = response?.is_completed; if (isCompleted) { clearProgressTimeout(); onScanCompleted(); return; } const isCancelled = response?.is_cancelled; if (isCancelled) { clearProgressTimeout(); changeStateToCancelled(); return; } const totalItems = response?.total_items; const processedItems = response?.processed_items; const progress = (processedItems / totalItems) * 100; setProgress(progress); progressTimeoutId.current = setTimeout(updateProgress, 1000); }); } function cancelScan() { clearProgressTimeout(); post('wp_smush_cancel_background_scan', nonce) .then(changeStateToCancelled); } function changeStateToCancelled() { setCancelled(true); setProgress(0); setInProgress(false); } return <MediaLibraryScannerModal inProgress={inProgress} progress={progress} onCancel={cancelScan} focusAfterClose={focusAfterClose} onClose={onClose} onStart={start} />; };