A library that allows the client of your mini-application to communicate with the main user's client on different devices, using a common bridge API
npm install @open-condo/bridge[npm-badge-link]: https://img.shields.io/npm/v/@open-condo/bridge?style=flat-square
[npm-pkg-link]: https://www.npmjs.com/package/@open-condo/bridge
@open-condo/bridge [![NPM][npm-badge-link]][npm-pkg-link]bash
npm i @open-condo/bridge
`
or it's yarn alternative
`bash
yarn add @open-condo/bridge
`Usage
You can access and use the bridge as follows:
`typescript
import bridge from '@open-condo/bridge'// Send event
bridge.send('')
// Send event with args
bridge.send('', { someArg: 'some value' })
// Send event and process response
bridge.send('', { someArg: 'some value' })
.then((response) => {
// successful state processing
}).catch((error) => {
// error processing
})
`
You can also use the bridge in the browser environment:
`html
`API Reference
$3
Sends a message to main client and returns the
Promise object with response dataParameters
-
method _required_ The method of Condo Bridge
- params _optional_ Object containing method args. Make sure you are not sending sensitive data!Example
`typescript
// Sending event to client
bridge
.send('CondoWebAppResizeWindow', { height: 800 })
.then(data => {
// Handling response
console.log(data.height)
})
.catch(error => {
// Handling an error
});
`Since
bridge.send returns a Promise you can use async / await flow for handling events:`typescripttry {
const response = await bridge.send('CondoWebAppResizeWindow', { height: 800 })
// Handling response
console.log(response.height)
} catch (err) {
// Handling error
}
`$3
Subscribes listener to all incoming events and responses.
Parameters
-
listener _required_ Function handling eventsExample
`typescript
// Subscribing to receive events
bridge.subscribe((event) => {
const { type, data } = event
if (type === 'CondoWebAppResizeWindowResult') {
// Processing event result
console.log(data.height)
} else if (type === 'CondoWebAppResizeWindowError') {
// Processing event error
const { errorType, errorMessage } = data
}
})
`$3
Unsubscribes a function from event listening
Parameters
-
listener _required_ Function handling eventsExample
`typescript
import bridge from "@open-condo/bridge";const myListener = (event) => {
logger.info(event)
}
// Subscribing
bridge.subscribe(myListener)
// Unsubscribing
bridge.unsubscribe(myListener)
`$3
Checks if the main client (runtime environment) supports this method
Parameters
-
method _required_ The method of Condo BridgeExample
`typescript
// Checking if event is available
if (bridge.supports('CondoWebAppResizeWindow')) {
// Then sending actual event
bridge.send('CondoWebAppResizeWindow', { height: document.body.scrollHeight })
}
``