balancev2
v6.0.0
Published
## Prerequisites
Downloads
13
Readme
Chapter 11
Prerequisites
The following software is required to run the sample:
- Git
- Node.js
- npm
Running
Go to the current directory and run npm install:
npm installNow start the application:
npm startSteps
Follow these steps to implement the same from scratch.
- Initialize a new project and add the dependencies
npm init -y
npm install react react-dom --save
npm install @babel/core @babel/preset-env @babel/preset-react babel-loader file-loader style-loader webpack webpack-cli --save-devAdd a webpack.config.js and make sure to target
library(with the name of the package)Add a .babelrc for Babel using the
preset-react:
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}Copy over the balance sheet code from the previous sample
Change the
index.jsxto export asetupfunction
export function setup(api) {
let BalanceSheet = undefined;
api.registerPage("/", {
bootstrap: () =>
import("./BalanceSheet").then((content) => {
BalanceSheet = content.BalanceSheet;
}),
mount: (target) => render(<BalanceSheet onRender={api.renderExtension} />, target),
unmount: (target) => render(null, target),
});
}Change the
BalanceSheetto forward theonRenderprop, pointing to therenderExtensionAPIUse the
onRenderprop in theMoreBalanceInfocomponent:
const MoreBalanceInfo = ({ onRender, ...props }) => {
const ref = React.useRef(null);
React.useEffect(() => {
return onRender(ref.current, "balance-info", props);
}, []);
return <slot ref={ref} />;
};- Build the MF with Webpack (
npx webpack --mode production) and then publish it using
npm pack
curl -F 'file=@./balance-1.0.0.tgz' http://localhost:9000/modules
rm *.tgzwhere localhost:9000 is the address of the feed server
