1.0.3 • Published 6 years ago

react-required-if v1.0.3

Weekly downloads
51,026
License
MIT
Repository
-
Last release
6 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@instructure/quiz-interactions@commercetools-frontend/application-shell@transferwise/components@transferwise/public-navigationreact-image-magnify-fixed@everything-registry/sub-chunk-2607gs-rimimage-magnifylog-action-componenteasy-magnifyeasy-magnify-waftfe.common-componentsfundamental-reactmanage-files-componentplurall-sub-headerplurall-formpost-order-charge-componentquiz-interactionsreact-image-magnifyreact-image-magnify-newreact-image-magnify-newtestreact-image-magnify-with-rtlreact-event-registrationreact-magnify-imagereact-middayreact-gridifierreact-sprucebotredux-json-router@salesforce/design-system-react@milosmladenovicwork/react-image-magnify@mkilp/react-image-magnify@incresco/design-system-reactweaveworks-ui-componentsxtracta-react-image-magnifyxuan-test-design-system@kengoldfarb/react-sprucebot@vorld/react-image-magnify@steedos-widgets/design-system@steedos-ui/design-system@steedos-builder/design-system@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@blacksquareca/react-image-magnify@sprucelabs/react-sprucebot@shopmacher/react-image-magnify@axa-ch/aletheia@barbershopio/react-sprucebot@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-my/design-systems@astro-my/design-systems-aw@commercetools-uikit/rich-text-body@commercetools-uikit/multiline-input@cloudflare/component-textareachippiescf-component-textarea@commercetools-extensions/change-history@ditus/react-image-magnifyde-design-system-test@eigi/bluebird-uiastro-de-design-systemsar-image-magnify
1.0.3

6 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

8 years ago