Display property images from API using full URLs
All checks were successful
Build frontend / build (push) Successful in 1m3s

- All mappers extract images from propertyInformation.images
- Paths prefixed with API base URL (http://45.93.137.91/api)
- Falls back to placeholder if no images
- Updated: main page, properties listing, property detail, owner properties
This commit is contained in:
Claw AI
2026-03-30 01:01:42 +00:00
parent 4299968764
commit 39193337b3
5 changed files with 69 additions and 42 deletions

View File

@ -99,22 +99,21 @@ export default function AddPropertyPage() {
livingRooms: 1,
services: {
electricity: false,
internet: false,
heating: false,
water: false,
airConditioning: false,
parking: false,
elevator: false
[PropertyService.ELECTRICITY]: false,
[PropertyService.INTERNET]: false,
[PropertyService.HEATING]: false,
[PropertyService.WATER]: false,
[PropertyService.CENTRAL_AIR_CONDITIONING]: false,
[PropertyService.PARKING]: false,
[PropertyService.ELEVATOR]: false
},
serviceDetails: {},
terms: {
noSmoking: false,
noPets: false,
noParties: false,
noAlcohol: false,
suitableForChildren: true,
suitableForElderly: true
[PropertyTerm.NO_SMOKING]: false,
[PropertyTerm.NO_ANIMALS]: false,
[PropertyTerm.NO_PARTIES]: false
},
offerType: 'daily',
@ -831,34 +830,37 @@ const handleMapClick = async (coords) => {
</div>
<div>
<h3 className="text-lg font-bold text-gray-900 mb-4">الخدمات المتوفرة</h3>
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
<h3 className="text-lg font-bold text-gray-900 mb-4">الخدمات المتوفرة <span className="text-red-500">*</span></h3>
<div className="space-y-3">
{serviceList.map((service) => {
const Icon = service.icon;
const isSelected = formData.services[service.id];
return (
<label
key={service.id}
className={`flex items-center gap-2 p-3 border rounded-xl cursor-pointer transition-all ${
formData.services[service.id]
? 'border-amber-500 bg-amber-50'
: 'border-gray-200 hover:border-amber-200 hover:bg-amber-50/50'
}`}
>
<input
type="checkbox"
checked={formData.services[service.id]}
onChange={() => toggleService(service.id)}
className="hidden"
/>
<Icon className={`w-5 h-5 ${
formData.services[service.id] ? 'text-amber-600' : 'text-gray-400'
}`} />
<span className={`text-sm ${
formData.services[service.id] ? 'text-amber-700' : 'text-gray-600'
}`}>
{service.label}
</span>
</label>
<div key={service.id} className={`border rounded-xl transition-all ${isSelected ? 'border-amber-500 bg-amber-50' : 'border-gray-200'}`}>
<label className="flex items-center gap-3 p-3 cursor-pointer">
<input
type="checkbox"
checked={isSelected}
onChange={() => toggleService(service.id)}
className="w-4 h-4 text-amber-500 rounded"
/>
<Icon className={`w-5 h-5 ${isSelected ? 'text-amber-600' : 'text-gray-400'}`} />
<span className={`text-sm font-medium ${isSelected ? 'text-amber-700' : 'text-gray-600'}`}>
{service.label}
</span>
</label>
{isSelected && (
<div className="px-3 pb-3">
<input
type="text"
value={formData.serviceDetails[service.id] || ''}
onChange={(e) => updateServiceDetail(service.id, e.target.value)}
className="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-amber-500"
placeholder="تفاصيل الخدمة (مثال: في جميع الغرف)"
/>
</div>
)}
</div>
);
})}
</div>