Skip to main content

EditorStateContextValue

@lowcode/builder-web


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?

optional selectedNodeId: 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()?

optional setAppDataSources: (updater) => void

Defined in: apps/builder-web/src/state/EditorState.tsx:156

Обновление списка источников данных приложения.

Используется DataSourcesPanel v2.

Parameters

updater

(prev) => DataSource[]

Returns

void


setAppEventHandlers()?

optional setAppEventHandlers: (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

ComponentNode

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