diff --git a/src/app/(dashboard)/properties/page.tsx b/src/app/(dashboard)/properties/page.tsx
index a129b1b..e78b3d6 100644
--- a/src/app/(dashboard)/properties/page.tsx
+++ b/src/app/(dashboard)/properties/page.tsx
@@ -9,7 +9,7 @@ export default async function PropertiesPage() {
const properties = await listProperties(ctx.tenantId);
return (
-
+
);
diff --git a/src/components/map/properties-map-view-inner.tsx b/src/components/map/properties-map-view-inner.tsx
new file mode 100644
index 0000000..c799ecd
--- /dev/null
+++ b/src/components/map/properties-map-view-inner.tsx
@@ -0,0 +1,137 @@
+"use client";
+
+import { useEffect, useRef } from "react";
+import maplibregl from "maplibre-gl";
+import "maplibre-gl/dist/maplibre-gl.css";
+import type { Property } from "@/lib/appwrite/schema";
+import {
+ PROPERTY_TYPE_LABELS,
+ LISTING_TYPE_LABELS,
+} from "@/lib/appwrite/schema";
+
+const STYLE_URL = "https://tiles.openfreemap.org/styles/bright";
+const TURKEY_CENTER: [number, number] = [35.0, 39.0];
+
+const STATUS_COLORS: Record
= {
+ aktif: "#2563eb",
+ pasif: "#9ca3af",
+ satildi: "#f97316",
+ kiralandit: "#8b5cf6",
+};
+
+interface Props {
+ properties: Property[];
+ selectedId?: string | null;
+ onSelect: (id: string) => void;
+}
+
+export function PropertiesMapViewInner({ properties, selectedId, onSelect }: Props) {
+ const containerRef = useRef(null);
+ const mapRef = useRef(null);
+ const markersRef = useRef
+
+ {/* Right: map */}
+
+
+ )}
{}}
/>
);
@@ -153,7 +291,7 @@ function StatusBadge({ status }: { status: string }) {
kiralandit: "outline",
};
return (
-
+
{PROPERTY_STATUS_LABELS[status as keyof typeof PROPERTY_STATUS_LABELS] ?? status}
);