useSelectionState
useSelectionState() предоставляет реактивное состояние, производное от выделения в текущем редакторе.
Используйте его, когда нужно рендерить UI на основе:
- наличия выделения
- количества выделенных узлов
- основного выделенного узла
- является ли текущее выделение экземпляром, компонентом или группой
Использование
ts
import { useSelectionState } from '@open-pencil/vue'
const selection = useSelectionState()Базовый пример
vue
<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
Практические примеры
Показывать действия только для экземпляров
ts
const { isInstance } = useSelectionState()Активировать UI создания набора компонентов
ts
const { canCreateComponentSet } = useSelectionState()