/** * Keyword Input Component * * Reusable component for managing multiple keyword/URL inputs * * @package ThinkRank * @since 1.0.0 */ import { useState } from '@wordpress/element'; import { TextControl } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { plus, close } from '@wordpress/icons'; const KeywordInput = ({ keywords = [''], onChange, label = __('Keywords', 'thinkrank'), help = '', placeholder = __('Enter keyword...', 'thinkrank'), maxItems = 10 }) => { /** * Handle keyword change */ const handleKeywordChange = (index, value) => { const newKeywords = [...keywords]; newKeywords[index] = value; onChange(newKeywords); }; /** * Add new keyword input */ const addKeyword = () => { if (keywords.length < maxItems) { onChange([...keywords, '']); } }; /** * Remove keyword input */ const removeKeyword = (index) => { if (keywords.length > 1) { const newKeywords = keywords.filter((_, i) => i !== index); onChange(newKeywords); } }; return (
{help}
)}