- 78 SDK pages per language (components, composables, advanced API, guides, architecture, getting-started) - vector-edit.md user guide page (5 languages) - Update stale ru/programmable/cli/inspecting.md - Fix YAML frontmatter quoting for colons in descriptions 474 files, 0 missing pages across de/es/fr/it/pl/ru. VitePress build verified — all 546 SDK pages render.
2.1 KiB
2.1 KiB
| title | description |
|---|---|
| useSelectionState | Реактивное состояние редактора, производное от выделения: текущий узел, количество и тип выделения. |
useSelectionState
useSelectionState() предоставляет реактивное состояние, производное от выделения в текущем редакторе.
Используйте его, когда нужно рендерить UI на основе:
- наличия выделения
- количества выделенных узлов
- основного выделенного узла
- является ли текущее выделение экземпляром, компонентом или группой
Использование
import { useSelectionState } from '@open-pencil/vue'
const selection = useSelectionState()
Базовый пример
<script setup lang="ts">
import { useSelectionState } from '@open-pencil/vue'
const { hasSelection, selectedCount, isInstance } = useSelectionState()
</script>
<template>
<div class="text-xs text-muted">
<span v-if="!hasSelection">Нет выделения</span>
<span v-else>
{{ selectedCount }} выделено
<span v-if="isInstance">· экземпляр</span>
</span>
</div>
</template>
Возвращаемые значения
Полезные значения:
selectedIdshasSelectionselectedNodeselectedCountselectedNodeTypeisInstanceisComponentisGroupcanCreateComponentSet
Практические примеры
Показывать действия только для экземпляров
const { isInstance } = useSelectionState()
Активировать UI создания набора компонентов
const { canCreateComponentSet } = useSelectionState()