** See bs-ant-design repo for original credit on this pattern. **
Bucklescript + ReasonReact binding for Ant Design Mobile components. I write bindings when I needed them in my projects. If you find a component is missing, it's because I don't need it (yet).
Difference from bs-antd style of bindings: It uses the official recommended way for writing bindings and it doesn't work for me. Best explained this in this blog post
Cautionary note that I am very new to bindings so confirmation and testing is necessary for anything you want to use as I only tested what I use.
- With npm:
npm install --save bs-ant-design-mobile
- With yarn:
yarn add bs-ant-design-mobile
- Add
bs-ant-design-mobile
tobs-dependencies
inbsconfig.json
. - You also need to set up your bundler to handle less files (This is a requirement from ant-design-mobile)
For webpack, you can do this:
npm install --save-dev less@^2.7.3 less-loader css-loader style-loader
(less@^2.7.3
is the important bit)
Now add this to your webpack config:
// webpack.config.js
module.exports = {
...
module: {
rules: [{
test: /\.less$/,
use: ["style-loader", "css-loader", "less-loader"]
}]
}
};
Please check ant design's documentation for each component.
I tried to keep the API as close to the original JS API as possible.
Some common patterns I tried to use:
- string enums -> polymorphic variants
- function argument accepts different types: GDATs or
%identity
hack.
I did the components I needed. While I usually made an attempt to do all the params technically, I only tested the ones I needed. Assume you will need to test everything you want to use well.
All contributions are welcomed. I intend to merge and release anything you push quickly.
MIT