Changelog

io.Connect Browser 3.2

Release date: 11.03.2024

Versions of all main and additional libraries of io.Connect Browser for the current release:

Library Version
@interopio/browser 3.2
@interopio/browser-platform 3.2
@interopio/browser-worker 3.2
@interopio/cli 1.2
@interopio/fdc3 2.2
@interopio/home-ui-react 1.2
@interopio/intents-resolver-api 2.2
@interopio/ng 4.2
@interopio/react-hooks 3.2
@interopio/search-api 2.2
@interopio/workspaces-api 3.2
@interopio/workspaces-ui-react 3.2

New Features

⚠️ Note that each new feature is listed under all libraries it affects.

@interopio/browser

  • Added App Preferences API. This API enables you to store and retrieve user-specific preferences for the apps of the current user:
// Get the app preferences for the current app.
const myPrefs = await io.prefs.get();

const prefs = { fontSize: 18 };
// Overwrite the existing app preferences for the current app.
await io.prefs.set(prefs);

const options = { app: "clientlist" };
// Update the app preferences for a specific app.
await io.prefs.update(prefs, options);

// Remove all app preferences for all apps of the current user.
await io.prefs.clearAll();
// Providing global notification settings.
const config = { enable: false };

await io.notifications.configure(config);

// Setting the state of a notification.
const id = notification.id;
const state = "Acknowledged";

await io.notifications.setState(id, state);

// Filtering apps that can raise notifications.
const filter = {
    allowed: ["*"],
    blocked: ["app-one", "app-two"]
};

await io.notifications.setFilter(filter);

// Notification events.
io.notifications.onStateChanged(console.log);

io.notifications.onConfigurationChanged(console.log);
  • Added a getIntents() method to the Intents API for retrieving Intents associated with an Intent handler. Added a filterHandlers() method for filtering Intent handlers based on specified criteria. The HandlerFilter object passed as a required argument allows you to specify whether the Intents Resolver UI app will open when there are more than one available Intent handlers in order to display them to the user:
// Retrieving Intents for an Intent handler.
const intents = await io.intents.find("ShowChart");
const handler = intents[0].handlers[0];

const intentsResult = await io.intents.getIntents(handler);
// The `getIntents()` method resolves with an object with an `intents` property holding a list of `IntentInfo` objects.
intentsResult.intents.forEach(console.log);

// Filtering Intent handlers.
const filter = {
    intent: "ShowChart",
    openResolver: false
};

const handlersResult = await io.intents.filterHandlers(filter);
// The `filterHandlers()` method resolves with an object with a `handlers` property holding a list of `IntentHandler` objects.
handlersResult.handlers.forEach(console.log);

@interopio/browser-platform

  • Added App Preferences API.
  • Added new methods to the Notifications API: clearOld(), configure(), getConfiguration(), getFilter(), setFilter(), setState(), onConfigurationChanged(), onActiveCountChanged(), and onStateChanged().
  • Added a getIntents() method to the Intents API for retrieving Intents associated with an Intent handler. Added a filterHandlers() method for filtering Intent handlers based on specified criteria. The HandlerFilter object passed as a required argument allows you to specify whether the Intents Resolver UI app will open when there are more than one available Intent handlers in order to display them to the user.

@interopio/browser-worker

  • Added App Preferences API.

@interopio/cli

  • Added a new argument for the iop new CLI command for creating Browser Client apps. Use the iop new browser-client command and the vanilla-js or react options for the --template flag to create a bootstrapped JavaScript or React client app for your io.Connect Browser project:
iop new browser-client --name my-client --template react
  • Added a new option for the iop new browser-platform command. Use the dev-react-seed option to bootstrap a React version of the Main app for development purposes based on the io.Connect Browser Seed Project:
iop new browser-platform --name my-platform --template dev-react-seed

@interopio/fdc3

  • Implemented FDC3 2.1 requirements regarding opening the Intents Resolver UI app when raising an Intent for a specified context and throwing an error when the context is invalid.

@interopio/home-ui-react

  • Added a "Browser Not Supported" page.
  • Added a main <IOConnectHome /> component that can be used for configuring and customizing the Home App.
  • Added a HeaderLogoArea property for the Workspaces App configuration in the Home App. It accepts a component for customizing the area located before the Workspaces tabs in the Home App and holding the default logo for opening the Launchpad.
  • Made sections and folders in the Launchpad of the Home App collapsible.
  • Added options for configuring the number of displayed section items and removing the "More" button.
  • Added an option for sorting items in sections.

@interopio/intents-resolver-api

  • Added a filterHandlers() method to the Intents API for filtering Intent handler based on specified criteria. The HandlerFilter object passed as a required argument allows you to specify whether the Intents Resolver UI app will open when there are more than one available Intent handlers in order to display them to the user.

@interopio/workspaces-ui-react

  • Added an active state to the "Add Workspace" button of the Workspaces App.

Improvements & Bug Fixes

⚠️ Note that each improvement or bug fix is listed under all libraries it affects.

@interopio/browser-platform

  • Created enumeration for Intents errors.
  • Fixed an issue with decoding the user configuration when initializing the platform.

@interopio/fdc3

  • Created enumeration for Intents errors.
  • Fixed FDC3 Intent context to comply with .NET implementation.
  • Fixed not checking whether the Logger API is available.

@interopio/home-ui-react

  • Added customizable Group Header Components to the Home App that's also a Workspaces App.
  • Added hover indicator for sections.
  • Fixed search icon appearing in app list.
  • Fixed base section item hover styles.
  • Fixed margins for sections and header icon.

@interopio/intents-resolver-api

  • Fixed filtering Intent handlers in the Intents Resolver UI app when it's running in io.Connect Desktop.

@interopio/workspaces-ui-react

  • Refactored default Workspaces elements.