ReBase
Documentation


ActionButton

ActionButton components are used to display the result of the server-side Action directly inside the button.

When the server-side action was successfull, a checkmark will be displayed inside a button. The checkmark is surrounded by a circular countdown, which's timeout can be controlled using the cooldownseconds prop. The ActionButton does not react on any further clicks, until the CircularCountdown of the success or failure reaction has finished.

import { html, Component } from './rebase-ui-runtime'
import ActionButton from './components/ActionButton'

export default class MyView extends Component {
  render = () => {
    return `
      <${ActionButton} 
        text="Login"
        textColor="#fff"
        iconOnRight=${true}
        icon="arrow-right"
        onClickAction=${() => ({
          action: 'user.login',
          username: this.state.username...,
          password: this.state.password...
        })}
        onActionResolved=${this.onLoginSuccessfull}
        defaultErrorMessage="Invalid Credentials"
        style=${{ 
          paddingBotton: 10,
          backgroundColor: '#00f'
        }}
      />
    `
  }
}

In case the server-side action was not successfull (the server's json response's successfull property is beeing checked) the response's errorMessage property is beeing used to display the error message next to the button. When there is no errorMessage property, you can use the defaultErrorMessage property to define a fallback message.