芝麻web文件管理V1.00
编辑当前文件:/home/felaukpo/public_html/wp-content/plugins/cartflows/wizard/assets/src/fields/CheckboxField.js
import React, { useState, useEffect } from 'react'; import parse from 'html-react-parser'; import { Tooltip } from '@WizardFields'; import classnames from 'classnames'; function Checkbox( props ) { const { name, id, label, value, desc, backComp = false, tooltip, onClick, notice, isDisabled = false, } = props; const [ inputvalue, setInputvalue ] = useState( value ); useEffect( () => { setInputvalue( value ); }, [ value ] ); const checkedvalue = backComp ? 'enable' : 'yes'; const uncheckedvalue = backComp ? 'disable' : 'no'; function handleCheckboxClick( e ) { let current_value = 'no'; if ( e.target.checked ) { // Check is there any notice added in the checkbox. if ( notice && ! show_notice( notice ) ) { return; } setInputvalue( checkedvalue ); current_value = checkedvalue; } else { setInputvalue( uncheckedvalue ); current_value = uncheckedvalue; } // Trigger change const changeEvent = new CustomEvent( 'wcf:checkbox:change', { bubbles: true, detail: { e, name, value: current_value }, } ); document.dispatchEvent( changeEvent ); } function onChangeHandle( e ) { if ( onClick ) { onClick( e ); } } // Function to show desired alert box to get the confirmation from the user input. function show_notice() { switch ( notice.type ) { case 'alert': alert( notice.message ); return true; case 'confirm': const is_confirm = confirm( notice.message ); return is_confirm ? true : false; case 'prompt': const is_prompt = prompt( notice.message ); return is_prompt === notice.check.toUpperCase() ? true : false; default: return false; } } return (
{ label && (
{ label } { tooltip &&
}
) }
{ desc && (
{ parse( desc ) }
) }
); } export default Checkbox;