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 */} +
إضافة شرط مخصص
+