diff --git a/src/pages/editor/Editor.tsx b/src/pages/editor/Editor.tsx
index 6246a5c..987fc41 100644
--- a/src/pages/editor/Editor.tsx
+++ b/src/pages/editor/Editor.tsx
@@ -1,10 +1,18 @@
-import { type FC } from 'react'
+import { type FC, useState } from 'react'
+import { clx } from '@/helpers/utils'
import EditorSidebar from './components/EditorSidebar'
import EditorCanvas from './components/EditorCanvas'
+import LayersPanel from './components/LayersPanel'
const Editor: FC = () => {
+ const [isLayersPanelOpen, setIsLayersPanelOpen] = useState(false)
+
return (
-
+
+
diff --git a/src/pages/editor/components/LayersPanel.tsx b/src/pages/editor/components/LayersPanel.tsx
new file mode 100644
index 0000000..9ef52d2
--- /dev/null
+++ b/src/pages/editor/components/LayersPanel.tsx
@@ -0,0 +1,140 @@
+import { DocumentText, Layer, Eye, EyeSlash, Lock1, Lock, Trash, ArrowRight2, Text, Shapes } from 'iconsax-react'
+import { useEditorStore } from '../store/editorStore'
+import { clx } from '@/helpers/utils'
+
+type LayersPanelProps = {
+ isOpen: boolean
+ setIsOpen: (isOpen: boolean) => void
+}
+
+const LayersPanel = ({ isOpen, setIsOpen }: LayersPanelProps) => {
+ const { objects, selectedObjectId, setSelectedObjectId, deleteObject } = useEditorStore()
+
+ const getLayerIcon = (type: string) => {
+ switch (type) {
+ case 'text':
+ return
+ case 'rectangle':
+ case 'image':
+ case 'grid':
+ return
+ default:
+ return
+ }
+ }
+
+ const getLayerLabel = (type: string) => {
+ switch (type) {
+ case 'text':
+ return 'متن'
+ case 'rectangle':
+ case 'image':
+ case 'grid':
+ return 'اشکال هندسی'
+ default:
+ return 'لایه'
+ }
+ }
+
+ if (!isOpen) {
+ return (
+
+
+
+
+
+
+ )
+ }
+
+ return (
+
+
+
+
+
+
لایه ها
+
+
+
+
+
+ {objects.length === 0 ? (
+
+ لایهای وجود ندارد
+
+ ) : (
+ objects.map((obj) => {
+ const isSelected = selectedObjectId === obj.id
+ return (
+
setSelectedObjectId(obj.id)}
+ className={clx(
+ 'flex items-center gap-3 p-3 rounded-lg cursor-pointer transition-colors',
+ isSelected ? 'bg-blue-50 border border-blue-200' : 'bg-gray-50 hover:bg-gray-100'
+ )}
+ >
+
+ {getLayerIcon(obj.type)}
+
+
+ {getLayerLabel(obj.type)}
+
+
+
+
+
+
+
+ )
+ })
+ )}
+
+
+
+
+ )
+}
+
+export default LayersPanel
+