feat(studio): Phase 4 v1 — FlexStory block-field editor
Scene-engine (FLEXIBLE) projects now get a clean per-field content editor instead of the Konva layer panel. The scoping confirmed content VALUES already flow to saved_scene_contents via the existing `c-`-layer + updateLayer + autosave path — so this is purely a cleaner presentation over the working save path, no new persistence. - isFlexStoryProject(chooseMode) helper (FLEXIBLE → scene engine). - BlockFieldForm: renders one labelled field per content layer (label from layer.name — the field's Persian label, already preserved from the content title), text→textarea, image→upload; writes back via the unchanged updateLayer(props) call. No Konva geometry/layer chrome. - StudioSidebarContent: the "scenes" tool branches on chooseMode — FlexStory → BlockFieldForm, AE/Konva → SceneEditSidebarContent (zero regression). - i18n: componentsStudioSidebarBlockFieldForm in fa + en. Verified `npm run build`. NOTE: preview stays the live Konva canvas for v1 (a true @remotion/player embed is deferred — 8–12MB Three.js bundle). Remaining: confirm the FlexStory render binder reads the 4 theme colours from scene_data (already persisted) vs saved_shared_colors (would need a small colours endpoint). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1189,6 +1189,14 @@
|
||||
"replaceImage": "Replace image",
|
||||
"uploadImage": "Upload image"
|
||||
},
|
||||
"componentsStudioSidebarBlockFieldForm": {
|
||||
"panelTitle": "Edit Scene",
|
||||
"emptyState": "This scene has no editable fields.",
|
||||
"fieldFallback": "Field {index}",
|
||||
"textPlaceholder": "Type here…",
|
||||
"replaceImage": "Replace image",
|
||||
"uploadImage": "Upload image"
|
||||
},
|
||||
"componentsStudioSidebarTransitionsSidebarContent": {
|
||||
"heading": "Transitions",
|
||||
"randomTransition": "Random Transition",
|
||||
|
||||
@@ -1189,6 +1189,14 @@
|
||||
"replaceImage": "جایگزینی تصویر",
|
||||
"uploadImage": "بارگذاری تصویر"
|
||||
},
|
||||
"componentsStudioSidebarBlockFieldForm": {
|
||||
"panelTitle": "ویرایش صحنه",
|
||||
"emptyState": "این صحنه فیلد قابلویرایشی ندارد.",
|
||||
"fieldFallback": "فیلد {index}",
|
||||
"textPlaceholder": "اینجا بنویسید…",
|
||||
"replaceImage": "جایگزینی تصویر",
|
||||
"uploadImage": "بارگذاری تصویر"
|
||||
},
|
||||
"componentsStudioSidebarTransitionsSidebarContent": {
|
||||
"heading": "ترانزیشنها",
|
||||
"randomTransition": "ترانزیشن تصادفی",
|
||||
|
||||
Reference in New Issue
Block a user