@ef-carbon/react-native-async-button
v5.0.0
Published
A button that can update the rendering state dependent on an asynchronous operation
Downloads
26
Readme
EF React Native Asynchronous Button
react-native
button for handling asynchronous operations
Usage
yarn add @ef-carbon/react-native-async-button
<View>
<AsyncButton
IdleComponent={<Text>Send</Text>}
onPress={success}
/>
<AsyncButton
IdleComponent={<Text>Send + Reset</Text>}
successTimeout={1000}
SuccessComponent={SuccessComponent}
onPress={success}
/>
<AsyncButton
IdleComponent={<Text>Send + No Reset</Text>}
successTimeout={Infinity}
SuccessComponent={SuccessComponent}
onPress={success}
/>
<AsyncButton
IdleComponent={<Text>Error + Reset</Text>}
failureTimeout={1000}
FailureComponent={FailureComponent}
onPress={error}
/>
<AsyncButton
IdleComponent={<Text>Error + No Reset</Text>}
failureTimeout={Infinity}
FailureComponent={FailureComponent}
onPress={error}
/>
</View>
Read the documentation for API guidance.
Development
The project attempts to make the workflow as frictionless as possible. Any suggestions to improve the work processes are welcomed :metal:
Getting Started
Get up and running using yarn:
yarn install
yarn build
IDE
Install Atom IDE with the TypeScript and XTerm plugins
Hacking
Run yarn watch:test
. Unit tests will re-run after any changes to the source code.
Testing
The unit tests use Jest.
Releases
Releases are performed automatically via semantic-release
. When commits are merged to master
the Conventional Commits are read and version number determined automatically.
Scripts
There are various scripts available that provide the workflow steps for the project:
| Name | Description |
| ------------------ | ----------------------------------------------------------------------------------------------- |
| commit
| Starts the commitizen CLI |
| distclean
| Returns the project to initial state |
| clean
| Returns the project to postinstall state |
| build
| Builds the project |
| build:ts
| Builds the TypeScript files into the JavaScript output |
| format
| Formats the project |
| lint
| Lints the project |
| lint:fix
| Fixes up simple linting rule violations automatically |
| lint:ci
| Validates the CI configuration file |
| lint:ts
| Performs linting of TypeScript files |
| lint:ts:fix
| Fixes up simple rule violations in TypeScript files |
| lint:format
| Checks the formatting of the TypeScript source code |
| lint:format:fix
| Automatically fixes up formatting violations |
| lint:commit
| Makes sure the commits follow the conventional commits style |
| watch:ts
| Watches the TypeScript source files for changes |
| watch:test
| Re-runs unit tests on any file changes |
| test
| Tests the project |
| coverage
| Provides test coverage statistics for the project |
| ci
| Runs a set of commands that are needed to pass the CI workflow |
| fix
| Performs formatting and linting fixes |
| docs
| Builds API documentation |
| docs:open
| Opens up the built API documentation in the default browser |