@bity/preact-conversion-components
A collection of components that make conversions against the Bity API.
See src/
for all the components and to learn how they work.
They are provided as ES2015 modules, and have already been transpiled once from
JSX to regular ES2015+.
You will probably want to use these in combination with
@bity/preact-base-components
, @bity/preact-exchange-client
, and
@bity/styles
.
Installation
npm install \
@bity/api \
@bity/data-stores \
@bity/preact-conversion-components \
@bity/styles \
preact \
preact-redux
Usage by example
It's somewhat convoluted to use these components because they try to do
everything for you once provided with the correct information. They will
periodically poll when there are listeners, and won't when there aren't any -
small conveniences like that.
import { h, render } from 'preact';
import { Provider } from 'preact-redux';
import { BityApiClient } from '@bity/api';
import { Order } from '@bity/api/models';
import * as currenciesDataStore from '@bity/data-stores/currencies';
import * as orderDataStore from '@bity/data-stores/order';
import { getStore, initializeStores } from '@bity/data-stores/store';
import { ExchangeRate } from '@bity/preact-conversion-components/exchange-rate
// Initialize the API
const bityApiClient = new BityApiClient({
exchangeApiUrl,
legacyV2ApiUrl,
clientId // Request a clientId from Bity's support.
});
initializeStores({ bityApiClient });
const store = dataStore.getStore();
const { dispatch } = store;
currenciesDataStore.addDataListener(dispatch);
orderDataStore.removeDataListener(dispatch);
dispatch({ type: orderDataStore.DATA_UPDATE, payload: new Order() });
orderDataStore.addDataListener(dispatch);
render(
<Provider store={store}>
<ExchangeRate />
<Provider/>,
document.getElementById('root')
);
Save the file and run your favorite bundler/transpiler combination, and then:
<head>
<link rel="stylesheet" type="text/css" href="node_modules/@bity/styles/index.css"/>
</head>
<body>
<div id="root"></div>
<script src="bundle.js"></script>
</body>
You should see some updating exchange rate on the screen.