diff --git a/app/owner/properties/add/page.js b/app/owner/properties/add/page.js index dc6bbe7..3b65012 100644 --- a/app/owner/properties/add/page.js +++ b/app/owner/properties/add/page.js @@ -166,6 +166,8 @@ export default function AddPropertyPage() { const [imagePreviews, setImagePreviews] = useState([]); const [uploadedImagePaths, setUploadedImagePaths] = useState([]); + const [customTerms, setCustomTerms] = useState([]); + const [customTermInput, setCustomTermInput] = useState(''); const [selectedLocation, setSelectedLocation] = useState(null); const [mapCenter, setMapCenter] = useState([33.5138, 36.2765]); @@ -459,6 +461,18 @@ const handleMapClick = async (coords) => { }); }; + const addCustomTerm = () => { + const val = customTermInput.trim(); + if (!val) return; + if (customTerms.includes(val)) return; + setCustomTerms(prev => [...prev, val]); + setCustomTermInput(''); + }; + + const removeCustomTerm = (term) => { + setCustomTerms(prev => prev.filter(t => t !== term)); + }; + const incrementBedrooms = () => { setFormData({ ...formData, @@ -588,11 +602,13 @@ const handleMapClick = async (coords) => { .filter(([, v]) => v) .map(([k]) => k); + const allTerms = [...new Set([...selectedTerms, ...customTerms])]; + const details = { description: formData.description || '', services: selectedServices, serviceDetails: selectedServices.reduce((acc, s) => ({ ...acc, [s]: formData.serviceDetails[s] || 'in general' }), {}), - terms: selectedTerms.reduce((acc, k) => ({ ...acc, [k]: true }), {}), + terms: allTerms.reduce((acc, k) => ({ ...acc, [k]: true }), {}), displayType: formData.offerType === 'both' ? 'Both' : formData.offerType === 'daily' ? 'Daily' : 'Monthly', propertyCondition: formData.furnished ? 'WithFurniture' : 'WithoutFurniture', floorNumber: parseInt(formData.floorNumber) || 0, @@ -1036,6 +1052,48 @@ const handleMapClick = async (coords) => { ); })} + + {/* Custom Terms */} +
+

إضافة شرط مخصص

+
+ setCustomTermInput(e.target.value)} + onKeyDown={(e) => { if (e.key === 'Enter') { e.preventDefault(); addCustomTerm(); } }} + placeholder="اكتب شرطاً مخصصاً..." + className="flex-1 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-amber-500 focus:border-transparent outline-none" + /> + +
+ {customTerms.length > 0 && ( +
+ {customTerms.map((term) => ( + + {term} + + + ))} +
+ )} +
)}