1.0.3 • Published 8 years ago

react-required-if v1.0.3

Weekly downloads
51,026
License
MIT
Repository
-
Last release
8 years ago

react-required-if

React PropType to conditionally add .isRequired based on other props

Install

$ npm install --save react-required-if

Usage

import React, {PropTypes} from 'react';
import requiredIf from 'react-required-if';

export default class Component extends React.Component {
  static propTypes = {
    disabled: PropTypes.bool,
    onClick: requiredIf(PropTypes.func, props => !props.disabled)
  };

  render() {
    return <button onClick={this.props.onClick}>Click Me</button>
  }
}

Result:

import React from 'react';
import {render} from 'react-dom';
import Component from './Component';

render(
  <div>
    <Component onClick={() => {})/> // ok
    <Component disabled={true}/> // ok
    <Component/> // NOooooooo
  </div>,
  document.getElementById('root')
);
@sprucelabs/react-heartwood-components@transferwise/public-navigationreact-image-magnify-fixed@everything-registry/sub-chunk-2607@ditus/react-image-magnify@commercetools-uikit/multiline-input@commercetools-uikit/rich-text-body@commercetools-frontend/application-shell@commercetools-extensions/change-history@astro-my/design-systems@astro-my/design-systems-aw@astro-my/design-systems-awani@astro-my/design-systems-awani-election@astro-my/design-systems-demo@astro-my/design-systems-demo-v1@astro-my/design-systems-egg@astro-my/design-systems-euro@astro-my/design-systems-gempak@astro-my/design-systems-stadium-astro@astro-my/design-systems-stadium-euro@astro-my/design-systems-stadium-xuan@astro-my/design-systems-ulagam@astro-my/design-systems-xuan@astro-my/design-systems-xuan-ts@astro-eco/design-systems-awani@astro-eco/design-systems-gempak@astro-eco/design-systems-stadium-astro@astro-eco/design-systems-ulagam@astro-eco/design-systems-xuan@axa-ch/aletheia@barbershopio/react-sprucebot@blacksquareca/react-image-magnify@cloudflare/component-textareaweaveworks-ui-componentsxuan-test-design-systemxtracta-react-image-magnify@eigi/bluebird-ui@instructure/quiz-interactions@milosmladenovicwork/react-image-magnify@mkilp/react-image-magnify@incresco/design-system-react@kengoldfarb/react-sprucebot@salesforce/design-system-react@shopmacher/react-image-magnify@sprucelabs/react-sprucebotreact-magnify-imagereact-middayreact-image-magnifier-waftreact-image-magnifyreact-image-magnify-newreact-image-magnify-newtestreact-image-magnify-with-rtlreact-gridifierreact-event-registrationplurall-sub-headerplurall-formpost-order-charge-componentredux-json-routerquiz-interactionsreact-sprucebotimage-magnifygs-rimmanage-files-componentlog-action-component@vorld/react-image-magnify@steedos-builder/design-system@steedos-ui/design-system@steedos-widgets/design-systemastro-de-design-systemsar-image-magnifycf-component-textareachippiesde-design-system-testeasy-magnifyeasy-magnify-andisoreasy-magnify-waftfe.common-componentsfundamental-react
1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

9 years ago