openpencil/packages/docs/programmable/sdk/api/composables/use-selection-capabilities.md
2026-03-24 23:24:08 +03:00

1.3 KiB

title description
useSelectionCapabilities Derive command-friendly booleans for selection-driven UI and actions.

useSelectionCapabilities

useSelectionCapabilities() exposes reactive booleans for whether common editor actions are currently allowed.

Use it when building:

  • menus
  • toolbars
  • keyboard shortcuts
  • action buttons
  • contextual panels

Usage

import { useSelectionCapabilities } from '@open-pencil/vue'

const caps = useSelectionCapabilities()

Basic example

<script setup lang="ts">
import { useSelectionCapabilities } from '@open-pencil/vue'

const { canDelete, canDuplicate, canCreateComponent } = useSelectionCapabilities()
</script>

<template>
  <div class="flex gap-2">
    <button :disabled="!canDuplicate">Duplicate</button>
    <button :disabled="!canDelete">Delete</button>
    <button :disabled="!canCreateComponent">Make component</button>
  </div>
</template>

Practical examples

Gate menu entries

const { canMoveToPage, canGoToMainComponent } = useSelectionCapabilities()

Enable zoom commands only when useful

const { canZoomToSelection } = useSelectionCapabilities()