import { createElement } from '@wordpress/element' import cls from 'classnames' import { __ } from 'ct-i18n' import { Select, EntityIdPicker } from 'blocksy-options' import useConditionsData from './useConditionsData' import ExpireCondition from './ExpireCondition' import ScheduleDate from './ScheduleDate' const SingleCondition = ({ className = '', condition, onRemove, onChange }) => { condition = { ...condition, payload: { ...condition.payload, }, } const { allRules, allLanguages } = useConditionsData(condition) const ruleDescriptor = allRules.find(({ key }) => key === condition.rule) const hasAdditions = condition.rule === 'post_ids' || condition.rule === 'page_ids' || condition.rule === 'product_ids' || condition.rule === 'custom_post_type_ids' || condition.rule === 'taxonomy_ids' || condition.rule === 'post_with_taxonomy_ids' || condition.rule === 'card_product_with_taxonomy_ids' || condition.rule === 'card_post_with_taxonomy_ids' || condition.rule === 'product_with_taxonomy_ids' || condition.rule === 'product_taxonomy_ids' || condition.rule === 'current_language' || condition.rule === 'user_post_author_id' || condition.rule === 'author' || condition.rule === 'start_end_date' || condition.rule === 'schedule_date' || condition.rule === 'request_referer' || condition.rule === 'request_cookie' || condition.rule === 'request_url' || (ruleDescriptor && ruleDescriptor.sub_ids && ruleDescriptor.sub_ids.length > 0) || (ruleDescriptor && ruleDescriptor.is_custom_rule && ruleDescriptor.has_text_field) || (ruleDescriptor && ruleDescriptor.is_custom_rule && ruleDescriptor.choices) return (
{ const ruleDescriptor = allRules.find( ({ key }) => key === rule ) if ( ruleDescriptor.sub_ids && ruleDescriptor.sub_ids.length > 0 ) { onChange({ ...condition, rule: ruleDescriptor.sub_ids[0].id, }) return } onChange({ ...condition, rule, }) }} /> {(condition.rule === 'post_ids' || condition.rule === 'custom_post_type_ids' || condition.rule === 'product_ids' || condition.rule === 'page_ids') && ( { onChange({ ...condition, payload: { ...condition.payload, post_id: id, }, }) }} /> )} {(condition.rule === 'taxonomy_ids' || condition.rule === 'post_with_taxonomy_ids' || condition.rule === 'card_post_with_taxonomy_ids') && ( { onChange({ ...condition, payload: { ...condition.payload, taxonomy_id: id, }, }) }} /> )} {(condition.rule === 'product_with_taxonomy_ids' || condition.rule === 'product_taxonomy_ids' || condition.rule === 'card_product_with_taxonomy_ids') && ( { onChange({ ...condition, payload: { ...condition.payload, taxonomy_id: id, }, }) }} /> )} {condition.rule === 'current_language' && ( ({ key: subId.id, value: subId.title, })), search: true, inputClassName: 'ct-dropdown-normal-width', }} value={condition.rule} onChange={(sub_id) => { onChange({ ...condition, rule: sub_id, }) }} /> )} {condition.rule === 'start_end_date' && ( )} {condition.rule === 'schedule_date' && ( )} {condition.rule === 'request_referer' && (
{ onChange({ ...condition, payload: { ...condition.payload, referer: e.target.value, }, }) }} /> {__( 'Display based on referer domain', 'blocksy-companion' )}
)} {condition.rule === 'request_cookie' && (
{ onChange({ ...condition, payload: { ...condition.payload, cookie: e.target.value, }, }) }} /> {__( 'Display if cookie is present', 'blocksy-companion' )}
)} {condition.rule === 'request_url' && (
{ onChange({ ...condition, payload: { ...condition.payload, url: e.target.value, }, }) }} /> {__( 'Display if query string is present in URL', 'blocksy-companion' )}
)} {ruleDescriptor && ruleDescriptor.is_custom_rule && ruleDescriptor.has_text_field && (
{ onChange({ ...condition, payload: { ...condition.payload, value: e.target.value, }, }) }} />
)} {ruleDescriptor && ruleDescriptor.is_custom_rule && ruleDescriptor.choices && (