@openfin/workspace v17.2.14
Workspace Client API
The Workspace Client APIs enable custom integrations with OpenFin Workspace. They can be used in any and only OpenFin apps.
The Storefront API is the first Client API created.
This API is experimental.
Installation
Run npm i -E @openfin/workspace
.
Storefront API documentation
Code examples
Vanilla JS
import { Storefront, launchApp } from '@openfin/workspace';
import { fetchMyApps, fetchMyLandingPage, fetchMyNavigation, fetchMyFooter } from './my-storefront-provider';
Storefront.register({
id: 'my-storefront',
title: 'My Storefront',
getApps: fetchMyApps,
getLandingPage: fetchMyLandingPage,
getNavigation: fetchMyNavigation,
getFooter: fetchMyFooter,
launchApp: launchApp // OpenFin's default implementation of launchApp, you can also define your own
});
document.getElementById('show-btn').addEventListener('click', () => {
Storefront.show();
});
document.getElementById('hide-btn').addEventListener('click', () => {
Storefront.hide();
});
React
import { Storefront, launchApp } from '@openfin/workspace';
import { fetchMyApps, fetchMyLandingPage, fetchMyNavigation, fetchMyFooter } from './my-storefront-provider';
import React, { useEffect } from 'react';
const App = () => {
useEffect(() => {
Storefront.register({
id: 'my-storefront',
title: 'My Storefront',
getApps: fetchMyApps,
getLandingPage: fetchMyLandingPage,
getNavigation: fetchMyNavigation,
getFooter: fetchMyFooter,
launchApp: launchApp // OpenFin's default implementation of launchApp, you can also define your own
});
}, []);
return (
<>
<button onClick={Storefront.show}>Show Store</button>
<button onClick={Storefront.hide}>Hide Store</button>
</>
);
};
Home API
API Reference: https://cdn.openfin.co/workspace/api/docs/interfaces/HomeAPI.html
register(provider: HomeProvider): Promise<void>
Registers a Home provider. Upon registering a provider, the search results from your provider will be rendered inside Home. See API reference for details which view each topic maps too. Throws an error if provider with provider.id
already exists. See reference for definition of HomeProvider
interface.
Vanilla JS Example
import { Home, HomeActionName, HomeSearchTemplate } from '@openfin/workspace';
import { fetchMyLongRunningQueryResults, executeMyAction } from './my-provider';
const onUserInput = ({ query, context }) => {
// If the current search was triggered from the user selecting a suggestion, execute a expensive query.
if (context.isSuggestion) {
return { results: fetchMyLongRunningQueryResults() };
}
// Otherwise, return a cheap suggestion.
// You can use the `Suggestion` action that is built into the Home UI.
return {
results: [
{
key: '0',
template: HomeSearchTemplate.Plain,
title: `Search my home provider for ${query}`,
actions: [{ name: HomeActionName.Suggestion, query }]
}
]
};
};
/**
* Optional method for executing actions that are specific to your Home provider.
*/
const onResultDispatch = (res) => {
if (res.action === 'execute-my-action') {
return executeMyAction(res.data);
}
};
Home.register({
id: 'my-home-provider',
title: 'My Home Provider',
onUserInput,
onResultDispatch
});
2 days ago
2 days ago
3 days ago
5 days ago
9 days ago
8 days ago
10 days ago
15 days ago
17 days ago
26 days ago
29 days ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
9 months ago
8 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
6 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
6 months ago
6 months ago
9 months ago
9 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
5 months ago
5 months ago
5 months ago
6 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
6 months ago
6 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago