"use client"; import { useEditorStore } from "@/features/editor/state/editorStore"; import type { CanvasPreset, ProjectConfig } from "@/features/editor/state/editorStore"; import { NumericPropertyControl } from "@/features/editor/components/NumericPropertyControl"; import { ColorPickerField, TEXT_COLOR_PALETTE } from "@/features/editor/components/ColorPickerField"; export function ProjectPropertiesPanel() { const projectConfig = useEditorStore((state) => (state as any).projectConfig as ProjectConfig); const updateProjectConfig = useEditorStore( (state) => (state as any).updateProjectConfig as (partial: Partial) => void, ); const handleChangePreset = (preset: CanvasPreset) => { if (preset === "mobile") { updateProjectConfig({ canvasPreset: preset, canvasWidthPx: 390 }); } else if (preset === "tablet") { updateProjectConfig({ canvasPreset: preset, canvasWidthPx: 768 }); } else if (preset === "desktop") { updateProjectConfig({ canvasPreset: preset, canvasWidthPx: 1200 }); } else if (preset === "full") { updateProjectConfig({ canvasPreset: preset, canvasWidthPx: undefined }); } else { updateProjectConfig({ canvasPreset: preset }); } }; const handleChangeCanvasWidth = (value: number) => { if (value === 390) { handleChangePreset("mobile"); } else if (value === 768) { handleChangePreset("tablet"); } else if (value === 1200) { handleChangePreset("desktop"); } else { updateProjectConfig({ canvasPreset: "custom", canvasWidthPx: value }); } }; return (

프로젝트 설정

updateProjectConfig({ canvasBgColorHex: hex })} palette={TEXT_COLOR_PALETTE} />
updateProjectConfig({ bodyBgColorHex: hex })} palette={TEXT_COLOR_PALETTE} />

SEO / 메타