1.0.1 • Published 5 years ago

@nickcoleman/openfin-react-hooks v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Openfin React Hooks : useOpenFin()

A collection of React Hooks built on top of the Openfin API.

Getting Started

  1. npm install --save openfin-react-hooks
  2. import {useDockWindow} from "openfin-react-hooks";
  3. Enjoy!

Motive

Wrapping up the OpenFin API in a higher level hooks abstraction allows developers to share common functionality across React-based OpenFin applications.

Even the simpler hooks bridge across various versions of the OpenFin API, providing a consistent interface around OpenFin regardless of what environment the application resides within.

More complex hooks (e.g. useDockWindow) provide functionality that could save hours of development work if the same functionality was written from scratch.

Hooks

Currently, the collection of hooks consists of the following:

NameDescription
useBoundsSubscribe to the bounds of a window changing
useDockedDetects if the current window is docked
useDockWindowDock a window to the edges of a screen
useFocusListen to and affect focus of a window
useInterApplicationBusSendAuto-magically send properties on the InterApplicationBus whenever they change
useInterApplicationBusPublishAuto-magically publish properties on the InterApplicationBus whenever they change
useInterApplicationBusSubscribeSubscribe to a topic on the InterApplicationBus
useMaximizedDetects if the current window is maximized
useOptionsListen to and update window options
useUserMovementListen to and update whether user movement is enabled / disabled for a window
useZoomListen to and update window zoom level

Example

The following example demonstrates the usage of the useInterApplicationBusSubscribe and useInterApplicationBusSend hooks in order to subscribe to the OpenFin InterApplicationBus and send a message:

import {useInterApplicationBusSend, useInterApplicationBusSubscribe} from "openfin-react-hooks";

const IDENTITY = window.fin.Window.me;
const TOPIC = "demo-topic";

const Component = () => {
    const [name, setName] = useState("John Smith");
    const { data } = useInterApplicationBusSubscribe(IDENTITY, TOPIC);
    useInterApplicationBusSend(IDENTITY, TOPIC, name);
    return (
        <div>
            <input type="text" onChange={(e) => setName(e.target.value)} value={name} />
            <div><strong>Received Message:</strong> {data ? data.message : "None"}</div>
        </div>
    )
}

Usage examples for all of the hooks can be found in the interactive demo, as detailed below.

Demo

If you'd like a demo of the current collection of hooks, you can do so by:

  • Cloning the repository (e.g. git clone https://github.com/ScottLogic/openfin-react-hooks.git)
  • Checkout the repository in your command line of choice (e.g. cd c:/dev/openfin-react-hooks)
  • Run npm install and npm run build within the root of the project directory
  • Checkout the demo directory (e.g. cd demo)
  • Run npm install and npm run start within the demo directory
  • Once that's finished, execute npm run launch to see the demo application in all its glory
1.0.1

5 years ago