EF React Native Asynchronous Button

CircleCI
Code Coverage
Greenkeeper
NPM Version
License
NPM Weekly Downloads
NPM Monthly Downloads
NPM Yearly Downloads
NPM Total Downloads
Node Version
Semantic Release
Commitizen friendly
Conventional Commits
Direct Dependencies Status
Developer Dependencies Status
Peer Dependencies Status
Optional Dependencies Status

react-native button for handling asynchronous operations

Demo Video

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 ?

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:

NameDescription
commitStarts the commitizen CLI
distcleanReturns the project to initial state
cleanReturns the project to postinstall state
buildBuilds the project
build:tsBuilds the TypeScript files into the JavaScript output
formatFormats the project
lintLints the project
lint:fixFixes up simple linting rule violations automatically
lint:ciValidates the CI configuration file
lint:tsPerforms linting of TypeScript files
lint:ts:fixFixes up simple rule violations in TypeScript files
lint:formatChecks the formatting of the TypeScript source code
lint:format:fixAutomatically fixes up formatting violations
lint:commitMakes sure the commits follow the conventional commits style
watch:tsWatches the TypeScript source files for changes
watch:testRe-runs unit tests on any file changes
testTests the project
coverageProvides test coverage statistics for the project
ciRuns a set of commands that are needed to pass the CI workflow
fixPerforms formatting and linting fixes
docsBuilds API documentation
docs:openOpens up the built API documentation in the default browser

Reports

Coverage

Code Coverage Graph