/** * Content Plan Plugin - Dynamic Form Field Component */ import React from 'react'; import { __ } from '@wordpress/i18n'; import { useContentPlan } from '../context/ContentPlanContext'; import { DynamicFormFieldProps } from '../types'; const DynamicFormField: React.FC = ({ fieldKey, config, value, onChange, }) => { const { getString } = useContentPlan(); const baseClasses = 'w-full h-10 sm:h-12 px-2 sm:px-3 py-2 sm:py-3 text-sm sm:text-base border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent'; const labelClasses = 'block font-medium text-gray-900 mb-1 sm:mb-2'; const descriptionClasses = 'text-gray-600 mt-1'; // Special width handling for publish_interval_days field const getInputClasses = (): string => { if (fieldKey === 'publish_interval_days') { return `${baseClasses} md:max-w-[250px]`; } return baseClasses; }; const renderField = (): JSX.Element => { switch (config.type) { case 'text': case 'email': case 'url': case 'number': return ( ) => onChange(fieldKey, e.target.value) } className={getInputClasses()} placeholder={config.placeholder || ''} required={config.required} /> ); case 'password': return ( ) => onChange(fieldKey, e.target.value) } className={baseClasses} placeholder={config.placeholder || ''} required={config.required} /> ); case 'textarea': return (