diff --git a/src/pages/SharedView.tsx b/src/pages/SharedView.tsx index a513212..b889c22 100644 --- a/src/pages/SharedView.tsx +++ b/src/pages/SharedView.tsx @@ -4,6 +4,8 @@ import { supabase } from '@/lib/supabase' import { useCanvas } from '@/hooks/useCanvas' import { useCanvasStore } from '@/store/canvasStore' import { ZoomControls } from '@/components/canvas/ZoomControls' +import { ElementInspector } from '@/components/canvas/ElementInspector' +import { TextEditor } from '@/components/canvas/TextEditor' import { Sparkles, Eye, ShieldAlert } from 'lucide-react' import type { Scene } from '@/types/database.types' @@ -44,6 +46,7 @@ export default function SharedView() { setScene(data) store.setReadOnly(true) + // Read-only modda default alət 'select' — element xüsusiyyətlərinə baxmaq üçün store.setTool('select') store.loadScene( (data.elements as any) ?? [], @@ -73,24 +76,24 @@ export default function SharedView() { if (error) { return (
-
-
-
+
+ Flaro navigate('/')} - className="bg-orange-500 text-white font-bold text-xl px-4 py-1.5 rounded-xl shadow-md rotate-1 cursor-pointer" - > - Flaro -
- İctimai Baxış + /> + İctimai Baxış
-
+
-
-
+
+
-

+

Baxış Mümkün Deyil

@@ -111,65 +114,76 @@ export default function SharedView() { // ── Əsas layout — canvas həmişə DOM-da, loading overlay üstdədir ───────── return (

- - {/* Top Header */} -
- {isLoading ? ( - /* Loading zamanı skeleton header */ -
-
- Flaro -
-
-
- ) : ( -
-
- Flaro -
- {scene?.title ?? ''} - - {shareToken?.slice(0, 8)}... - + {/* Top Header — mobil responsive */} +
+
+ Flaro navigate('/')} + /> +
+ {isLoading ? ( +
+ ) : ( + <> + + {scene?.title ?? ''} + + + {shareToken?.slice(0, 8)}... + + + )}
- )} - -
-
- Oxuma Rejimi +
+
+
+ + Oxuma Rejimi
- {/* Canvas Area — həmişə render olunur ki, useCanvas render loop başlasın */} -
- - {/* Loading overlay — canvas üzərindədir amma canvas həmişə DOM-dadır */} - {isLoading && ( -
-
-
-

Scene Yüklənir...

+ {/* Əsas sahə: Canvas + Sağ Panel */} +
+ {/* Canvas */} +
+ {/* Loading overlay — canvas üzərindədir amma canvas həmişə DOM-dadır */} + {isLoading && ( +
+
+
+

Scene Yüklənir...

+
-
- )} - - + )} + + + {/* TextEditor — shared view-də də text elementlərin mətnini göstərmək üçün */} + +
+ + {/* Element Xüsusiyyətləri Panel (read-only) */} + {!isLoading && }
- {/* Zoom Controls */} + {/* Zoom Controls — mobil responsive */}
)