diff --git a/app/owner/properties/add/page.js b/app/owner/properties/add/page.js
index 357b4d3..654dd6a 100644
--- a/app/owner/properties/add/page.js
+++ b/app/owner/properties/add/page.js
@@ -227,7 +227,6 @@ export default function AddPropertyPage() {
};
useEffect(() => {
- // Fetch available currencies
getCurrencies().then((data) => {
if (Array.isArray(data) && data.length > 0) {
setCurrencies(data);
@@ -278,7 +277,7 @@ export default function AddPropertyPage() {
};
const handleGeolocation = () => {
-if (!navigator.geolocation) {
+ if (!navigator.geolocation) {
toast.error(t('toast.geolocationNotSupported'));
return;
}
@@ -291,7 +290,7 @@ if (!navigator.geolocation) {
setMapCenter([latitude, longitude]);
setMapZoom(18);
-try {
+ try {
const response = await fetch(
`https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitude}&accept-language=ar`
);
@@ -319,57 +318,59 @@ try {
);
};
-const handleMapClick = async (coords) => {
- try {
- const [lat, lng] = coords;
-
- toast.loading(t('addProperty.locationSelecting'), { id: 'location' });
-
-const response = await fetch(
- `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&accept-language=ar`
- );
- const data = await response.json();
-
- setSelectedLocation({
- lat: lat,
- lng: lng,
+ const handleMapClick = async (coords) => {
+ try {
+ const [lat, lng] = coords;
+
+ toast.loading(t('addProperty.locationSelecting'), { id: 'location' });
+
+ const response = await fetch(
+ `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&accept-language=ar`
+ );
+ const data = await response.json();
+
+ setSelectedLocation({
+ lat: lat,
+ lng: lng,
+ address: data.display_name || t('addProperty.defaultAddress')
+ });
+
+ setMapZoom(18);
+ toast.success(t('toast.locationSelectedSuccess'), { id: 'location' });
+
+ } catch (error) {
+ console.error(t('addProperty.locationError'), error);
+ const [lat, lng] = coords;
+ setSelectedLocation({
+ lat: lat,
+ lng: lng,
+ address: t('addProperty.defaultAddress')
+ });
+ setMapZoom(18);
+ toast.success(t('toast.locationConfirmed'), { id: 'location' });
+ }
+ };
+
+ const handleMarkerDragEnd = async (lat, lng) => {
+ try {
+ const response = await fetch(
+ `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&accept-language=ar`
+ );
+ const data = await response.json();
+ setSelectedLocation({
+ lat,
+ lng,
address: data.display_name || t('addProperty.defaultAddress')
- });
-
- setMapZoom(18);
- toast.success(t('toast.locationSelectedSuccess'), { id: 'location' });
-
- } catch (error) {
- console.error(t('addProperty.locationError'), error);
- const [lat, lng] = coords;
- setSelectedLocation({
- lat: lat,
- lng: lng,
- address: t('addProperty.defaultAddress')
- });
- setMapZoom(18);
- toast.success(t('toast.locationConfirmed'), { id: 'location' });
- }
-};
-const handleMarkerDragEnd = async (lat, lng) => {
- try {
- const response = await fetch(
- `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&accept-language=ar`
- );
- const data = await response.json();
- setSelectedLocation({
- lat,
- lng,
- address: data.display_name || t('addProperty.defaultAddress')
- });
- } catch (error) {
- setSelectedLocation({
- lat,
- lng,
- address: t('addProperty.defaultAddress')
- });
- }
-};
+ });
+ } catch (error) {
+ setSelectedLocation({
+ lat,
+ lng,
+ address: t('addProperty.defaultAddress')
+ });
+ }
+ };
+
const confirmLocation = () => {
if (selectedLocation) {
setFormData({
@@ -414,7 +415,6 @@ const handleMarkerDragEnd = async (lat, lng) => {
continue;
}
- // Show preview
const reader = new FileReader();
reader.onloadend = () => {
setImagePreviews(prev => [...prev, reader.result]);
@@ -426,7 +426,6 @@ const handleMarkerDragEnd = async (lat, lng) => {
images: [...prev.images, file]
}));
- // Upload to server immediately
try {
const path = await uploadPicture(file);
setUploadedImagePaths(prev => [...prev, path]);
@@ -648,7 +647,6 @@ const handleMarkerDragEnd = async (lat, lng) => {
return;
}
- // Map UI property type to API BuildingType enum
const buildingTypeMap = { apartment: BuildingType.APARTMENT, villa: BuildingType.VILLA, sweet: BuildingType.SWEET, suite: BuildingType.SWEET, room: BuildingType.ROOM, studio: BuildingType.STUDIO, office: BuildingType.OFFICE, farms: BuildingType.FARMS, shop: BuildingType.SHOP, warehouse: BuildingType.WAREHOUSE };
const selectedServices = Object.entries(formData.services)
@@ -750,7 +748,7 @@ const handleMarkerDragEnd = async (lat, lng) => {
currencyId: selectedCurrencyId,
rentType: rentTypeMap[formData.offerType] ?? RentType.MONTHLY,
type: formData.furnished ? RentPropertyType.FURNISHED : RentPropertyType.UNFURNISHED,
- allowedPaymentPeriod: formData.allowedPaymentPeriod || '',
+ allowedPaymentPeriod: formData.allowedPaymentPeriod || '1.00:00:00',
});
const res = await addRentProperty(payload);
toast.success(t('toast.rentPropertySuccess'));
@@ -787,7 +785,7 @@ const handleMarkerDragEnd = async (lat, lng) => {
)}
-
@@ -838,7 +836,7 @@ const handleMarkerDragEnd = async (lat, lng) => {
-