AboutSupportDeveloper GuideVersion 20.0.5

Interface HomeProvider

A CLI provider responds to search requests from Home UI. Exposes search features that are specifically supported by Home.

Sample HomeProvider definition.

Example

*Sample HomeProvider definition.

Import required dependencies.

import { Home, type HomeProvider } from '@openfin/workspace';

Create provider object to configure Home.

const provider: HomeProvider = {
id: 'provider-id',
title: 'Sample Home',
icon: 'https://www.openfin.co/favicon-32x32.png',
description: 'A short description of the Search Provider.',
onResultDispatch: () => { } // Handle Result Dispatch
onUserInput: () => { } // Handle User Input
};

Register home provider object.

await Home.register(provider);

Show Home.

await Home.show();

Hierarchy

Properties

clientAPIVersion?: string

version of client SDK, set by the API

commandCode?: string

A keycode that can be used to interact with this Search Provider.

description?: string

A short description of the Search Provider.

dispatchFocusEvents?: boolean

If set, focusing on a search result will trigger onResultDispatch callback.

hidden?: boolean

A flag to indicate this provider will not be displayed as a command.

icon: string

An icon that a UI can display for the Search Provider.

id: string

A unique ID used to identify the search provider.

identity?: Identity_4

The OpenFin identity that registered this search provider.

inputPlaceholder?: string

The placeholder string to be displayed in a UI when targeting this specific Search Provider.

listTitle?: string

A title to display above the result list in a UI when targeting this specific Search Provider.

logoUrl?: string

Logo to show render when targeting this specific Search Provider.

scoreOrder?: ScoreOrder

The order to sort the score in. The default is ascending.

title: string

A UI friendly title for the search provider.

Methods

  • Callback that is invoked when ever a search result returned by this provider is interacted with from a Workspace component. (clicked, pressed enter, hotkey pressed, etc.)

    import { getAvailableCommands } from './my-commands';

    const onResultDispatch = async(result: CLIDispatchedSearchResult): Promise<void> => {
    try {
    //Grab the command corresponding to the result
    const availableCommands = await getAvailableCommands();
    const commandToExecute = availableCommands.find((command) => command.key === result.key);

    if (commandToExecute != undefined) {
    await commandToExecute.action();
    }
    } catch (err) {
    //Handle the error
    log.error('Error trying to action show command %s', err, result.key);
    }
    }

    Parameters

    Returns Promise<void>

  • Function that is called when a search request is triggered due to user input.


    import { getAllData, getResultsByQuery } from './get-all-data';

    const onUserInput = async({ query }): Promise<CLISearchResponse> => {
    if (!query) {
    return getAllData();
    }

    // Provide an implementation to fetch query-filtered search results
    return getResultsByQuery(query);
    }

    Parameters

    Returns Promise<HomeSearchResponse>

    an object that contains the search results to render in the requesting Workspace component.