LogoLogo
Developer HubGitHubContact Us
  • Welcome!
  • Olive Helps
    • Platform
      • How Olive Helps Works
      • Installation
      • Account Creation
      • Distributing Olive Helps
    • FAQs
      • General Loop FAQs
      • Loop Development FAQs
      • Olive Helps User FAQs
      • Security / IT FAQs
    • Data Security
      • User Data
      • Antivirus and Firewalls
  • Loop Development Kit
    • Your First Loop
      • Become a Loop Author
      • Creating a Loop
      • Build Your Loop
      • Local Loop Installation
      • Restarting Local Loops
    • Troubleshooting
    • Loop Security
      • Permissions
      • Environment Permissions
    • Loop Publication
      • Loop Approval Checklist
    • Loop Analytics Library
    • Examples
  • Documentation
  • Interfaces
  • Type Alias
  • Enumerations
  • Whisper Components
    • Base Attributes
    • Autocomplete
    • Box
    • Breadcrumb
    • Button
    • Chart
    • CollapseBox
    • Grid
    • Checkbox
    • Date Time
    • Divider
    • DropZone
    • Email
    • Icon
    • List Pair
    • Link
    • Pagination
    • Number
    • Markdown
    • Message
    • Password
    • Progress
    • Radio
    • Rating
    • RichTextEditor
    • Section Title
    • Select
    • Text Input
    • Telephone
    • Typography
  • APTITUDES
    • What are Aptitudes?
    • Browser
    • Clipboard
    • Config
    • Cursor
      • Screen Scaling Behavior
    • Document
    • Filesystem
    • Keyboard
    • Network
    • Process
    • Screen
    • Search
      • Index
    • System
    • UI
      • Loop UI Handlers
    • User
      • JWT
    • Vault
    • Whisper
      • Whisper Updates
      • JSX Whispers
    • Window
      • Screen Scaling Behavior
  • Release Notes
    • What's New
      • Olive Helps v0.55.0
      • Olive Helps v0.54.1
      • Olive Helps v0.53.1
      • Olive Helps v0.51.2
      • LDK v4.0.0
      • Olive Helps v0.50.3
      • Olive Helps v0.49.5
      • LDK v 3.18.0
      • Olive Helps v0.47.2
      • Olive Helps v0.46.2
      • LDK v 3.17.0
      • Olive Helps v0.45.4
      • Olive Helps v0.44.2
      • Olive Helps v0.43.1
      • Olive Helps v0.42.1
      • Olive Helps v0.41.4
      • Olive Helps v0.40.2
      • Olive Helps v0.39.4 & LDK v3.16.0
      • Olive Helps v0.38.8 & LDK v3.15.0
      • Olive Helps v0.36.5
      • Olive Helps v0.36.4
    • Archive
      • Olive Helps v0.36.3 & LDK v3.14.0
      • Olive Helps v0.34.4
      • LDK v3.13.0
      • Olive Helps v0.32.2 & LDK v3.12.0
      • Olive Helps v0.31.2 & LDK v3.11.0
      • Olive Helps v0.30.2 & LDK v3.10.0
      • Olive Helps v0.29.4
      • Olive Helps v0.29.3 & LDK v3.9.0
      • Olive Helps v0.28.3 & LDK v3.8.0
      • Olive Helps v0.27.7
      • Olive Helps v0.27.5
      • Olive Helps v.027.4
      • Olive Helps v0.27.2 & LDK v3.7.0
      • Olive Helps v0.25.3 & LDK v3.5.1
      • Olive Helps v0.24.6 & LDK v3.4.0
      • Olive Helps v0.23.2 & LDK v3.3.0
      • Olive Helps v0.22.3 & LDK v3.2.0
Powered by GitBook
On this page

Was this helpful?

  1. APTITUDES

Clipboard

The Clipboard Aptitude provides the ability to interact with your clipboard on your system.

listen

listen function will be deprecated and removed, date is still unknown

Provides the Loop author with the capability to inspect all values that are copied to your clipboard while the listener is active. Clipboard events from the Olive Helps desktop app can be filtered out from the responses.

import { clipboard } from '@oliveai/ldk';

// When true, clipboard events emitted while Olive Helps is focused are picked up by the callback
const listenToOliveHelpsEvents = true; 
// Function that is called after listen() detects a clipboard event.
// Provides the text from the event as the first argument of the callback
const callback = (clipboardText) => {
    console.log(`Received clipboard text: ${clipboardText}`);
};

clipboard.listen(listenToOliveHelpsEvents, callback);

listenWithOptions

Provides the Loop author with the capability to inspect all values that are copied to your clipboard while the listener is active. Clipboard events from the Olive Helps desktop app can be filtered out from the responses.

import { clipboard } from '@oliveai/ldk';

// When includeOliveHelpsEvents is true, clipboard events emitted while Olive Helps is focused are picked up by the callback
const options = {
    includeOliveHelpsEvents: true
}; 
// Function that is called after listen() detects a clipboard event.
// Provides the text from the event as the first argument of the callback
const callback = (clipboardText) => {
    console.log(`Received clipboard text: ${clipboardText}`);
};

clipboard.listenWithOptions(options, callback);

read

Get the current contents of the clipboard at the moment when the function is called.

import { clipboard } from '@oliveai/ldk';

// Function that is called after read() is successful
// Provides the text on the clipboard when read() was executed
const callback = (clipboardContents) => {
    console.log(`Read from the clipboard: ${clipboardContents}`);
};

clipboard.read().then(callback);

write

Set the contents of clipboard, overwriting its current value.

import { clipboard } from '@oliveai/ldk';

// Function that is called after write() is successful
const callback = () => {
    console.log('Wrote to the keyboard!');
};

clipboard.write('Message to clipboard').then(callback);

Imagine you are trying to display an information Whisper about a physician to their client. One of the ways that you could do this is using the Clipboard Aptitude.

To do this, you would use the listen() function. It adds a sensor to the Loop, catching all incoming changes to a user's clipboard. This includes both copy and cut events.

In addition to detecting the events, it allows you to provide a callback to respond to any incoming events.

Let's look at an example to better illustrate the point

import { clipboard, whisper } from '@oliveai/ldk';

const listenToOliveHelpsEvents = false;
const listOfImportantWords = ['Foo', 'Bar'];

const clipboardListen = () => 
    clipboard.listen(listenToOliveHelpsEvents, (clipboardText) => {
        if (listOfImportantWords.includes(clipboardText)) {
            whisper.create({
                // Information card whisper
            });
        } else {
            whisper.create({
                // No results whisper
            })
        }
    });

In this example, if you were to copy the string Foo or Bar to their clipboard, it would trigger the Whisper displaying an information card. Anything else would cause the Loop to show the "no results" Whisper.

Another thing to inspect in this code is the value of listenToOliveHelpsEvents . Because this value is false in this code, that means that any clipboard events that occur from the Olive Helps window would not trigger the callback of the listener.

To use the Clipboard Aptitude, simply set the following permissions in your package.json under the ldk object.

...
"ldk": {
  "permissions": {
    "clipboard": {},
    ...
  }
},
...
PreviousBrowserNextConfig

Last updated 2 years ago

Was this helpful?

Please see our page for more information.

Permissions