PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.1
JetFormBuilder — Dynamic Blocks Form Builder v3.1.1
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / assets / src / package / validation / components / AdvancedRulesModal.js
jetformbuilder / assets / src / package / validation / components Last commit date
AdvancedRuleItem.js 2 years ago AdvancedRuleModalItem.js 2 years ago AdvancedRulesIsEmpty.js 2 years ago AdvancedRulesList.js 2 years ago AdvancedRulesModal.js 2 years ago ChooseRelatedField.js 2 years ago EditAdvancedRulesButton.js 2 years ago EditRulesModalContext.js 2 years ago HumanReadableRule.js 2 years ago ValidationBlockMessage.js 2 years ago ValidationMetaMessage.js 2 years ago ValidationToggleGroup.js 2 years ago
AdvancedRulesModal.js
57 lines
1 import useBlockAttributes from '../../blocks/hooks/useBlockAttributes';
2 import useOnUpdateModal from '../../action-modal/hooks/useOnUpdateModal';
3 import Repeater from '../../repeater/components/repeater';
4 import RepeaterAddNew from '../../repeater/components/repeater.add.new';
5 import AdvancedRuleModalItem from './AdvancedRuleModalItem';
6 import RepeaterState from '../../repeater/components/repeater.state';
7 import RepeaterHeadContext
8 from '../../repeater/context/repeater.custom.item.head';
9 import humanReadableRule from '../helpers/humanReadableRule';
10
11 const {
12 useState,
13 } = wp.element;
14 const {
15 __,
16 } = wp.i18n;
17
18 function AdvancedRulesModal() {
19 const [ attributes, setAttributes ] = useBlockAttributes();
20 const [ current, setCurrent ] = useState(
21 () => attributes.validation?.rules ?? [],
22 );
23
24 useOnUpdateModal( () => {
25 setAttributes( prev => (
26 {
27 ...prev,
28 validation: {
29 ...attributes.validation,
30 rules: current,
31 },
32 }
33 ) );
34 } );
35
36 return <RepeaterState state={ setCurrent }>
37 <RepeaterHeadContext.Provider value={ {
38 isSupported: () => true,
39 render: ( { currentItem } ) => <span
40 className={ 'repeater-item-title' }
41 dangerouslySetInnerHTML={ {
42 __html: humanReadableRule( currentItem ),
43 } }
44 />
45 } }>
46 <Repeater items={ current }>
47 <AdvancedRuleModalItem/>
48 </Repeater>
49 </RepeaterHeadContext.Provider>
50 <RepeaterAddNew>
51 { __( 'Add Rule', 'jet-form-builder' ) }
52 </RepeaterAddNew>
53 </RepeaterState>;
54
55 }
56
57 export default AdvancedRulesModal;