| Server IP : 104.21.28.229 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress-gradebook/src/components/chart/ |
Upload File : |
import { __ } from '@wordpress/i18n';
import { useState, useEffect } from '@wordpress/element';
import { addQueryArgs } from '@wordpress/url';
import apiFetch from '@wordpress/api-fetch';
import { Spinner , Notice } from '@wordpress/components';
import Skeleton from '../skeleton';
import { Pie } from 'react-chartjs-2';
export default function ChartQuestion( { courseID, quizzID, studentID } ) {
const [ data, setData ] = useState( '' );
const [ loading, setLoading ] = useState( false );
useEffect( () => {
setLoading( true );
try {
async function getResponse() {
const response = await apiFetch( {
path: addQueryArgs( 'lp-gradebook/get-chart-questions', { courseID, quizzID, studentID } ),
method: 'GET',
} );
if ( response?.data ) {
setData( {
labels: response.data.labels,
datasets: [
{
data: response.data.datasets.data,
backgroundColor: response.data.datasets.backgroundColor,
borderColor: response.data.datasets.borderColor,
},
],
} );
}
setLoading( false );
}
getResponse();
} catch ( e ) {
setData( '' );
setLoading( false );
}
}, [ quizzID, studentID ] );
return (
<>
{ ! loading ? (
<>
{ data ? (
<>
<div className={ `${ loading ? 'detail-chart__loading' : '' }` }>
<Pie data={ data } height={ 160 } />
{ loading && <Spinner /> }
</div>
<div className="title-chart center">
<h3>{ __( 'Chart:', 'learnpress-gradebook' ) }</h3>
<p>{ __( 'Total number of true and false questions\'s quiz', 'learnpress-gradebook' ) }</p>
</div>
</>
) : (
<Notice status="warning" isDismissible={ false }>
<p>{ __( 'No data available', 'learnpress-gradebook' ) }</p>
</Notice>
) }
</>
) : (
<Skeleton />
) }
</>
);
}