File "index.js"
Full Path: /home/fresvfqn/waterdamagerestorationandrepairsmithtown.com/wp-content/plugins/astra-sites/inc/lib/onboarding/assets/src/components/sync-in-progress-modal/index.js
File size: 1.83 KB
MIME-type: text/x-java
Charset: utf-8
import { useState, useEffect } from 'react';
import { __ } from '@wordpress/i18n';
import { useStateValue } from '../../store/store';
import ICONS from '../../../icons';
import { classNames } from '../../utils/functions';
import { Line } from 'rc-progress';
const SyncInProgressModal = ( { open = false } ) => {
const [ { syncPageCount, syncPageInProgress } ] = useStateValue();
const getProgressPercent = () => {
if ( syncPageCount > 0 ) {
return ( syncPageInProgress / syncPageCount ) * 100;
}
return 0;
};
const [ progress, setProgress ] = useState( getProgressPercent() );
useEffect( () => {
if ( syncPageInProgress > 0 ) {
setProgress( getProgressPercent() );
}
}, [ syncPageInProgress ] );
return (
<div
className={ classNames(
'w-full absolute hidden h-screen top-0 left-0 bg-st-background-secondary/80',
open && 'flex justify-center items-center'
) }
>
<div className="bg-white w-[296px] rounded-lg shadow-2xl flex flex-col items-center justify-center -mt-36 p-5">
<div className="flex justify-between">
<p className="!text-base !font-semibold text-nav-active">
{ __( 'Syncing Templates Library…', 'astra-sites' ) }
</p>
<div className="flex items-center justify-center text-blue-500 animate-spin w-[15px] ml-3">
{ ICONS.reloadIcon }
</div>
</div>
<p className="text-sm text-[#4B5563] text-center !mt-1">
{ __(
'Updating the library to include all the latest templates.',
'astra-sites'
) }
</p>
{ syncPageCount > 0 ? (
<div className="progress-bar w-full flex justify-between mt-4">
<Line
percent={ progress }
strokeWidth={ 2 }
trailWidth={ 2 }
trailColor="#E5E7EB"
strokeColor="#3B82F6"
/>
</div>
) : (
''
) }
</div>
</div>
);
};
export default SyncInProgressModal;