Server IP : 192.158.238.246 / Your IP : 18.221.158.72 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/give/src/FormTaxonomies/resources/form-builder/ |
Upload File : |
import {getAvailableFormCategories, getInitialFormCategories} from "./windowData"; import {buildTermsTree} from "./utils/terms"; import {CheckboxControl} from "@wordpress/components"; import {decodeEntities} from "@wordpress/html-entities"; import {useMemo} from "react"; /** * @since 3.16.0 */ const FormCategorySetting = ({settings, setSettings}) => { const { formCategories = getInitialFormCategories(), } = settings; const categoryTree = useMemo(() => buildTermsTree(getAvailableFormCategories()), []) /** * @since 3.16.0 */ const onChange = (categoryId ) => { setSettings({formCategories: formCategories.includes( categoryId ) ? formCategories.filter( ( id ) => id !== categoryId ) : [ ...formCategories, categoryId ] }) }; return ( <div style={{display: 'flex', flexDirection: 'column'}}> {renderTerms(categoryTree, formCategories, onChange)} </div> ); } /** * @since 3.16.0 */ const renderTerms = (availableTerms, selectedTerms, onChange) => { return availableTerms.map((term) => { return ( <div key={term.id} className="editor-post-taxonomies__hierarchical-terms-choice" > <CheckboxControl __nextHasNoMarginBottom checked={ selectedTerms.indexOf( term.id ) !== -1 } onChange={ () => { const termId = parseInt( term.id, 10 ); onChange( termId ); } } label={ decodeEntities( term.name ) } /> { !! term.children.length && ( <div className="editor-post-taxonomies__hierarchical-terms-subchoices"> { renderTerms( term.children, selectedTerms, onChange ) } </div> ) } </div> ); } ); }; export default FormCategorySetting;