Composables
Store
useStore
Used to setup a named reactive store backed by Vue's reactive(). All stores share a single global registry; calling useStore with the same name from multiple components returns the same reactive object.
Version
useVersion
Exposes read-only access to the client and API version information. On first call it fetches the API version from the Capabilities singleton.
User & Session
useUser
Provides reactive access to the currently authenticated user (name, description, avatar, role) read directly from the global KDK store.
useSession
Manages the full client session lifecycle: restoring an existing session on mount, redirecting based on route guards and user abilities, and handling socket disconnection/reconnection events with appropriate UI prompts.
Context
useContext
Manages the current application context (e.g. an organisation or project). Keeps the context in sync with the backend via service events and redirects to a fallback route when the context is deleted.
Selection
useSelection
Creates or retrieves a named reactive selection store. Supports single/multiple selection modes, optional item filtering, and configurable item comparison.
Screen & Layout
useScreen
Wraps the Quasar Screen plugin with additional helpers for dense/wide breakpoints, orientation detection, and fullscreen management.
useLayout
Provides programmatic control over the KDK application layout. Exposes configureLayout, clearLayout, setLayoutMode, and per-placement pane methods for top, left, bottom, and right.
Activity
useActivity / useCurrentActivity
useActivity(name, options)— sets up state and configuration stores for a named activity and registers it as the current activity.useCurrentActivity(options)— retrieves the current activity context from anywhere in the component tree.
Collection
useCollection
Manages a reactive, paginated collection backed by a FeathersJS service using feathers-reactive. Supports replace-on-page and append-on-scroll strategies.
useCollectionCounter
Reactively tracks the total number of items in a FeathersJS service collection using a $limit: 0 query.
useCollectionTimeRange
Reactively tracks the minimum and maximum values of a time property across a FeathersJS collection.
useCollectionFilter / useCollectionFilterQuery
useCollectionFilter()— exposes tag and time filter state from the current activity context.useCollectionFilterQuery(options)— builds a reactivefilterQueryfrom active tag and time filter selections.
Schema
useSchema
Provides JSON Schema loading, optional property filtering, AJV compilation, and localised validation within a Vue component.
Errors & Messages
useErrors
Sets up a centralised error display handler. Listens to the global error event bus, translates messages using i18n, and displays Quasar notifications. Also handles errors embedded in route query parameters.
useMessages
Thin wrapper around the KDK messages FeathersJS service for creating messages.
PWA
usePwa
Manages the Progressive Web App installation prompt and service worker update lifecycle.
useWelcome
Displays a welcome prompt dialog automatically after each login and hides it on logout, respecting a user preference stored in LocalStorage.