EditorStateContextValue
Interface: EditorStateContextValue
Defined in: apps/builder-web/src/state/EditorState.tsx:56
Публичный API контекста состояния редактора.
Контекст централизует всё состояние builder-web:
- текущий проект, список проектов и шаблонов;
- DSL-приложение (
app) и активную страницу; - корневой компонент и выбранную ноду дерева;
- глобальное состояние приложения (
appState) и состояние страницы (pageState); - список нод с ошибками, флаги сохранения и ошибки;
- высокоуровневые действия редактора (страницы, компоненты, состояние, сохранение).
Контекст служит единым источником правды для всего UI редактора.
Properties
activePage
activePage:
PageSchema|null
Defined in: apps/builder-web/src/state/EditorState.tsx:74
Активная страница текущего проекта.
addAppStateVariable()
addAppStateVariable: () =>
void
Defined in: apps/builder-web/src/state/EditorState.tsx:113
Добавить переменную в глобальное состояние приложения.
Создаёт app.appState, если он ещё не существует.
Returns
void
addComponent()
addComponent: (
componentType) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:221
Добавить новый компонент в дерево активной страницы.
Компонент добавляется как ребёнок выбранной ноды (или rootComponent, если явно ничего не выбрано). Для базовых типов подставляются начальные props (Text, Button, Input).
Parameters
componentType
string
Returns
void
addPageStateVariable()
addPageStateVariable: () =>
void
Defined in: apps/builder-web/src/state/EditorState.tsx:132
Добавить переменную состояния в активную страницу.
Если activePage.state отсутствует — создаёт его.
Returns
void
app
app:
AppSchema|null
Defined in: apps/builder-web/src/state/EditorState.tsx:71
Текущее DSL-приложение (AppSchema) или null, если проект не выбран.
Удобный шорткат к project?.app.
appState
appState:
AppStateSchema|null
Defined in: apps/builder-web/src/state/EditorState.tsx:100
Глобальное состояние приложения (app.appState) или null,
если оно ещё не задано.
createPage()
createPage: () =>
void
Defined in: apps/builder-web/src/state/EditorState.tsx:204
Создать новую страницу в текущем проекте.
Генерирует уникальный ID, создаёт rootComponent типа Container и делает новую страницу активной.
Returns
void
deleteAppStateVariable()
deleteAppStateVariable: (
index) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:125
Удалить переменную глобального состояния по индексу.
Parameters
index
number
Returns
void
deleteNode()
deleteNode: (
nodeId) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:229
Удалить компонент по ID.
RootComponent удалить нельзя. После удаления выбранной ноды выбор переключается на родителя или на rootComponent.
Parameters
nodeId
string
Returns
void
deletePage()
deletePage: (
pageId) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:212
Удалить страницу по ID.
Нельзя удалить последнюю страницу в проекте. После удаления активной становится первая оставшаяся страница.
Parameters
pageId
string
Returns
void
deletePageStateVariable()
deletePageStateVariable: (
index) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:142
Удалить переменную состояния страницы по индексу.
Parameters
index
number
Returns
void
dslErrorNodeIds
dslErrorNodeIds:
string[]
Defined in: apps/builder-web/src/state/EditorState.tsx:86
Список ID нод, в которых обнаружены ошибки DSL/AST.
duplicateNode()
duplicateNode: (
nodeId) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:237
Дублировать компонент по ID.
Копируется нода вместе с поддеревом, всем потомкам выдаются новые ID. После дублирования выбирается первая созданная копия.
Parameters
nodeId
string
Returns
void
isSaving
isSaving:
boolean
Defined in: apps/builder-web/src/state/EditorState.tsx:89
Флаг процесса сохранения проекта.
openProject()
openProject: (
projectId) =>Promise<void>
Defined in: apps/builder-web/src/state/EditorState.tsx:188
Открыть существующий проект.
Загружает проект с backend и переключает редактор на него.
Parameters
projectId
string
Returns
Promise<void>
pageState
pageState:
PageStateSchema|null
Defined in: apps/builder-web/src/state/EditorState.tsx:106
Состояние активной страницы (activePage.state) или null,
если страница не выбрана или состояние не задано.
previewRuntimeState
previewRuntimeState:
RuntimeSnapshot|null
Defined in: apps/builder-web/src/state/EditorState.tsx:164
Моментальный снимок состояния среды выполнения, полученный из preview runtime. Обновляется всякий раз, когда приложение preview вызывает onStateChange.
Тип соответствует RuntimeSnapshot из @lowcode/runtime-core.
project
project:
ProjectState|null
Defined in: apps/builder-web/src/state/EditorState.tsx:64
Текущий загруженный проект или null, если проект ещё не выбран.
projects
projects:
ProjectSummary[]
Defined in: apps/builder-web/src/state/EditorState.tsx:61
Список существующих проектов.
rootComponent
rootComponent:
ComponentNode|null
Defined in: apps/builder-web/src/state/EditorState.tsx:77
Корневой компонент активной страницы (rootComponent).
save()
save: () =>
Promise<void>
Defined in: apps/builder-web/src/state/EditorState.tsx:251
Сохранить текущий проект.
Обновляет проект на сервере и перечитывает список проектов.
Returns
Promise<void>
saveError
saveError:
string|null
Defined in: apps/builder-web/src/state/EditorState.tsx:92
Текст ошибки сохранения проекта, если она произошла.
selectedNode
selectedNode:
ComponentNode|null
Defined in: apps/builder-web/src/state/EditorState.tsx:83
Выбранный компонент (полная нода дерева) или null.
selectedNodeId?
optionalselectedNodeId:string
Defined in: apps/builder-web/src/state/EditorState.tsx:80
ID выбранного компонента (может быть не задан).
selectPage()
selectPage: (
pageId) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:196
Выбрать активную страницу по её ID.
Одновременно обновляет выбранный компонент (rootComponent страницы) и очищает список нод с ошибками.
Parameters
pageId
string
Returns
void
selectTemplate()
selectTemplate: (
templateId) =>Promise<void>
Defined in: apps/builder-web/src/state/EditorState.tsx:181
Создать новый проект из выбранного шаблона.
После создания:
- проект становится активным;
- активной становится первая страница;
- выбранным компонентом становится rootComponent этой страницы.
Parameters
templateId
string
Returns
Promise<void>
setAppDataSources()?
optionalsetAppDataSources: (updater) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:156
Обновление списка источников данных приложения.
Используется DataSourcesPanel v2.
Parameters
updater
(prev) => DataSource[]
Returns
void
setAppEventHandlers()?
optionalsetAppEventHandlers: (updater) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:149
Обновление списка обработчиков событий приложения.
Используется EventHandlersPanel v2.
Parameters
updater
(prev) => EventHandler[]
Returns
void
setErrorNodeIds()
setErrorNodeIds: (
ids) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:258
Установить список ID нод с ошибками.
Используется превью/валидацией для подсветки проблем на Canvas.
Parameters
ids
string[]
Returns
void
setPreviewRuntimeState()
setPreviewRuntimeState: (
nextState) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:169
Обновляет предварительный снимок состояния среды выполнения.
Parameters
nextState
RuntimeSnapshot | null
Returns
void
setSelectedNodeId()
setSelectedNodeId: (
id) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:265
Установить ID выбранного компонента.
Используется Canvas/деревом для управления выделением.
Parameters
id
string | undefined
Returns
void
templates
templates:
TemplateDefinition[]
Defined in: apps/builder-web/src/state/EditorState.tsx:58
Шаблоны проектов, доступные для создания нового проекта.
updateAppStateVariable()
updateAppStateVariable: (
index,patch) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:120
Обновить переменную глобального состояния по индексу.
Частично обновляет объект StateVariable.
Parameters
index
number
patch
Partial<StateVariable>
Returns
void
updateComponentNode()
updateComponentNode: (
updated) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:244
Обновить ноду компонента.
Используется, например, панелью свойств для сохранения изменений props.
Parameters
updated
Returns
void
updatePageStateVariable()
updatePageStateVariable: (
index,patch) =>void
Defined in: apps/builder-web/src/state/EditorState.tsx:137
Обновить переменную состояния страницы по индексу.
Parameters
index
number
patch
Partial<StateVariable>
Returns
void