https://github.com/softwarefactory-project/re-patternfly
ReScript binding for patternfly
https://github.com/softwarefactory-project/re-patternfly
patternfly react rescript
Last synced: 12 days ago
JSON representation
ReScript binding for patternfly
- Host: GitHub
- URL: https://github.com/softwarefactory-project/re-patternfly
- Owner: softwarefactory-project
- Created: 2020-10-02T19:45:46.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-02-16T21:07:15.000Z (over 4 years ago)
- Last Synced: 2025-10-02T04:45:43.785Z (8 months ago)
- Topics: patternfly, react, rescript
- Language: Reason
- Homepage:
- Size: 572 KB
- Stars: 2
- Watchers: 8
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# re-patternfly
ReasonML/ReScript binding for [patternfly][patternfly].
## Features
Components (generated from the typescript interfaces):
- AboutModal
- Accordion
- Alert
- AlertGroup
- ApplicationLauncher
- Avatar
- Backdrop
- BackgroundImage
- Badge
- Banner
- Brand
- Breadcrumb
- Button
- Card
- Checkbox
- ClipboardCopy
- DateList
- DatePicker
- DescriptionList
- Divider
- Drawer
- Drawer
- Dropdown
- EmptyState
- Form
- Hint
- Label
- LabelGroup
- List
- LoginPage
- Menu
- Modal
- Nav
- Page
- Pagination
- Radio
- Select
- Spinner
- Tabs
- Text
- TextArea
- TextInput
- Tile
- Title
- Toolbar
- Tooltip
Layouts:
- Bullseye
- Flex
- Gallery
- Grid
- Level
- Split
- Stack
Table component supports this data definition:
```reason
let make = () => {
let columns = [|
{title: "job", transforms: [|sortable|]},
{title: "result", transforms: [|sortable|]},
|];
let (rows, setRows) =
React.useState(_ =>
[|
{cells: [|"rpmbuild", "success"|]},
{cells: [|"rpmtest", "failure"|]},
|]
);
let onSort = _ => setRows(_ => Belt.Array.reverse(rows));
;
};
```
## Install
Add to your `package.json`:
```
pnpm add @softwarefactory-project/re-patternfly
```
Add to your `bsconfig.json`:
```diff
"bs-dependencies": [
+ "@softwarefactory-project/re-patternfly"
]
```
## Example
```rescript
@react.component
let make = () => {
{"Hello patternfly!" |> React.string}
};
```
See the [demo](./demo) directory for a starter project.
## Contribute
Contributions are most welcome, for example the project needs help to:
- bind more component.
- better documentation and demo project.
Get started by running:
```sh
git clone https://github.com/softwarefactory-project/re-patternfly
cd re-patternfly
pnpm install
pnpm start
```
Then build and run tests with `pnpm test`.
Make sure to read about [React][reason-react] and [ReScript][rescript-lang] too.
## Changes
### 3.0.4
- Fix wrong onSelect attribute for Tabs component
### 3.0.3
- Add missing timeout property for Alert
### 3.0.2
- Add Pagination components
### 3.0.1
- Add variant property to Table component
### 3.0.0
- Update Table pfRow property to support custom formatter
### 2.2.0
- Add onSort and sortBy Table properties
### 2.1.1
- Add Flex layout
- Add Modal component
### 2.1.0
- Update @patternfly/react-core version to 4.115.2
- Add onTypeaheadinputchanged callback
### 2.0.3
- Add missing Select callback for typeahead multi selection
### 2.0.2
- Add DataList
- Add Select
- Add missing onSelect callback
### 2.0.1
- Add DatePicker
- Add Tooltip
- Add TextInput placeholder
- Add Toolbar and InputGroup
### 2.0.0
- Replace reason-react with rescript/react
- Replace yarn package manager with pnpm
### 1.0.0
- Initial release
[patternfly]: https://www.patternfly.org/v4/
[reason-react]: https://reasonml.github.io/reason-react/docs/en/components
[rescript-lang]: https://rescript-lang.org/docs/manual/v8.0.0/overview