Skip to content

useSelectionState

useSelectionState() exposes reactive selection-derived state from the current editor.

Use it when you need to render UI based on:

  • whether anything is selected
  • how many nodes are selected
  • the primary selected node
  • whether the current selection is an instance, component, or group

Usage

ts
import { useSelectionState } from '@open-pencil/vue'

const selection = useSelectionState()

Basic example

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">No selection</span>
    <span v-else>
      {{ selectedCount }} selected
      <span v-if="isInstance">· instance</span>
    </span>
  </div>
</template>

What it returns

Useful values include:

  • selectedIds
  • hasSelection
  • selectedNode
  • selectedCount
  • selectedNodeType
  • isInstance
  • isComponent
  • isGroup
  • canCreateComponentSet

Practical examples

Show instance-only actions

ts
const { isInstance } = useSelectionState()

Enable component-set creation UI

ts
const { canCreateComponentSet } = useSelectionState()

Released under the MIT License.