A library that allows the client of your mini-application to communicate with the main user's condo client on different devices, using a common bridge API
Installation
Usage
API Reference
To install package simply run the following command if you're using npm as your package manager:
npm i @open-condo/bridge
or it's yarn alternative
yarn add @open-condo/bridge
You can access and use the bridge as follows:
import bridge from '@open-condo/bridge'
// Send event
bridge.send('<event-name>')
// Send event with args
bridge.send('<event-name>', { someArg: 'some value' })
// Send event and process response
bridge.send('<event-name>', { someArg: 'some value' })
.then((response) => {
// successful state processing
}).catch((error) => {
// error processing
})
You can also use the bridge in the browser environment:
<script src="https://unpkg.com/@open-condo/bridge/dist/browser.min.js"></script>
<script>
condoBridge.send('<event-name>')
</script>
Sends a message to main client and returns the Promise
object with response data
Parameters
-
method
required The method of Condo Bridge -
params
optional Object containing method args. Make sure you are not sending sensitive data!
Example
// 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:
try {
const response = await bridge.send('CondoWebAppResizeWindow', { height: 800 })
// Handling response
console.log(response.height)
} catch (err) {
// Handling error
}
Subscribes listener to all incoming events and responses.
Parameters
-
listener
required Function handling events
Example
// 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
}
})
Unsubscribes a function from event listening
Parameters
-
listener
required Function handling events
Example
import bridge from "@open-condo/bridge";
const myListener = (event) => {
logger.info(event)
}
// Subscribing
bridge.subscribe(myListener)
// Unsubscribing
bridge.unsubscribe(myListener)
Checks if the main client (runtime environment) supports this method
Parameters
-
method
required The method of Condo Bridge
Example
// Checking if event is available
if (bridge.supports('CondoWebAppResizeWindow')) {
// Then sending actual event
bridge.send('CondoWebAppResizeWindow', { height: document.body.scrollHeight })
}